a4e78b864a
延长 SendEmailJob 超时并改为超时直接失败,补充重试退避、 失败日志与收件人脱敏,避免 send_email 队列批量超时重试。 新增 MAIL_TIMEOUT 与 QUEUE_RETRY_AFTER 配置,并抽出邮件运行时 配置与 HTML 内容服务,确保 Horizon 常驻进程使用最新邮件配置。 为 Docker、supervisor 与 compose 样例补齐 scheduler 进程,并在 节点管理端开启墙检测托管时立即触发一次检测,保证定时任务持续生效。
77 lines
2.0 KiB
YAML
77 lines
2.0 KiB
YAML
# Split deployment for K8s users or operators who want to scale, restart and
|
|
# limit each process independently. The single image is reused across services
|
|
# by overriding the command and disabling the supervisor programs that are not
|
|
# relevant to that role.
|
|
#
|
|
# Topology:
|
|
# caddy ──┬─→ web (HTTP) :7001 → octane :7001
|
|
# └─→ ws-server (WebSocket) /api/v2/server/ws → :8076
|
|
# horizon (queue worker, no public port)
|
|
# redis (state)
|
|
services:
|
|
caddy:
|
|
image: caddy:2-alpine
|
|
restart: unless-stopped
|
|
ports:
|
|
- "7001:7001"
|
|
depends_on:
|
|
- web
|
|
- ws-server
|
|
volumes:
|
|
- ./.docker/caddy/Caddyfile.split:/etc/caddy/Caddyfile:ro
|
|
|
|
web:
|
|
image: ghcr.io/cedar2025/xboard:latest
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- redis
|
|
volumes: &shared-volumes
|
|
- ./.env:/www/.env
|
|
- ./.docker/.data/:/www/.docker/.data
|
|
- ./storage/logs:/www/storage/logs
|
|
- ./storage/theme:/www/storage/theme
|
|
- ./plugins:/www/plugins
|
|
environment:
|
|
docker: "true"
|
|
ENABLE_CADDY: "false"
|
|
ENABLE_HORIZON: "false"
|
|
ENABLE_SCHEDULE: "true"
|
|
ENABLE_WS_SERVER: "false"
|
|
|
|
horizon:
|
|
image: ghcr.io/cedar2025/xboard:latest
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- redis
|
|
volumes: *shared-volumes
|
|
environment:
|
|
docker: "true"
|
|
ENABLE_CADDY: "false"
|
|
ENABLE_WEB: "false"
|
|
ENABLE_SCHEDULE: "false"
|
|
ENABLE_WS_SERVER: "false"
|
|
|
|
ws-server:
|
|
image: ghcr.io/cedar2025/xboard:latest
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- redis
|
|
volumes: *shared-volumes
|
|
environment:
|
|
docker: "true"
|
|
ENABLE_CADDY: "false"
|
|
ENABLE_WEB: "false"
|
|
ENABLE_HORIZON: "false"
|
|
ENABLE_SCHEDULE: "false"
|
|
WS_HOST: "0.0.0.0"
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
restart: unless-stopped
|
|
command: redis-server --unixsocket /data/redis.sock --unixsocketperm 777 --save 900 1 --save 300 10 --save 60 10000
|
|
volumes:
|
|
- redis-data:/data
|
|
|
|
volumes:
|
|
redis-data:
|