This commit is contained in:
parent
7914b2aa78
commit
dbcb1fb066
@ -2,18 +2,23 @@
|
|||||||
# 使用方法:
|
# 使用方法:
|
||||||
# 1. 确保已将 docker-compose.cloud.yml, configs/, loki/, grafana/, prometheus/, tempo/ 目录上传到服务器同一目录
|
# 1. 确保已将 docker-compose.cloud.yml, configs/, loki/, grafana/, prometheus/, tempo/ 目录上传到服务器同一目录
|
||||||
# 2. 确保 configs/ 目录下有 ppanel.yaml 配置文件(参考 etc/ppanel.yaml)
|
# 2. 确保 configs/ 目录下有 ppanel.yaml 配置文件(参考 etc/ppanel.yaml)
|
||||||
# 3. 确保 logs/ 目录存在 (mkdir -p logs tempo_data)
|
# 3. 确保 logs/ cache/ tempo_data/ 目录存在 (mkdir -p logs cache tempo_data)
|
||||||
# 4. 运行: docker-compose -f docker-compose.cloud.yml up -d
|
# 4. 运行: docker-compose -f docker-compose.cloud.yml up -d
|
||||||
#
|
#
|
||||||
# 网络说明:
|
# 网络说明:
|
||||||
# 所有服务均在 ppanel_net bridge 网络中,通过容器名互联
|
# ppanel-server 使用 host 网络(可出外网,访问 MySQL/Redis/Tempo 用 127.0.0.1)
|
||||||
# MySQL / Redis / Tempo 不对外暴露端口(仅内网访问)
|
# 监控服务(MySQL/Redis/Loki/Tempo/Grafana/Prometheus)在 ppanel_net bridge 网络中
|
||||||
# 监控端口(Grafana/Prometheus/Loki/Tempo)绑定到 127.0.0.1,需通过 SSH 隧道或 Nginx 反代访问
|
# MySQL(3306)/Redis(6379)/Tempo(4317) 将端口映射到 127.0.0.1,ppanel-server 通过 host 网络访问
|
||||||
# 对外只暴露 8080 (ppanel API)
|
# 监控端口绑定 127.0.0.1,需通过 SSH 隧道或 Nginx 反代访问
|
||||||
|
#
|
||||||
|
# 未来多开 ppanel-server 时:
|
||||||
|
# 修复宿主机 iptables bridge 出网规则后,可将 ppanel-server 切回 bridge 网络
|
||||||
|
# 多实例用不同端口: ports: ["8081:8080"] + container_name: ppanel-server-2
|
||||||
|
|
||||||
services:
|
services:
|
||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
# 1. 业务后端 (PPanel Server)
|
# 1. 业务后端 (PPanel Server)
|
||||||
|
# host 网络:可出外网,通过 127.0.0.1 访问 MySQL/Redis/Tempo
|
||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
ppanel-server:
|
ppanel-server:
|
||||||
image: registry.kxsw.us/vpn-server:${PPANEL_SERVER_TAG:-latest}
|
image: registry.kxsw.us/vpn-server:${PPANEL_SERVER_TAG:-latest}
|
||||||
@ -22,12 +27,10 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- ./configs:/app/etc
|
- ./configs:/app/etc
|
||||||
- ./logs:/app/logs
|
- ./logs:/app/logs
|
||||||
|
- ./cache:/app/cache # GeoLite2-City.mmdb IP 地理位置数据库
|
||||||
environment:
|
environment:
|
||||||
- TZ=Asia/Shanghai
|
- TZ=Asia/Shanghai
|
||||||
ports:
|
network_mode: host
|
||||||
- "8080:8080"
|
|
||||||
networks:
|
|
||||||
- ppanel_net
|
|
||||||
ulimits:
|
ulimits:
|
||||||
nproc: 65535
|
nproc: 65535
|
||||||
nofile:
|
nofile:
|
||||||
@ -53,7 +56,8 @@ services:
|
|||||||
image: mysql:8.0
|
image: mysql:8.0
|
||||||
container_name: ppanel-mysql
|
container_name: ppanel-mysql
|
||||||
restart: always
|
restart: always
|
||||||
# 不对外暴露端口,仅内网访问(容器名: mysql,端口: 3306)
|
ports:
|
||||||
|
- "127.0.0.1:3306:3306" # 仅宿主机可访问,ppanel-server(host网络)通过127.0.0.1连接
|
||||||
environment:
|
environment:
|
||||||
MYSQL_ROOT_PASSWORD: "${MYSQL_ROOT_PASSWORD:?请在 .env 文件中设置 MYSQL_ROOT_PASSWORD}"
|
MYSQL_ROOT_PASSWORD: "${MYSQL_ROOT_PASSWORD:?请在 .env 文件中设置 MYSQL_ROOT_PASSWORD}"
|
||||||
MYSQL_DATABASE: "ppanel"
|
MYSQL_DATABASE: "ppanel"
|
||||||
@ -93,7 +97,8 @@ services:
|
|||||||
image: redis:8.2.1
|
image: redis:8.2.1
|
||||||
container_name: ppanel-redis
|
container_name: ppanel-redis
|
||||||
restart: always
|
restart: always
|
||||||
# 不对外暴露端口,仅内网访问(容器名: redis,端口: 6379)
|
ports:
|
||||||
|
- "127.0.0.1:6379:6379" # 仅宿主机可访问,ppanel-server(host网络)通过127.0.0.1连接
|
||||||
command:
|
command:
|
||||||
- redis-server
|
- redis-server
|
||||||
- --tcp-backlog 65535
|
- --tcp-backlog 65535
|
||||||
@ -132,8 +137,8 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- ./tempo/tempo-config.yaml:/etc/tempo.yaml
|
- ./tempo/tempo-config.yaml:/etc/tempo.yaml
|
||||||
- ./tempo_data:/var/tempo
|
- ./tempo_data:/var/tempo
|
||||||
# 不对外暴露端口,仅内网访问(容器名: tempo)
|
ports:
|
||||||
# ppanel-server 通过容器名 tempo:4317 发送 trace
|
- "127.0.0.1:4317:4317" # OTLP gRPC,ppanel-server(host网络)通过127.0.0.1:4317发送trace
|
||||||
networks:
|
networks:
|
||||||
- ppanel_net
|
- ppanel_net
|
||||||
logging:
|
logging:
|
||||||
|
|||||||
@ -15,7 +15,7 @@ Logger: # 日志配置
|
|||||||
Level: debug # 日志级别: debug, info, warn, error, panic, fatal
|
Level: debug # 日志级别: debug, info, warn, error, panic, fatal
|
||||||
|
|
||||||
MySQL:
|
MySQL:
|
||||||
Addr: mysql:3306 # Docker 容器名; 本地开发改为 127.0.0.1:3306
|
Addr: 127.0.0.1:3306 # host 网络模式; bridge 模式改为 mysql:3306
|
||||||
Username: root # MySQL用户名
|
Username: root # MySQL用户名
|
||||||
Password: CHANGE_ME_MYSQL_PASSWORD # MySQL密码,与 .env MYSQL_ROOT_PASSWORD 一致
|
Password: CHANGE_ME_MYSQL_PASSWORD # MySQL密码,与 .env MYSQL_ROOT_PASSWORD 一致
|
||||||
Dbname: ppanel # MySQL数据库名
|
Dbname: ppanel # MySQL数据库名
|
||||||
@ -27,7 +27,7 @@ MySQL:
|
|||||||
SlowThreshold: 1000
|
SlowThreshold: 1000
|
||||||
|
|
||||||
Redis:
|
Redis:
|
||||||
Host: redis:6379 # Docker 容器名; 本地开发改为 127.0.0.1:6379
|
Host: 127.0.0.1:6379 # host 网络模式; bridge 模式改为 redis:6379
|
||||||
Pass: # Redis密码,如果没有设置密码可以留空
|
Pass: # Redis密码,如果没有设置密码可以留空
|
||||||
DB: 0 # Redis数据库编号,默认0
|
DB: 0 # Redis数据库编号,默认0
|
||||||
PoolSize: 100 # 连接池大小(最大连接数),根据应用并发量调整,建议:小流量50-100,中流量100-300,大流量300-500
|
PoolSize: 100 # 连接池大小(最大连接数),根据应用并发量调整,建议:小流量50-100,中流量100-300,大流量300-500
|
||||||
@ -59,7 +59,7 @@ Trace: # 链路追踪配置 (OpenTelemetry)
|
|||||||
Name: ppanel # 服务名
|
Name: ppanel # 服务名
|
||||||
Sampler: 1.0 # 采样率 0.0-1.0,生产建议 0.1
|
Sampler: 1.0 # 采样率 0.0-1.0,生产建议 0.1
|
||||||
Batcher: otlpgrpc # 本地开发留空""; 生产填 otlpgrpc
|
Batcher: otlpgrpc # 本地开发留空""; 生产填 otlpgrpc
|
||||||
Endpoint: "tempo:4317" # Docker 容器名; 本地开发留空""
|
Endpoint: "127.0.0.1:4317" # host 网络模式; bridge 模式改为 tempo:4317
|
||||||
|
|
||||||
Administrator:
|
Administrator:
|
||||||
Email: admin@ppanel.dev # 后台登录邮箱,请修改
|
Email: admin@ppanel.dev # 后台登录邮箱,请修改
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user