banner
jiuyue

jiuyue

JiuYue

Mix-Space部署最新后端Core

Mix Space 是一个一款简洁而不简单的个人博客系统,它够快,够现代。你可以利用它构建一个属于自己的个人空间,记录生活,分享知识。

后端 Core 项目#

😎 The next generation of RESTful API service and more feature for Mix Space, powered by @nestjs.

image

系统 / 环境要求#

  • Linux / MacOS (推荐 Debian11 / 12)教程以 Debian11 / 12 为例
  • Linux 内核 > 4.19
  • Docker,Docker-Compose
  • 1Panel+OpenResty(可选)

必要的准备#

  • 域名:本篇所采用为双域名模式,即前端 www.vlo.cc,后端api.vlo.cc
  • 前后端域名所需 SSL 证书:需要全站 HTTPS

壹・安装 Docker / Docker-Compose#

若服务器在国外且需要使用 1Panel,可以直接运行 1Panel 安装脚本,一把梭安装 1Panel 和 Docker / Docker-Compose

首先,安装一些必要的软件包:

apt update
apt upgrade -y
apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates

然后加入 Docker 的 GPG 公钥和 apt 源:

curl -sSL https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://download.docker.com/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list

国内机器可以用清华 TUNA 的国内源:

curl -sS https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list

然后更新系统后即可安装 Docker CE

apt update
apt install docker-ce docker-ce-cli containerd.io

我们可以使用 Docker 官方发布的 Github 直接安装最新版本 docker-compose:

curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

此时可使用 docker-compose version 命令检查是否安装成功

贰・部署 Core#

一・拉取配置文件#

cd /opt && mkdir -p mx-space/core && cd $_
# 拉取 docker-compose.yml 文件
wget https://fastly.jsdelivr.net/gh/mx-space/core@master/docker-compose.yml

二・修改 Core 配置文件#

cd /opt/mx-space/core
vim docker-compose.yml

修改 environment 字段对应部分的内容,调整细节使其符合 yaml 语法,保存即可。

Warning

默认 MongoDB 数据库和 Redis 未设置密码,若无需要请不要放行数据库端口!若需要密码 / 或使用远程数据库,可根据官方文档配置(我会啦!🥰

  • JWT 密钥:需要填写长度不小于 16 个字符,不大于 32 个字符的字符串,用于加密用户的 JWT,务必保存好自己的密钥,不要泄露给他人。
  • 被允许的域名:需要填写被允许的域名,通常是前端的域名,如果允许多个域名访问,用英文逗号,分隔。
  • (可选)是否开启加密:如果你确定要开启数据库加密,将 false 改为 true,开启加密后,你需要在下方填写加密密钥。
  • (可选)加密密钥:如果你不知道这是什么,那么不建议开启此功能,具体内容可参考 https://mx-space.js.org/usage/security.html

::: warning
此密钥用来加密数据库!如果丢失,将无法使用备份恢复!一定要记录并保存!

若开启加密,则需注意密钥长度必须为 64 位且只有小写字母和数字,不然会在初始化时报错。注意这是不可逆的,务必保存自己的秘钥。所以并不是非常推荐使用,除非你真的需要加密 API Key.

密钥可以通过openssl rand -hex 32命令生成。请务必牢记。

:::

配置示例

三・Core 启动!#

cd /opt/mx-space/core
docker-compose pull && docker compose up -d

叁・反代与更新#

一・反向代理#

以 1Panel+OpenResty 为例:

  • 新建静态网站
  • 配置 SSL 证书开启 HTTPS
  • 在 NGINX 配置文件最后一个}的上方另起一行,粘贴如下配置,并保存
双域名后端反代示例
    ## 反向代理开始
    ## WebSocket
    location /socket.io {
        proxy_pass http://127.0.0.1:2333/socket.io; 
        proxy_set_header Host $host; 
        proxy_set_header X-Real-IP $remote_addr; 
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
        proxy_set_header REMOTE-HOST $remote_addr; 
        proxy_set_header Upgrade $http_upgrade; 
        proxy_set_header Connection "upgrade"; 
        proxy_buffering off; 
        proxy_http_version 1.1; 
        add_header Cache-Control no-cache; 
    }
    ## Others
    location / {
        proxy_pass http://127.0.0.1:2333; 
        proxy_set_header Host $host; 
        proxy_set_header X-Real-IP $remote_addr; 
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
        proxy_set_header REMOTE-HOST $remote_addr; 
        add_header X-Cache $upstream_cache_status; 
    }
    ## 反向代理结束
单域名前后端反代示例
## 反向代理开始,直接复制官方文档的
    ## WebSocket 地址
    location /socket.io {
        proxy_set_header Upgrade $http_upgrade; 
        proxy_set_header Connection "Upgrade"; 
        proxy_buffering off; 
        proxy_set_header Host $host; 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
        proxy_set_header X-Forwarded-Proto $scheme; 
        proxy_pass http://127.0.0.1:2333/socket.io; 
    }
    ## API 地址
    location /api/v2 {
        proxy_pass http://127.0.0.1:2333/api/v2; 
    }
    ## 简读 render 地址
    location /render {
        proxy_pass http://127.0.0.1:2333/render; 
    }
    ## 前端地址
    location / {
        proxy_pass http://127.0.0.1:2323; 
    }
    ## 后台地址
    location /proxy {
        proxy_pass http://127.0.0.1:2333/proxy;
    }
    location /qaqdmin {
        proxy_pass http://127.0.0.1:2333/proxy/qaqdmin;
    }
    ## RSS 地址
    location ~* \/(feed|sitemap|atom.xml) {
        proxy_pass http://127.0.0.1:2333/$1; 
    }
    ## 反向代理结束
### 二 · Core 初始化

反向代理配置完成,访问后端 https:// 后端域名 /proxy/qaqdmin

例: https://api.example.cc/proxy/qaqdmin

根据页面提示完成初始化,
若完成后未正确跳转后台,
再次进入 https://api.example.cc/proxy/qaqdmin 即可

三・Core 更新#

cd /opt/mx-space/core
docker-compose pull && docker compose up -d

肆・参考文章#

Debian 12 / Ubuntu 24.04 安装 Docker 以及 Docker Compose 教程


官方部署文档

此文由 Mix Space 同步更新至 xLog
原始链接为 https://www.vlo.cc/posts/jc/mix-deploy


加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。