Appearance
部署排障
这一页只列最高频的 5 个症状与第一步该看哪里。深入排障与备份恢复看主仓真相源。
先做最小检查
任何排障开始前先跑这几行,把现状看清楚:
bash
cd ember/infrastructure/docker
docker compose ps
docker compose logs --tail=100 ember-api
curl http://localhost:8080/health启用 Bot 时再加:
bash
docker compose logs --tail=100 ember-bot
curl http://localhost:8000/health报错抄清楚再继续。
1. 容器启动失败
最常见的原因是必填密钥没填。
检查:
.env里POSTGRES_PASSWORD/JWT_SECRET/CONFIG_ENCRYPTION_KEY/INTERNAL_API_SECRET是否都不为空且不是示例值docker compose up报的具体错误(缺哪个变量会直接打到终端)
辅助:
bash
docker compose config2. API 不可达
curl http://localhost:8080/health 不返回 200。
检查:
docker compose ps里ember-api是不是Up- 看 API 日志有没有数据库连接错误:
docker compose logs --tail=200 ember-api [Migrate]前缀的行有没有 failJWT_SECRET/CONFIG_ENCRYPTION_KEY是否为空字符串
3. Web 打不开
http://localhost 502 或白屏。
检查:
docker compose ps里ember-web是不是Upember-api是不是Up(Web 容器内 nginx 反代到 API 容器,API 没起就会 502)docker compose logs --tail=100 ember-web是否有 nginx 配置异常
4. Bot 不响应
Telegram 发命令没反应,或 API 推送的事件没到 Telegram。
检查:
docker compose ps里ember-bot是不是Up(默认 profile 不启动 Bot,需要--profile bot)TELEGRAM_BOT_TOKEN是否填了webhook模式下WEBHOOK_URL是不是真的公网可达 HTTPSTELEGRAM_WEBHOOK_SECRET与 Telegram 侧设置是否一致INTERNAL_API_SECRET在 API 与 Bot 两侧是否完全一致(不一致时所有 Bot 调 API、API 推 Bot 全部 401)
辅助:
bash
docker compose logs --tail=200 ember-bot
curl http://localhost:8000/health本地联调建议直接用 Cloudflared 起公网入口,不要在内网反复试,详见主仓 Cloudflared 本地联调。
5. 数据库连接失败
API 日志反复刷数据库连接错误。
检查:
docker compose ps里postgres是不是healthy- 用了独立 PostgreSQL 时,
DATABASE_URL是否真的指向当前 DB,账号密码是否正确 - 数据库侧的
pg_hba.conf是否允许当前连接
辅助:
bash
docker compose logs postgres
docker compose exec postgres psql -U postgres -d ember -c '\dt'想看更细的排障
本页只覆盖最常见的 5 个入口动作。完整排障表(备份与恢复、迁移失败、配置层错误、Stripe 测试、Cloudflared 联调、testing-troubleshooting 等)维护在主仓:
何时停止排障,直接修配置
出现下面任一情况,就别继续看日志碰运气:
.env里仍有your-...这类占位值- 依赖的外部地址(Emby / TMDB / MoviePilot)不可达
- 升级环境却没让
ember-api跑过启动期 Migrate - Webhook 地址写成了内网地址却想接公网回调