高级部署
高级部署从公开源码部署服务。
准备
- Docker 和 Docker Compose。
- Git 和 OpenSSL。
- 请在个人局域网内部署,部署在公网请务必配置 TLS 加密。
下载源码
bash
git clone https://github.com/SubBoost/subboost.git
cd subboost/local配置环境
复制环境变量文件:
bash
cp local.env.example .env生成密码和密钥:
bash
for name in POSTGRES_PASSWORD ENCRYPTION_KEY JWT_SECRET CRON_SECRET LOCAL_SETUP_TOKEN; do
printf '%s=%s\n' "$name" "$(openssl rand -hex 32)"
done将输出值填入 .env:
text
POSTGRES_DB=subboost
POSTGRES_USER=subboost
POSTGRES_PASSWORD=<随机值>
DATABASE_URL=postgresql://subboost:<POSTGRES_PASSWORD>@db:5432/subboost?schema=public
ENCRYPTION_KEY=<随机值>
JWT_SECRET=<随机值>
CRON_SECRET=<随机值>
LOCAL_SETUP_TOKEN=<随机值>
APP_URL=http(s)://<访问地址>:<端口>
SUBBOOST_PORT=<端口>POSTGRES_PASSWORD和DATABASE_URL使用同一密码。ENCRYPTION_KEY、JWT_SECRET、CRON_SECRET、LOCAL_SETUP_TOKEN使用互不相同的高强度随机值。
启动
在 local 目录运行:
bash
docker compose up -d --build创建管理员
使用 .env 中的 APP_URL 和 LOCAL_SETUP_TOKEN 组成首次初始化链接:
text
<APP_URL>/login#setup-token=<LOCAL_SETUP_TOKEN>在浏览器中打开该链接并创建管理员。该链接包含初始化令牌,请勿分享。
检查
查看容器:
bash
docker compose ps检查健康接口:
text
http(s)://<访问地址>:<端口>/api/health/live
http(s)://<访问地址>:<端口>/api/health/ready查看日志:
bash
docker compose logs --tail=100 app
docker compose logs --tail=100 db更新
更新源码并重新部署:
bash
git pull --ff-only
docker compose up -d --build更新前先按 更新维护 备份数据库和 .env。
