Files
tg-vault/.env.example
T

169 lines
7.0 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
###############################################################################
# TG Vault 环境配置文件模板 (Environment Configuration Template)
# 说明:请复制此文件为 .env 并根据实际部署环境进行修改
###############################################################################
# =============================================================================
# 新手只需填写:部署前修改以下 2 项
# =============================================================================
# 前端访问后端的 API 地址,必须包含协议
# 示例:Nginx/Caddy 将 api.example.com 反代到宿主机 51947 端口
VITE_API_URL=https://api.example.com
# 允许跨域的前端来源地址,通常填写前端网页完整地址
# 示例:Nginx/Caddy 将 cloud.example.com 反代到宿主机 47832 端口
CORS_ORIGIN=https://cloud.example.com
# =============================================================================
# 自动生成:通常无需填写,deploy/install.sh 会创建或刷新
# =============================================================================
# 自动生成:数据库密码。手动运行 Compose 时请生成至少 32 字节的密码学安全随机值。
# 例如:python3 -c "import secrets; print(secrets.token_hex(32))"
DB_PASSWORD=
# 高级覆盖:OAuth 默认分别继承 VITE_API_URL 与 CORS_ORIGIN。
# 仅多入口或特殊反代部署需要显式填写。
OAUTH_CALLBACK_BASE_URL=
OAUTH_FRONTEND_ORIGIN=
# =============================================================================
# 可选:Telegram 集成
# =============================================================================
# Telegram Bot 凭证推荐在 Web「设置 → Telegram」中填写并加密保存。
# 以下字段仅用于旧部署兼容或应急回退;Web 配置存在时优先使用 Web 配置。
# 默认 false:Bot 离线不阻断 Web/API。网页管理的 Bot 配置会保存对应 required 状态;
# 旧环境变量部署需要严格健康检查时可设为 true,并重启 backend。
TELEGRAM_REQUIRED=false
TELEGRAM_BOT_TOKEN=
TELEGRAM_API_ID=
TELEGRAM_API_HASH=
# 允许用户推荐在 Web 中维护;环境变量仍作为兼容覆盖。
# 获取方式:让用户在 Telegram 私聊 @userinfobot 查看 Id。
# 如果留空,首次无人认证时,第一个正确输入 Bot PIN 的用户会自动加入允许列表。
TELEGRAM_ALLOWED_USER_IDS=
# 可选:限制账号级频道抓取来源,多个用户名/链接/频道 ID 用英文逗号分隔。
TELEGRAM_ALLOWED_SOURCES=
# 旧变量名兼容项;新部署请使用 TELEGRAM_ALLOWED_SOURCES,不要同时设置两者。
TELEGRAM_SOURCE_ALLOWLIST=
# Bot 自身 MTProto session 仍保存在 /data 持久卷。
TELEGRAM_SESSION_FILE=/data/telegram_session.txt
# 账号级下载器推荐在 Web 中登录,session 由 STORAGE_CREDENTIALS_SECRET 加密保存在数据库设置中。
# 下面的文件路径只用于旧版明文 session 迁移和 CLI 兼容;迁移成功后旧文件会删除。
TELEGRAM_USER_SESSION_FILE=/data/telegram_user_session.txt
# Telegram 并发下载 worker 数。单请求上限仍是 512KB;该值控制单个文件内部的并发分片请求数,建议 4-8,最大 16。
TELEGRAM_DOWNLOAD_WORKERS=4
# Telegram 文件级下载并发数:一次最多同时下载几个文件。可在 Bot 里用 /file_concurrency 调整。
TELEGRAM_FILE_DOWNLOAD_CONCURRENCY=2
# =============================================================================
# 可选:yt-dlp 视频下载
# =============================================================================
# yt-dlp 可执行文件路径(默认使用系统 PATH;仅在找不到命令时再改为绝对路径)
YTDLP_BIN=yt-dlp
# yt-dlp 下载工作目录
YTDLP_WORK_DIR=/data/uploads/ytdlp
# yt-dlp 下载任务并发
YTDLP_MAX_CONCURRENT=1
# =============================================================================
# 可选:新版本检测(默认开启)
# =============================================================================
# 后端每 6 小时检查一次 GitHub 正式 Release;失败不会影响 Web/API 就绪状态。
UPDATE_CHECK_ENABLED=true
# fork 或私有维护分支可覆盖为 owner/repository。
UPDATE_CHECK_REPOSITORY=hicocos/tg-vault
# =============================================================================
# 默认配置:通常无需修改
# =============================================================================
# 后端服务运行端口
PORT=51947
# 文件与缓存目录(容器内路径)
UPLOAD_DIR=/data/uploads
THUMBNAIL_DIR=/data/thumbnails
PREVIEW_DIR=/data/previews
CHUNK_DIR=/data/chunks
TG_VAULT_SECRET_DIR=/data/secrets
# 重复文件策略:copy=生成副本,skip=跳过重复(同名+同目录+同大小)
DUPLICATE_FILE_MODE=copy
# 是否自动清理本地 uploads 中未登记到数据库的孤儿文件。默认开启,可在 Bot 里用 /cleanup_settings 关闭。
AUTO_CLEANUP_ORPHANS=true
# Telegram Bot 限流:普通消息每分钟 30 次;重型命令每 10 分钟 5 次
TELEGRAM_RATE_WINDOW_MS=60000
TELEGRAM_RATE_MAX=30
TELEGRAM_HEAVY_RATE_WINDOW_MS=600000
TELEGRAM_HEAVY_RATE_MAX=5
TELEGRAM_PIN_FAIL_WINDOW_MS=900000
TELEGRAM_PIN_FAIL_MAX=5
TELEGRAM_PIN_LOCK_MS=900000
TELEGRAM_COMMENTS_MAX_PER_POST=200
TELEGRAM_SUBSCRIPTION_INTERVAL_MS=300000
TELEGRAM_SUBSCRIPTION_SCAN_LIMIT=100
# 生产默认不输出每条 SQL;仅记录超过阈值的结构化慢查询元数据(不含 SQL 文本和参数)。
LOG_LEVEL=info
SQL_LOG_SLOW_MS=500
SQL_LOG_ALL=false
# 安全与上传限制
TRUST_PROXY=loopback
COOKIE_SECURE=true
# 安装脚本在正式 HTTPS 部署中会写入 true,防止遗留 COOKIE_SECURE=false 意外降级。
# 本地纯 HTTP 调试必须将 COOKIE_SECURE 和 COOKIE_SECURE_FORCE 同时设为 false。
COOKIE_SECURE_FORCE=
JSON_BODY_LIMIT=2mb
MAX_UPLOAD_CHUNK_MB=32
MAX_CHUNK_UPLOAD_GB=20
CHUNK_GLOBAL_BUDGET_GB=40
CHUNK_DISK_RESERVE_GB=8
MAX_TOTAL_CHUNKS=50000
CHUNK_SESSION_TTL_MS=86400000
CHUNK_COMPLETION_LEASE_MS=1800000
ORPHAN_CLEANUP_MIN_AGE_MS=600000
# 留空时从 /data/secrets 自动生成并持久化。显式设置时至少使用 32 个随机字符。
SESSION_SECRET=
STORAGE_CREDENTIALS_SECRET=
TOTP_SECRET=
# 默认只允许 HTTPS 的 S3/WebDAV endpoint。仅在可信内网测试时设为 true。
ALLOW_INSECURE_STORAGE_ENDPOINTS=false
# 云存储连接测试超时,以及 WebDAV 读请求无活动和单次上传超时。
STORAGE_PROBE_TIMEOUT_MS=15000
WEBDAV_INACTIVITY_TIMEOUT_MS=300000
WEBDAV_UPLOAD_TIMEOUT_MS=21600000
# 频道后台任务和磁盘保护高级参数。
TG_JOB_RECOVERY_DELAY_MS=10000
TG_JOB_SCAN_SEGMENT_SIZE=100
TG_JOB_DOWNLOAD_BATCH_SIZE=20
TG_JOB_MAX_ATTEMPTS=3
TG_LARGE_TASK_SEGMENT_SIZE=50
TG_LARGE_TASK_REFRESH_INTERVAL_MS=10000
TG_MEDIA_GROUP_ENQUEUE_BATCH_SIZE=50
TG_MIN_FREE_DISK_GB=8
TG_DISK_WATERMARK_RECHECK_MS=30000
TG_DISK_WATERMARK_MAX_WAIT_MS=0
# Telegram 状态调试日志(排查 Bot 消息刷新问题时再启用/查看)
TG_STATUS_DEBUG=0
TG_STATUS_DEBUG_LOG=/data/logs/tg_silent_debug.log
TG_DEBUG_LOG_MAX_MB=5