158 lines
6.2 KiB
Bash
158 lines
6.2 KiB
Bash
###############################################################################
|
|
# TG Vault 环境配置文件模板 (Environment Configuration Template)
|
|
# 说明:请复制此文件为 .env 并根据实际部署环境进行修改
|
|
###############################################################################
|
|
|
|
# =============================================================================
|
|
# 必填:部署前请先修改
|
|
# =============================================================================
|
|
|
|
# PostgreSQL 数据库密码
|
|
DB_PASSWORD=your_secure_password_here
|
|
|
|
# 前端访问后端的 API 地址,必须包含协议
|
|
# 示例:Nginx/Caddy 将 api.example.com 反代到宿主机 51947 端口
|
|
VITE_API_URL=https://api.example.com
|
|
|
|
# 必填:正式发布使用语义化版本标签,例如 v2.0.1;不允许省略后回退 latest
|
|
IMAGE_VERSION=v2.0.1
|
|
|
|
# 后端 OAuth 回调固定来源,通常与 VITE_API_URL 相同;必须是精确 https origin
|
|
OAUTH_CALLBACK_BASE_URL=https://api.example.com
|
|
|
|
# OAuth 成功页允许通知的前端精确来源,通常与 CORS_ORIGIN 相同
|
|
OAUTH_FRONTEND_ORIGIN=https://cloud.example.com
|
|
|
|
# 允许跨域的前端来源地址,通常填写前端网页完整地址
|
|
# 示例:Nginx/Caddy 将 cloud.example.com 反代到宿主机 47832 端口
|
|
CORS_ORIGIN=https://cloud.example.com
|
|
|
|
# 应用主域名,不带 http/https,用于生成链接和展示
|
|
DOMAIN=cloud.example.com
|
|
|
|
# =============================================================================
|
|
# 可选:Telegram 集成
|
|
# =============================================================================
|
|
|
|
# Telegram Bot 基础配置。只要填这三项,Bot 就可以收文件、管理任务、调用 yt-dlp。
|
|
# 生产 Telegram 部署建议设 TELEGRAM_REQUIRED=true;凭证无效或 Bot 启动失败时 /readyz 返回 503。
|
|
# false 时 Web/API 继续运行,但 /readyz 和管理页会暴露 degraded 的 Bot component status。
|
|
TELEGRAM_REQUIRED=true
|
|
TELEGRAM_BOT_TOKEN=
|
|
TELEGRAM_API_ID=
|
|
TELEGRAM_API_HASH=
|
|
|
|
# 建议:允许通过 Bot PIN 登录的 Telegram 数字 user id,多个用英文逗号分隔。
|
|
# 获取方式:让用户在 Telegram 私聊 @userinfobot 查看 Id。
|
|
# 如果留空,首次无人认证时,第一个正确输入 Bot PIN 的用户会自动加入允许列表。
|
|
TELEGRAM_ALLOWED_USER_IDS=
|
|
|
|
# 可选:限制账号级频道抓取来源,多个用户名/链接/频道 ID 用英文逗号分隔。
|
|
TELEGRAM_ALLOWED_SOURCES=
|
|
|
|
# Bot 自身 MTProto session 和账号级下载器 session 都必须位于 /data 持久卷。
|
|
TELEGRAM_SESSION_FILE=/data/telegram_session.txt
|
|
|
|
# 可选:账号级 Telegram 下载器 session 文件路径。
|
|
# 不生成 session 时,Bot 基础功能仍可用;但频道/群组批量抓取、订阅同步、
|
|
# 以及超过 Bot 限制的大文件下载会受限。
|
|
# 生成命令:docker compose run --rm --no-deps backend npm run login:telegram-user
|
|
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
|
|
|
|
# =============================================================================
|
|
# 默认配置:通常无需修改
|
|
# =============================================================================
|
|
|
|
# 后端服务运行端口
|
|
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
|
|
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
|