feat: 交付官方 Docker 运行时,外观改背景图并下线自定义 CSS/JS
站点/后台分轨背景与用户列表排序一并落地;生产 CORS 改走 SITE_URL,健康检查带版本号。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
74
deploy/README.md
Normal file
74
deploy/README.md
Normal file
@@ -0,0 +1,74 @@
|
||||
# 官方运行时(Docker Compose)
|
||||
|
||||
一体交付:Next.js SSR + Go API + PostgreSQL 17。 **不含反代**:TLS 与同源路由由你现有的 Nginx / Caddy 处理,示例见 [nginx.example.conf](./nginx.example.conf)。契约见 [CONTRACT.md](./CONTRACT.md)。
|
||||
|
||||
本地开发**不要**用这份 Compose。请继续用仓库根 `start.bat` / `start.sh`(只起 Postgres,前后端热重载)。
|
||||
|
||||
## 首次安装
|
||||
|
||||
1. 安装 Docker Compose v2。
|
||||
2. 复制环境文件并改密码:
|
||||
|
||||
```bash
|
||||
cd deploy
|
||||
cp .env.example .env
|
||||
# 编辑 .env:POSTGRES_PASSWORD、JWT_SECRET、SITE_URL
|
||||
```
|
||||
|
||||
`SITE_URL` 填浏览器看到的 HTTPS origin(如 `https://bbs.example.com`)。`DEV_MODE=false` 会启用 `__Host-` cookie,**必须由你的反代提供 HTTPS**。
|
||||
|
||||
3. 启动(尚未推镜像仓库时从源码构建):
|
||||
|
||||
```bash
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
默认只把 `127.0.0.1:3000`(web)和 `127.0.0.1:3001`(api)交给本机反代。与本地 `start.bat` 的 3000/3001 冲突时,先停开发进程,或改 `.env` 里的 `JIANG13_WEB_PORT` / `JIANG13_API_PORT`。
|
||||
|
||||
4. 按 [nginx.example.conf](./nginx.example.conf) 把同一 Host 指过来:
|
||||
|
||||
- `/` → web `:3000`
|
||||
- `/api/`(含 `/api/ws`)、`/uploads/`、`/health` → api `:3001`
|
||||
|
||||
`GET https://你的域名/health` 应返回 `"status":"ok"` 和 `version`。空库首次注册的账号自动成为站长。不要把 API 放到另一个子域。
|
||||
|
||||
数据在 Docker volume `appdata` / `pgdata`。不要把 `backend/data` 或真实 `app.ini` 打进镜像。
|
||||
|
||||
## 更新应用(官方路径)
|
||||
|
||||
镜像已推到仓库、且 `.env` 里 `JIANG13_IMAGE_*` 指向该仓库时:
|
||||
|
||||
```bash
|
||||
cd deploy
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
只换应用 tag,不改本目录 Compose / 环境变量表。启动时自动迁移。建议先备份:
|
||||
|
||||
```bash
|
||||
docker compose exec postgres pg_dump -U "$POSTGRES_USER" "$POSTGRES_DB" > backup.sql
|
||||
```
|
||||
|
||||
`appdata` 用 `docker volume` 备份。失败则把 `JIANG13_VERSION` 改回上一版再 `up -d`。
|
||||
|
||||
尚未发布镜像时,在更新源码后执行 `docker compose up -d --build`。
|
||||
|
||||
Compose 文件本身有变更时,按新版本 changelog **合并** `deploy/docker-compose.yml` 与 `.env`,不能只 pull。
|
||||
|
||||
## 停止
|
||||
|
||||
```bash
|
||||
cd deploy
|
||||
docker compose down
|
||||
```
|
||||
|
||||
加 `-v` 会删数据库和上传,仅在你确认要清空时使用。不要对仓库根的开发 Postgres 执行这条。
|
||||
|
||||
## 不做本期
|
||||
|
||||
- 后台一键更新
|
||||
- 预编译包 / watchdog
|
||||
- 把 Docker socket 交给 Web 进程
|
||||
- 在 Compose 里内置 Nginx / Caddy
|
||||
- Cloudflare Workers 作为官方运行时
|
||||
Reference in New Issue
Block a user