Mix Space 是一款簡潔而不簡單的個人博客系統,它夠快,夠現代。你可以利用它構建一個屬於自己的個人空間,記錄生活,分享知識。
後端 Core 項目#
系統 / 環境要求#
- 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