forked from ZeroDeng01/sublinkPro
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.example.yaml
More file actions
145 lines (125 loc) · 4.98 KB
/
Copy pathconfig.example.yaml
File metadata and controls
145 lines (125 loc) · 4.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# SublinkPro 配置文件模板
# ============================================
# 复制此文件到 db/config.yaml 并根据需要修改
#
# 配置优先级(从高到低):
# 1. 命令行参数 (--port, --db, etc.)
# 2. 环境变量 (SUBLINK_PORT, SUBLINK_DB_PATH, etc.)
# 3. 此配置文件
# 4. 数据库存储(敏感配置)
# 5. 程序默认值
# ============================================
# 服务端口
# 环境变量: SUBLINK_PORT
port: 8000
# 数据库 DSN
# 支持 sqlite/mysql/postgres
# 留空时默认使用 SQLite,并在 db_path/sublink.db 创建数据库文件
# 环境变量: SUBLINK_DSN
# 示例:
# dsn: sqlite:///app/db/sublink.db
# dsn: mysql://user:pass@tcp(mysql:3306)/sublink?charset=utf8mb4&parseTime=True&loc=Local
# dsn: postgres://user:pass@postgres:5432/sublink?sslmode=disable
# dsn:
# 本地数据目录
# 1. 默认配置文件路径: db_path/config.yaml
# 2. 默认 SQLite 数据库路径: db_path/sublink.db
# 3. 默认 GeoIP 数据库路径: db_path/GeoLite2-City.mmdb
# 使用 MySQL/Postgres 时,此目录仍用于本地配置与数据文件
# 环境变量: SUBLINK_DB_PATH
# db_path: ./db
# 日志等级 (debug/info/warn/error/fatal)
# debug: 调试信息,开发时使用
# info: 一般信息,正常运行状态(默认)
# warn: 警告信息,潜在问题
# error: 错误信息,操作失败
# fatal: 致命错误,程序无法继续运行
# 环境变量: SUBLINK_LOG_LEVEL
log_level: info
# Token 过期天数
# 环境变量: SUBLINK_EXPIRE_DAYS
expire_days: 14
# ============================================
# 登录安全配置
# ============================================
# 登录失败次数限制(达到后封禁IP)
# 环境变量: SUBLINK_LOGIN_FAIL_COUNT
login_fail_count: 5
# 登录失败统计窗口(分钟)
# 在此时间窗口内累计失败次数
# 环境变量: SUBLINK_LOGIN_FAIL_WINDOW
login_fail_window: 1
# 登录失败封禁时间(分钟)
# 环境变量: SUBLINK_LOGIN_BAN_DURATION
login_ban_duration: 10
# ============================================
# GeoIP 配置
# ============================================
# GeoIP 数据库路径
# 系统启动时会自动检测,如果文件不存在会异步下载
# 下载进度会在控制台显示,不会阻塞系统启动
# 环境变量: SUBLINK_GEOIP_PATH
# geoip_path: ./db/GeoLite2-City.mmdb
# ============================================
# 验证码配置
# ============================================
# 验证码模式
# 1 = 关闭验证码(不推荐,仅限内网环境)
# 2 = 传统图形验证码(默认)
# 3 = Cloudflare Turnstile
# 环境变量: SUBLINK_CAPTCHA_MODE
captcha_mode: 2
# Cloudflare Turnstile 配置
# 仅在 captcha_mode: 3 时需要
# 如未配置将自动降级为传统验证码
# 获取地址: https://dash.cloudflare.com/?to=/:account/turnstile
# 环境变量: SUBLINK_TURNSTILE_SITE_KEY
# turnstile_site_key: your-site-key
# 环境变量: SUBLINK_TURNSTILE_SECRET_KEY
# turnstile_secret_key: your-secret-key
# Turnstile 验证代理配置
# 如果服务器无法直接访问 Cloudflare API,可配置代理
# 使用 mihomo 支持的代理链接格式(如 vless://, vmess://, ss:// 等)
# 填写即使用代理,未填写则直连
# 环境变量: SUBLINK_TURNSTILE_PROXY_LINK
# turnstile_proxy_link: vless://your-proxy-link...
# ============================================
# 站点隐藏配置
# ============================================
# 前端访问基础路径(用于隐藏站点入口)
# 设置后需访问 domain/yourpath 才能进入管理界面
# 不影响 API 接口和订阅获取功能
# 环境变量: SUBLINK_WEB_BASE_PATH
# web_base_path: /admin
# ============================================
# 反向代理 / 真实客户端 IP
# ============================================
# 可信反向代理列表(支持 IP 或 CIDR)
# 只有来自这些代理的 X-Forwarded-For / X-Real-IP 才会被信任
# 默认已包含本机、Docker/内网常见网段,适用于 Nginx/Caddy/宝塔反代到本机或容器网络
# 如果您使用公网负载均衡、Cloudflare Tunnel 或其他外部代理,请按实际代理出口 IP / CIDR 补充
# 如需完全禁用代理信任,可设置为空数组: trusted_proxies: []
# 环境变量: SUBLINK_TRUSTED_PROXIES(逗号分隔)
trusted_proxies:
- 127.0.0.1
- ::1
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
- 100.64.0.0/10
# ============================================
# 敏感配置说明
# ============================================
# 以下敏感配置不再存储在此文件中,而是存储在数据库中
# 您可以通过环境变量覆盖这些配置:
#
# JWT 签名密钥(用于用户登录令牌):
# - 环境变量: SUBLINK_JWT_SECRET
# - 如未设置,系统会自动生成并存储到数据库
#
# API 加密密钥(用于 API Key 的加密):
# - 环境变量: SUBLINK_API_ENCRYPTION_KEY
# - 如未设置,系统会自动生成并存储到数据库
#
# 注意:如果您需要在多实例部署时保持一致性,
# 请务必通过环境变量设置这些值!