-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
80 lines (78 loc) · 2.95 KB
/
Copy pathdocker-compose.yml
File metadata and controls
80 lines (78 loc) · 2.95 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
services:
opencode:
image: ghcr.io/joostme/opencode-docker:latest
container_name: opencode
restart: unless-stopped
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
- OPENCODE_PORT=${OPENCODE_PORT:-4096}
- OPENCODE_SERVER_PASSWORD=${OPENCODE_SERVER_PASSWORD:?OPENCODE_SERVER_PASSWORD is required}
- OPENCODE_SERVER_USERNAME=${OPENCODE_SERVER_USERNAME:-opencode}
# code-server settings
- CODE_SERVER_PORT=${CODE_SERVER_PORT:-8080}
- CODE_SERVER_PASSWORD=${CODE_SERVER_PASSWORD:-}
# LLM provider API keys - uncomment as needed
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}
- OPENAI_API_KEY=${OPENAI_API_KEY:-}
- GEMINI_API_KEY=${GEMINI_API_KEY:-}
# - OPENCODE_API_KEY=${OPENCODE_API_KEY:-}
# GitHub CLI / API auth
- GITHUB_TOKEN=${GITHUB_TOKEN:-}
- GH_TOKEN=${GH_TOKEN:-}
volumes:
# Repos directory - your code lives here
- ./repos:/repos
# User share directory for OpenCode, code-server, and mise
- ./share:/home/opencode/.local/share
# Agent-compatible config and skills
- ./agents:/home/opencode/.agents
# User config directory for OpenCode, mise, and related tools
- ./config:/home/opencode/.config
# SSH keys for git access (mounted read-only, copied into .ssh at startup)
- ${SSH_KEY_PATH:-~/.ssh}:/home/opencode/.ssh-keys:ro
networks:
- backend
- proxy
labels:
- traefik.enable=true
# OpenCode web UI
- traefik.http.routers.opencode.rule=Host(`${OPENCODE_DOMAIN:-opencode.example.com}`)
- traefik.http.routers.opencode.entrypoints=websecure
- traefik.http.routers.opencode.tls=true
- traefik.http.routers.opencode.tls.certresolver=${CERT_RESOLVER:-letsencrypt}
- traefik.http.routers.opencode.service=opencode
- traefik.http.services.opencode.loadbalancer.server.port=${OPENCODE_PORT:-4096}
# code-server (VS Code)
- traefik.http.routers.code-server.rule=Host(`${CODE_SERVER_DOMAIN:-code.example.com}`)
- traefik.http.routers.code-server.entrypoints=websecure
- traefik.http.routers.code-server.tls=true
- traefik.http.routers.code-server.tls.certresolver=${CERT_RESOLVER:-letsencrypt}
- traefik.http.routers.code-server.service=code-server
- traefik.http.services.code-server.loadbalancer.server.port=${CODE_SERVER_PORT:-8080}
ports:
- "${OPENCODE_PORT:-4096}:${OPENCODE_PORT:-4096}"
- "${CODE_SERVER_PORT:-8080}:${CODE_SERVER_PORT:-8080}"
- "22:22"
playwright-mcp:
image: ${PLAYWRIGHT_MCP_IMAGE:-mcr.microsoft.com/playwright/mcp:latest}
container_name: playwright-mcp
restart: unless-stopped
command:
- /ms-playwright/mcp/cli.js
- --headless
- --browser
- chromium
- --no-sandbox
- --port
- "8931"
- --host
- 0.0.0.0
- --allowed-hosts
- "*"
networks:
- backend
networks:
backend:
proxy:
external: true