Repository navigation
Expand file tree
/
Copy pathcompose.yml
More file actions
48 lines (46 loc) · 2.15 KB
/
Copy pathcompose.yml
File metadata and controls
48 lines (46 loc) · 2.15 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
# WarpDeck release compose(P11-004)。
# 宿主机端口映射只在这里管理(AGENTS.md:Web UI/API 不修改 host publish)。
# 数据面要求(warp-svc 建 tun):--device /dev/net/tun + NET_ADMIN,容器内必须 root
# (P11-003 审计结论,镜像内无 sudo/提权机制)。
# 镜像由 `cargo xtask release` 构建(tag 默认 warpdeck:local,E2E 用 warpdeck:e2e):
# WARPDECK_IMAGE=warpdeck:e2e docker compose -p warpdeck-e2e up -d
# 或直接: docker compose up -d
services:
warpdeck:
image: ${WARPDECK_IMAGE:-warpdeck:local}
restart: unless-stopped
ports:
# §20.5: 默认只绑定宿主机 loopback(127.0.0.1),公网暴露须在 .env 显式设置:
# WEB_HOST_BIND=0.0.0.0(或删除该变量并填 .env: WEB_HOST_BIND=)
- "${WEB_HOST_BIND:-127.0.0.1}:${WEB_HOST_PORT:-9000}:9000"
- "${SOCKS5_HOST_BIND:-127.0.0.1}:${SOCKS5_HOST_PORT:-11080}:11080"
- "${HTTP_HOST_BIND:-127.0.0.1}:${HTTP_HOST_PORT:-18080}:18080"
devices:
- /dev/net/tun:/dev/net/tun
cap_add:
- NET_ADMIN
environment:
WARPDECK_DATA_DIR: /var/lib/warpdeck
WARPDECK_RUNTIME_DIR: /run/warpdeck
WARPDECK_UI_DIR: /app/ui
# 留空则首次启动自动生成 /var/lib/warpdeck/master.key(0600)。
WARPDECK_MASTER_KEY: ${WARPDECK_MASTER_KEY:-}
WARPDECK_LOG: ${WARPDECK_LOG:-info}
# 测试钩子直通(P13-004 / E2E-06):置 1 时网关武装 SIGUSR1 故障注入;
# 生产保持为空(默认),无任何行为差异。
WARPDECK_GATEWAY_TEST_HOOKS: ${WARPDECK_GATEWAY_TEST_HOOKS:-}
volumes:
- warpdeck-data:/var/lib/warpdeck
# /run/warpdeck 是运行时目录(D-Bus socket、PID、临时凭据窗口)——
# P1 审查 R2#6:必须 tmpfs,不得跨容器重建持久化(旧 named volume 会残留
# socket/PID 文件)。仅 /var/lib/warpdeck 需要真实持久化。
tmpfs:
- /run/warpdeck:size=64m,mode=0700
healthcheck:
test: ["CMD", "curl", "-fsS", "http://127.0.0.1:9000/api/v1/health"]
interval: 15s
timeout: 5s
start_period: 10s
retries: 5
volumes:
warpdeck-data: