a4e78b864a
延长 SendEmailJob 超时并改为超时直接失败,补充重试退避、 失败日志与收件人脱敏,避免 send_email 队列批量超时重试。 新增 MAIL_TIMEOUT 与 QUEUE_RETRY_AFTER 配置,并抽出邮件运行时 配置与 HTML 内容服务,确保 Horizon 常驻进程使用最新邮件配置。 为 Docker、supervisor 与 compose 样例补齐 scheduler 进程,并在 节点管理端开启墙检测托管时立即触发一次检测,保证定时任务持续生效。
1.8 KiB
1.8 KiB
deploy
职责
- 维护可复制到服务器的一键部署模板
- 收敛 Docker Compose 服务拓扑、环境变量模板、运行目录初始化脚本和常用运维命令
- 为依赖 Laravel Scheduler 的后台任务提供明确的部署进程入口
行为规范
deploy/xboard-server/是面向服务器复制部署的自包含目录,不依赖仓库根目录的 compose 样例compose.yaml默认包含web / horizon / scheduler / admin / ws-server / redis六个服务scheduler服务固定执行php artisan schedule:work,用于持续触发sync:server-gfw-checks、sync:server-auto-online和其他 Laravel Scheduler 任务- 模板默认使用外部 MySQL,不在 compose 中创建数据库服务,避免改变现有生产拓扑
.env.example同时覆盖 Docker Compose 变量和 Laravel 运行变量,但不得包含真实APP_KEY、数据库密码、邮箱密码或真实业务域名scripts/init.sh只创建挂载目录并在.env不存在时复制模板,不执行数据库迁移scripts/deploy.sh只负责初始化、拉取镜像和启动服务,不自动执行生产数据库迁移scripts/update.sh --migrate才会显式执行php artisan migrate --forcescripts/status.sh输出 compose 状态、scheduler 日志、schedule:list结果和手动墙检测同步命令
依赖关系
- 依赖
ghcr.io/micah123321/xboard:new作为后端默认镜像 - 依赖
ghcr.io/micah123321/xboard-admin-frontend:new作为管理端默认镜像 - 依赖
redis:8-alpine提供/data/redis.sock - 依赖外部 MySQL,由
.env中的DB_*配置提供 - 依赖
admin-frontend/Caddyfile支持XBOARD_BACKEND_UPSTREAM和XBOARD_UPLOAD_UPSTREAM - 依赖
app/Console/Kernel.php注册sync:server-gfw-checks等定时任务