Repository navigation
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
74 lines (65 loc) · 3.1 KB
/
Copy pathdocker-compose.yml
File metadata and controls
74 lines (65 loc) · 3.1 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
# 部署结构由仓库维护;服务器参数填写在同目录 .env,中文说明见 .env.example。
# 首次部署:复制 .env.example 为 .env,填写必填项,再执行 docker compose up -d。
# 日常更新保留 .env 和 docker-data,只更新应用镜像。
services:
backend:
image: ghcr.io/marmieqi/player-backend:${IMAGE_TAG:-latest}
container_name: player-stats-backend
restart: always
environment:
TZ: Asia/Shanghai
SERVER_PORT: 8080
PLAYER_DATABASE_PATH: /data/database/player.db
APP_ADMIN_USERNAME: ${APP_ADMIN_USERNAME:-admin}
# 建议修改:后台管理员初始密码。账号已创建后,改这里不会覆盖旧密码。
APP_ADMIN_PASSWORD: ${APP_ADMIN_PASSWORD:?请在 .env 中填写 APP_ADMIN_PASSWORD}
# 建议修改:登录 token 签名密钥,换成一段随机长字符串。
APP_ADMIN_JWT_SECRET: ${APP_ADMIN_JWT_SECRET:?请在 .env 中填写 APP_ADMIN_JWT_SECRET}
APP_ADMIN_TOKEN_TTL_DAYS: ${APP_ADMIN_TOKEN_TTL_DAYS:-7}
PLAYER_LOGS_ZONE_ID: Asia/Shanghai
PLAYER_LOGS_ARCHIVE_DIRECTORY: /data/synced-logs
PLAYER_LOGS_MAIN_DIRECTORY: ${PLAYER_LOGS_MAIN_DIRECTORY:-/data/synced-logs/main}
PLAYER_LOGS_MAIN_FILE_GLOB: ${PLAYER_LOGS_MAIN_FILE_GLOB:-player_actions_*.csv}
PLAYER_LOGS_MAIN_ENABLED: ${PLAYER_LOGS_MAIN_ENABLED:-true}
PLAYER_LOGS_SUB_DIRECTORY: ${PLAYER_LOGS_SUB_DIRECTORY:-/data/synced-logs/sub}
PLAYER_LOGS_SUB_FILE_GLOB: ${PLAYER_LOGS_SUB_FILE_GLOB:-player_actions_*.csv}
PLAYER_LOGS_SUB_ENABLED: ${PLAYER_LOGS_SUB_ENABLED:-true}
# 矿透分析过程文件。任务完成后自动清理,避免长时间分析占满容器内存。
PLAYER_LOGS_XRAY_TEMP_DIRECTORY: /data/temp/xray
# 当天日志只读查询快照。不会进入正式归档,默认复用 120 秒并自动清理。
PLAYER_LOGS_LIVE_TEMP_DIRECTORY: ${PLAYER_LOGS_LIVE_TEMP_DIRECTORY:-/data/temp/live-log-query}
APP_CORS_ALLOWED_ORIGINS: ${APP_CORS_ALLOWED_ORIGINS:-http://localhost:5173}
APP_CORS_ALLOWED_ORIGIN_PATTERNS: ${APP_CORS_ALLOWED_ORIGIN_PATTERNS:-http://localhost:*,http://127.0.0.1:*,http://10.*:*,http://172.*:*,http://192.168.*:*}
volumes:
- type: bind
source: ${DATA_DIRECTORY:-./docker-data}/database
target: /data/database
bind:
create_host_path: true
- type: bind
source: ${DATA_DIRECTORY:-./docker-data}/synced-logs
target: /data/synced-logs
bind:
create_host_path: true
- type: bind
source: ${DATA_DIRECTORY:-./docker-data}/temp
target: /data/temp
bind:
create_host_path: true
healthcheck:
test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://127.0.0.1:8080/api/health"]
interval: 10s
timeout: 5s
retries: 6
expose:
- "8080"
frontend:
image: ghcr.io/marmieqi/player-frontend:${IMAGE_TAG:-latest}
container_name: player-stats-frontend
restart: always
depends_on:
backend:
condition: service_healthy
ports:
- "${PUBLIC_PORT:-9493}:80"
- "${ADMIN_PORT:-8843}:8081"