forked from MajoSissi/easytier-docker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
192 lines (189 loc) · 7.59 KB
/
Copy pathdocker-compose.yaml
File metadata and controls
192 lines (189 loc) · 7.59 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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
# ============================================
# EasyTier Docker Compose 配置示例
# ============================================
# 镜像选择:
# wuhins/easytier:latest - 混合版 (Core + Web) - 推荐单机部署
# wuhins/easytier:core-latest - 纯 Core 版 (需要单独部署 Web)
# wuhins/easytier:web-latest - 纯 Web 版 (连接到远程 Core)
#
# 版本标签:
# - Release: latest, core-latest, web-latest, <version>, <version>-core, <version>-web
# - Pre-release: pre, core-pre, web-pre, <version-number>, <version-number>-core, <version-number>-web
# - CI: ci, core-ci, web-ci
# ============================================
# -------------------------------------------
# 场景 1: 混合版 - 单机部署 (Core + Web)
# 适合个人用户或小型团队,一站式解决方案
# -------------------------------------------
services:
easytier:
# wuhins/easytier:latest 最新 Release 正式版
# wuhins/easytier:pre 最新 Pre-release 预览版
# wuhins/easytier:ci 最新 Action 构建版 (合并主线的版本, 自动更新, 稳定性不保证)
image: wuhins/easytier:latest
container_name: easytier
restart: always
# 限制容器输出日志的大小和数量, 建议启用
logging:
driver: "json-file"
options:
# 单个日志文件的最大大小
max-size: "10m"
# 最多保留的日志文件数量
max-file: "3"
network_mode: host
environment:
- TZ=Asia/Shanghai
# -------------------------------------------
# 自定义节点主机名, 可用于 Web 控制台显示和区分不同节点
# 默认: 无
# - HOSTNAME=node1
# -------------------------------------------
# 连接其他远程 Web 控制台
# 设置后会忽略 WEB_USERNAME, 不可同时连接多个 Web, 但仍可启用本地控制台
# 示例: udp://api.web.com:22020/username
# 默认: 无
# - WEB_REMOTE_API=协议://主机:端口/用户名
# -------------------------------------------
# 是否启用 Web 管理界面
# 默认: false
- WEB_ENABLE=false
# -------------------------------------------
# 是否允许注册新用户 (内置用户: admin, 密码: admin, 登录后右上角可修改密码)
# 默认: false
- WEB_ENABLE_REGISTRATION=false
# -------------------------------------------
# Web 管理用户名; 设置 WEB_REMOTE_API 时此项无效
# 启用 Web 且提供用户名时将自动连接本地控制台
# 自定义用户名,需要先手动注册对应用户名才行
# 默认: 无
- WEB_USERNAME=admin
# -------------------------------------------
# 主机物理IP地址 (公网 / 内网)
# 默认: http://127.0.0.1:11211
- WEB_DEFAULT_API_HOST=http://修改为你的主机:11211
# -------------------------------------------
# Web 访问端口
# 默认: 11211
- WEB_PORT=11211
# -------------------------------------------
# Web 管理服务 (RPC) 监听端口, Core 将通过此端口连接
# 默认: 22020
- WEB_SERVER_PORT=22020
# -------------------------------------------
# Web 管理服务 (RPC) 协议, 可与其他节点的 -w 参数保持一致
# 默认: udp - 可选: [udp | tcp | ws]
- WEB_SERVER_PROTOCOL=udp
# -------------------------------------------
# Web 服务日志级别
# 默认: error - 可选: [off | error | warn | info | debug | trace]
- WEB_LOG_LEVEL=error
# -------------------------------------------
# Core 服务日志级别
# 默认: error - 可选: [ error | warn | info | debug | trace]
- CORE_LOG_LEVEL=error
# -------------------------------------------
# GeoIP 数据库文件路径 (可在 Web 控制台显示地理位置信息)
# 推荐: https://github.com/P3TERX/GeoLite.mmdb/releases (建议放到放到映射的目录 ./data/web 下, 记得更改对应文件名称/路径)
# 默认: 无
# - WEB_GEOIP_PATH=/app/data/web/GeoLite2-City.mmdb
# -------------------------------------------
# 允许为未知的心跳 Token 自动创建本地用户
# 默认: false
# - ALLOW_AUTO_CREATE_USER=false
# -------------------------------------------
# OIDC 单点登录配置 (用于对接 Keycloak, Authentik, Okta, Azure AD 等身份提供商)
# OIDC 发行者 URL, 用于自动发现配置, 示例: https://auth.example.com/realms/myrealm
# 默认: 无
# - OIDC_ISSUER_URL=
# OIDC 客户端 ID
# 默认: 无
# - OIDC_CLIENT_ID=
# OIDC 客户端密钥 (推荐使用环境变量而非命令行传递)
# 默认: 无
# - OIDC_CLIENT_SECRET=
# OIDC 回调 URL, 必须与 IdP 配置完全一致, 示例: https://easytier.example.com/api/v1/auth/oidc/callback
# 默认: 无
# - OIDC_REDIRECT_URL=
# 用于提取用户名的 Claim, 默认: preferred_username
# 默认: preferred_username
# - OIDC_USERNAME_CLAIM=preferred_username
# 请求的权限范围, 默认: openid,profile
# 默认: openid,profile
# - OIDC_SCOPES=openid,profile
# 为不支持 PKCE 的旧版 IdP 禁用 PKCE
# 默认: false
# - OIDC_DISABLE_PKCE=false
# 前后端分离部署模式下的前端基础 URL, 示例: https://easytier.example.com
# 默认: 无 (使用相对路径)
# - OIDC_FRONTEND_BASE_URL=
cap_add:
- NET_ADMIN
- NET_RAW
devices:
- /dev/net/tun:/dev/net/tun
volumes:
- ./data:/app/data
# 将写好的配置文件放在 ./data/config 下每个文件都是一个实例(.toml格式), 会跟着容器一起启动/运行
# -------------------------------------------
# 场景 2: 纯 Core 版 - 分布式部署
# 多个 Core 节点连接到一个中央 Web 控制台
# 适用于多节点集中管理场景
# -------------------------------------------
# services:
# easytier-core:
# image: wuhins/easytier:core-latest
# container_name: easytier-core
# restart: always
# logging:
# driver: "json-file"
# options:
# max-size: "10m"
# max-file: "3"
# network_mode: host
# environment:
# - TZ=Asia/Shanghai
# - HOSTNAME=node1 # 节点名称,用于在 Web 控制台区分
# - CORE_LOG_LEVEL=error
# # 连接到远程 Web 控制台 (必须设置)
# - WEB_REMOTE_API=udp://web-server-ip:22020/admin
# cap_add:
# - NET_ADMIN
# - NET_RAW
# devices:
# - /dev/net/tun:/dev/net/tun
# volumes:
# - ./data-core:/app/data
# -------------------------------------------
# 场景 3: 纯 Web 版 - 中央管理节点
# 单独部署 Web 控制台,管理多个远程 Core 节点
# 适用于集中化管理场景
# -------------------------------------------
# services:
# easytier-web:
# image: wuhins/easytier:web-latest
# container_name: easytier-web
# restart: always
# logging:
# driver: "json-file"
# options:
# max-size: "10m"
# max-file: "3"
# ports:
# - "11211:11211" # Web 访问端口
# - "22020:22020/udp" # RPC 服务端口 (Core 连接用)
# environment:
# - TZ=Asia/Shanghai
# - WEB_PORT=11211
# - WEB_SERVER_PORT=22020
# - WEB_SERVER_PROTOCOL=udp
# - WEB_DEFAULT_API_HOST=http://your-server-ip:11211
# - WEB_ENABLE_REGISTRATION=false
# - WEB_LOG_LEVEL=error
# # OIDC 配置 (可选)
# # - OIDC_ISSUER_URL=
# # - OIDC_CLIENT_ID=
# # - OIDC_CLIENT_SECRET=
# # - OIDC_REDIRECT_URL=
# volumes:
# - ./data-web:/app/data