-
Notifications
You must be signed in to change notification settings - Fork 213
Expand file tree
/
Copy pathdocker-compose.example.yml
More file actions
126 lines (102 loc) · 4.75 KB
/
Copy pathdocker-compose.example.yml
File metadata and controls
126 lines (102 loc) · 4.75 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
# SublinkPro Docker Compose 配置模板
# ============================================
# 复制此文件为 docker-compose.yml 并根据需要修改
# 使用方法: docker-compose up -d
# ============================================
services:
sublinkpro:
# 镜像选择
# image: zerodeng/sublink-pro:dev # 开发版(功能尝鲜)
image: zerodeng/sublink-pro:latest # 稳定版(推荐)
container_name: sublinkpro
# 端口映射
ports:
- "8000:8000"
# 数据持久化
volumes:
- "./db:/app/db" # 本地数据目录(配置文件 / GeoIP / 默认 SQLite)
- "./template:/app/template" # 模板目录
- "./logs:/app/logs" # 日志目录
# ============================================
# 环境变量配置
# ============================================
environment:
# ---------- 基础配置 ----------
# 服务端口(容器内部端口)
- SUBLINK_PORT=8000
# 数据库 DSN(可选)
# 留空时默认使用 SQLite,并在 /app/db/sublink.db 创建数据库文件
# MySQL 示例:
# - SUBLINK_DSN=mysql://user:pass@tcp(mysql:3306)/sublink?charset=utf8mb4&parseTime=True&loc=Local
# PostgreSQL 示例:
# - SUBLINK_DSN=postgres://user:pass@postgres:5432/sublink?sslmode=disable
# 日志等级 (debug/info/warn/error/fatal)
# debug: 调试信息 | info: 一般信息(默认) | warn: 警告 | error: 错误
- SUBLINK_LOG_LEVEL=info
# Token 过期天数
- SUBLINK_EXPIRE_DAYS=14
# ---------- 登录安全配置 ----------
# 登录失败次数限制
- SUBLINK_LOGIN_FAIL_COUNT=5
# 登录失败统计窗口(分钟)
- SUBLINK_LOGIN_FAIL_WINDOW=1
# 登录封禁时间(分钟)
- SUBLINK_LOGIN_BAN_DURATION=10
# ---------- 敏感配置(可选) ----------
# 以下配置如不设置,系统会自动生成并存储到数据库
# 如果设置了环境变量,值会自动同步到数据库,方便迁移部署
# 多实例部署时请务必设置相同的值以保持一致性
# JWT 签名密钥
# - SUBLINK_JWT_SECRET=your-secret-key-at-least-32-characters
# API 加密密钥
# - SUBLINK_API_ENCRYPTION_KEY=your-encryption-key-at-least-32-characters
# ---------- GeoIP 配置(可选) ----------
# GeoIP 数据库路径,默认为 ./db/GeoLite2-City.mmdb
# 系统启动时会自动检测并下载 GeoIP 数据库,无需手动配置
# 如需自定义路径,请取消注释以下配置
# - SUBLINK_GEOIP_PATH=/app/db/GeoLite2-City.mmdb
# ---------- 验证码配置 ----------
# 验证码模式: 1=关闭 | 2=传统(默认) | 3=Cloudflare Turnstile
- SUBLINK_CAPTCHA_MODE=2
# Cloudflare Turnstile 配置(仅 mode=3 时需要)
# 如未配置将自动降级为传统验证码
# 获取地址: https://dash.cloudflare.com/?to=/:account/turnstile
# - SUBLINK_TURNSTILE_SITE_KEY=your-site-key
# - SUBLINK_TURNSTILE_SECRET_KEY=your-secret-key
# Turnstile 验证代理(解决服务器无法访问 Cloudflare API 问题)
# 使用 mihomo 支持的代理链接格式(如 vless://, vmess://, ss://)
# 填写即使用代理,未填写则直连
# - SUBLINK_TURNSTILE_PROXY_LINK=vless://your-proxy-link...
# ---------- 站点隐藏配置 ----------
# 前端访问基础路径(用于隐藏站点入口)
# 设置后需访问 domain/yourpath 才能进入管理界面
# 不影响 API 接口和订阅获取功能
# - SUBLINK_WEB_BASE_PATH=/admin
# ---------- 管理员配置 ----------
# 初始管理员密码(仅首次启动时生效)
# - SUBLINK_ADMIN_PASSWORD=your-admin-password
# 重置管理员密码(每次启动时检查并重置)
# - SUBLINK_ADMIN_PASSWORD_REST=new-admin-password
# 重启策略
restart: unless-stopped
# 健康检查(可选)
# healthcheck:
# test: ["CMD", "wget", "-q", "--spider", "http://localhost:8000/api/version"]
# interval: 30s
# timeout: 10s
# retries: 3
# start_period: 10s
# ============================================
# 使用说明
# ============================================
# 1. 复制此文件: cp docker-compose.example.yml docker-compose.yml
# 2. 根据需要修改配置
# 3. 启动服务: docker-compose up -d
# 4. 查看日志: docker-compose logs -f
# 5. 停止服务: docker-compose down
#
# 默认账号密码: admin / 123456
# 请登录后立即修改密码!
#
# 配置优先级说明:
# 环境变量 > 配置文件(db/config.yaml) > 数据库 > 默认值