169 lines
7.0 KiB
Bash
169 lines
7.0 KiB
Bash
###############################################################################
|
||
# 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
|