Mix Space 是一个一款简洁而不简单的个人博客系统,它够快,够现代。你可以利用它构建一个属于自己的个人空间,记录生活,分享知识。
后端 Core 项目#
😎 The next generation of RESTful API service and more feature for Mix Space, powered by @nestjs.
系统 / 环境要求#
- 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;
}
## 反向代理结束
反向代理配置完成,访问后端 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