diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..9355180 --- /dev/null +++ b/.env.example @@ -0,0 +1,23 @@ +# Telegram Panel - Docker Compose 本地配置示例 +# +# 使用方式: +# 1) 复制本文件为 .env(.env 已在 .gitignore 中) +# 2) 按需填写你的值 +# +# Compose 会自动读取当前目录下的 .env 用于变量替换: +# docker compose up -d --build +# +# 也可以显式指定: +# docker compose --env-file .env up -d --build + +# Webhook 模式(生产环境可选) +# - true: 使用 Webhook(需要公网 HTTPS + 反向代理转发 /api/bot/webhook/*) +# - false: 默认 Long Polling +TP_TELEGRAM_WEBHOOK_ENABLED=false + +# 你的公网 HTTPS 域名(必须是 https://...),例如: +# TP_TELEGRAM_WEBHOOK_BASE_URL=https://panel.example.com +TP_TELEGRAM_WEBHOOK_BASE_URL= + +# Webhook 验证密钥(建议随机字符串,Telegram 会在请求头里携带用于校验) +TP_TELEGRAM_WEBHOOK_SECRET_TOKEN= diff --git a/.gitignore b/.gitignore index 9628a04..3aeb7ea 100644 --- a/.gitignore +++ b/.gitignore @@ -61,6 +61,10 @@ x86/ # Local scratch todolist +# Docker Compose local overrides / env (do not commit) +.env +docker-compose.override.yml + # Docker persistent data docker-data/ diff --git a/README.md b/README.md index c673010..f22c713 100644 --- a/README.md +++ b/README.md @@ -100,17 +100,35 @@ https://faka.boxmoe.eu.org/ - ✅ 更快的响应速度(Telegram 主动推送) - ✅ 更适合高流量/多 Bot 场景 +不建议直接改 `docker-compose.yml`(否则后续 `git pull` 更新时容易冲突/被覆盖)。推荐用以下两种方式之一做“本地覆盖”: + +#### 方式 A:使用 `.env`(推荐) + +项目已支持通过 `.env` 注入 Webhook 配置;`.env` 不应提交到仓库(已加入 `.gitignore`)。 + +```bash +cp .env.example .env +``` + +然后编辑 `.env`,按需填写: + +```env +TP_TELEGRAM_WEBHOOK_ENABLED=true +TP_TELEGRAM_WEBHOOK_BASE_URL=https://your-domain.com +TP_TELEGRAM_WEBHOOK_SECRET_TOKEN=your-random-secret-token +``` + +#### 方式 B:使用 `docker-compose.override.yml` + +在项目根目录创建 `docker-compose.override.yml`(不提交到仓库,已加入 `.gitignore`): + ```yaml -# docker-compose.yml 中添加/修改以下配置 -environment: - # 启用 Webhook 模式(生产环境推荐) - Telegram__WebhookEnabled: "true" - # Webhook 公网基础 URL(必须是 HTTPS) - Telegram__WebhookBaseUrl: "https://your-domain.com" - # Webhook 验证密钥(建议使用随机字符串,用于验证 Telegram 请求来源) - Telegram__WebhookSecretToken: "your-random-secret-token" - # 启用自动同步(Bot 加入新频道后自动添加到列表) - Telegram__BotAutoSyncEnabled: "true" +services: + telegram-panel: + environment: + Telegram__WebhookEnabled: "true" + Telegram__WebhookBaseUrl: "https://your-domain.com" + Telegram__WebhookSecretToken: "your-random-secret-token" ``` **配置说明:** diff --git a/docker-compose.yml b/docker-compose.yml index 348138f..829c1c5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -30,8 +30,8 @@ services: # ========== Webhook 模式配置 ========== # 启用 Webhook 模式(启用后将使用 Webhook 替代轮询接收更新) - Telegram__WebhookEnabled: "false" + Telegram__WebhookEnabled: "${TP_TELEGRAM_WEBHOOK_ENABLED:-false}" # Webhook 公网基础 URL(必须是 HTTPS,例如: https://your-domain.com) - Telegram__WebhookBaseUrl: "" + Telegram__WebhookBaseUrl: "${TP_TELEGRAM_WEBHOOK_BASE_URL:-}" # Webhook 验证密钥(用于验证 Telegram 请求,建议使用随机字符串) - Telegram__WebhookSecretToken: "" + Telegram__WebhookSecretToken: "${TP_TELEGRAM_WEBHOOK_SECRET_TOKEN:-}"