feat(deploy): Caddy 对外端口支持 HTTP_PORT / HTTPS_PORT 配置

This commit is contained in:
2026-10-13 10:39:12 +08:00
parent 2dbd625e87
commit c0051cff03
4 changed files with 10 additions and 4 deletions
+5
View File
@@ -27,6 +27,11 @@ NEWAPI_BASE=http://127.0.0.1:8080
# HTTPS + 域名部署务必 true。
COOKIE_SECURE=false
# Caddy 对外端口(宿主机被占用时改这里,例如 28080 / 28443)
# 仅影响宿主机映射;容器内仍是 80/443
HTTP_PORT=80
HTTPS_PORT=443
# 业务日志级别:debug | info | warning | error | fatal(访问日志另由 hono/logger 输出)
LOG_LEVEL=info
+2 -1
View File
@@ -105,8 +105,9 @@ docker compose up -d --build
docker compose ps # migrate 应为 exited(0),其余 running/healthy
```
- 页面:`http://<服务器>/`;接口文档:`http://<服务器>/api/docs`
- 页面:`http://<服务器>/`(若改了 `HTTP_PORT` 则加端口);接口文档:`http://<服务器>/api/docs`
- 迁移:由 `migrate` 一次性服务在启动时幂等执行(journal),重复执行不会多灌
- 端口:默认 80/443;宿主机被占用时在 `.env` 设 `HTTP_PORT` / `HTTPS_PORT`,再执行固定命令
- HTTPS:`Caddyfile` 站点行改成域名,`.env` 设 `COOKIE_SECURE=true`,再执行固定命令
### 注意
+2 -2
View File
@@ -88,8 +88,8 @@ services:
context: .
target: proxy
ports:
- "80:80"
- "443:443"
- "${HTTP_PORT:-80}:80"
- "${HTTPS_PORT:-443}:443"
depends_on:
- server
restart: unless-stopped
+1 -1
View File
@@ -158,7 +158,7 @@ postgres (healthy) ──► migrate (completed successfully) ──► server
1. **`migrate` 独立服务**,而不是塞进 server 启动:语义是「部署时迁表」,避免 server/engine 双进程抢迁;`depends_on: service_completed_successfully` 保证先迁后跑。
2. **环境变量**:`DATABASE_URL` · `SK_KEY_ENCRYPTION_SECRET` · `NEWAPI_BASE` · `COOKIE_SECURE` · `LOG_LEVEL` · `SYNC_INTERVAL_MS` · 可选 `ADMIN_INIT_*`——均从 `.env` 注入 `server` / `engine`(`migrate` 只需要 `DATABASE_URL`)。
3. **`DATABASE_URL` 单源**:用户 / 密码 / 库名都写在这一串里;`entrypoint-pg.sh` 解析出 `POSTGRES_USER/PASSWORD/DB` 喂给官方库镜像,`entrypoint-app.sh` 把主机改写为 compose 服务名 `postgres`。开发与部署共用同一份 `.env` 语义。
4. 端口:仅 `caddy` 映射 `80:80`、`443:443`;`server` / `engine` / `postgres` 均不对外。
4. 端口:仅 `caddy` 映射到宿主机;默认 `80`/`443`,可用 `.env` 的 `HTTP_PORT` / `HTTPS_PORT` 覆盖(容器内仍为 80/443)。`server` / `engine` / `postgres` 均不对外。
5. **容器名固定**(`container_name`):`naku-postgres` / `naku-migrate` / `naku-server` / `naku-engine` / `naku-caddy`——单副本约定下使用;服务间 DNS 仍用服务名(如 `server:18456`)。
### 5.3 `Caddyfile`