Files
Xboard/compose.sample.yaml
yinjianm a4e78b864a fix(api): 修复邮件队列超时并补齐调度进程
延长 SendEmailJob 超时并改为超时直接失败,补充重试退避、
失败日志与收件人脱敏,避免 send_email 队列批量超时重试。

新增 MAIL_TIMEOUT 与 QUEUE_RETRY_AFTER 配置,并抽出邮件运行时
配置与 HTML 内容服务,确保 Horizon 常驻进程使用最新邮件配置。

为 Docker、supervisor 与 compose 样例补齐 scheduler 进程,并在
节点管理端开启墙检测托管时立即触发一次检测,保证定时任务持续生效。
2026-04-28 13:32:58 +08:00

82 lines
2.4 KiB
YAML

# Default deployment: bridge network with port 7001 published to the host.
# Suitable for: bare docker-compose, aaPanel + Docker manager, custom reverse
# proxies (nginx, Caddy on host, Cloudflare Tunnel, etc.) that talk to
# 127.0.0.1:7001 on the host.
#
# For 1Panel users: use compose.1panel.sample.yaml so the container can reach
# the 1Panel-managed MySQL/Redis on the 1panel-network.
#
# For aaPanel native (openresty on host) users that prefer host networking:
# use compose.host.sample.yaml.
services:
web:
build:
context: .
dockerfile: Dockerfile.local
image: xboard-local:latest
volumes:
- ./.docker/.data/redis/:/data/
- ./.env:/www/.env
- ./.docker/.data/:/www/.docker/.data
- ./storage/logs:/www/storage/logs
- ./storage/theme:/www/storage/theme
- ./plugins:/www/plugins
environment:
- docker=true
depends_on:
- redis
# network_mode: host
command: php artisan octane:start --host=0.0.0.0 --port=7001
restart: on-failure
ports:
- 7001:7001
horizon:
image: xboard-local:latest
volumes:
- ./.docker/.data/redis/:/data/
- ./.env:/www/.env
- ./.docker/.data/:/www/.docker/.data
- ./storage/logs:/www/storage/logs
- ./plugins:/www/plugins
restart: on-failure
# network_mode: host
command: php artisan horizon
depends_on:
- redis
scheduler:
image: xboard-local:latest
volumes:
- ./.docker/.data/redis/:/data/
- ./.env:/www/.env
- ./.docker/.data/:/www/.docker/.data
- ./storage/logs:/www/storage/logs
- ./plugins:/www/plugins
restart: on-failure
# network_mode: host
command: php artisan schedule:work
depends_on:
- redis
ws-server:
image: xboard-local:latest
volumes:
- ./.docker/.data/redis/:/data/
- ./.env:/www/.env
- ./.docker/.data/:/www/.docker/.data
- ./storage/logs:/www/storage/logs
- ./plugins:/www/plugins
restart: on-failure
# network_mode: host
command: php artisan ws-server start
depends_on:
- redis
redis:
image: redis:7-alpine
command: redis-server --unixsocket /data/redis.sock --unixsocketperm 777 --save 900 1 --save 300 10 --save 60 10000
restart: unless-stopped
ports:
- "7001:7001"
volumes:
- ./.docker/.data/redis:/data
sysctls:
net.core.somaxconn: 1024