feat(deploy): Caddy 对外端口支持 HTTP_PORT / HTTPS_PORT 配置
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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`
|
||||
|
||||
Reference in New Issue
Block a user