-
Notifications
You must be signed in to change notification settings - Fork 52
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
87 lines (82 loc) · 2.75 KB
/
docker-compose.yml
File metadata and controls
87 lines (82 loc) · 2.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
# ============================================
# OpenCode WebUI - Docker Compose
# ============================================
#
# 架构:
# gateway (Caddy) :6658 -> 统一入口(反代 + 端口路由)
# :6659 -> 独立预览端口(前端开发服务专用)
# frontend (Caddy) :3000 -> 静态文件 (GitHub Actions 预构建镜像)
# backend (opencode):4096 -> opencode serve (GitHub Actions 预构建镜像)
#
# 使用方法:
# cp .env.example .env # 填写 API Key
# docker compose up -d # 启动
#
# 本地构建全部服务 (可选):
# docker compose -f docker-compose.yml -f docker-compose.build.yml up -d --build
services:
# ---- 统一入口:网关 ----
gateway:
image: ghcr.io/lehhair/opencodeui-gateway:latest
container_name: opencode-gateway
restart: unless-stopped
ports:
- '127.0.0.1:${GATEWAY_PORT:-6658}:6658'
- '127.0.0.1:${PREVIEW_PORT:-6659}:6659'
volumes:
- opencode-router-data:/data
- /var/run/docker.sock:/var/run/docker.sock:ro
depends_on:
- frontend
- backend
environment:
- TARGET_CONTAINER=opencode-backend
- ROUTER_STATE_FILE=/data/routes.json
- ROUTER_SCAN_INTERVAL=${ROUTER_SCAN_INTERVAL:-5}
- ROUTER_TOKEN_LENGTH=${ROUTER_TOKEN_LENGTH:-12}
- ROUTER_PORT_RANGE=${ROUTER_PORT_RANGE:-3000-9999}
- ROUTER_EXCLUDE_PORTS=${ROUTER_EXCLUDE_PORTS:-4096}
- PUBLIC_BASE_URL=${PUBLIC_BASE_URL:-}
- PREVIEW_DOMAIN=${PREVIEW_DOMAIN:-}
- ROUTER_USERNAME=${OPENCODE_SERVER_USERNAME:-opencode}
- ROUTER_PASSWORD=${OPENCODE_SERVER_PASSWORD:-}
networks:
- opencode-net
# ---- 前端:预构建镜像 ----
frontend:
image: ghcr.io/lehhair/opencodeui-frontend:latest
container_name: opencode-frontend
restart: unless-stopped
networks:
- opencode-net
# ---- 后端:预构建镜像 ----
backend:
image: ghcr.io/lehhair/opencodeui-backend:latest
container_name: opencode-backend
restart: unless-stopped
deploy:
resources:
limits:
memory: 4G
volumes:
- ${WORKSPACE:-./workspace}:/workspace
- opencode-home:/root
working_dir: /workspace
environment:
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}
- OPENAI_API_KEY=${OPENAI_API_KEY:-}
- GEMINI_API_KEY=${GEMINI_API_KEY:-}
- DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY:-}
- GROQ_API_KEY=${GROQ_API_KEY:-}
- MISTRAL_API_KEY=${MISTRAL_API_KEY:-}
- XAI_API_KEY=${XAI_API_KEY:-}
- OPENCODE_SERVER_PASSWORD=${OPENCODE_SERVER_PASSWORD:-}
- OPENCODE_SERVER_USERNAME=${OPENCODE_SERVER_USERNAME:-opencode}
networks:
- opencode-net
volumes:
opencode-home:
opencode-router-data:
networks:
opencode-net:
name: opencode-net