-
Notifications
You must be signed in to change notification settings - Fork 706
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
86 lines (83 loc) · 2.61 KB
/
docker-compose.yml
File metadata and controls
86 lines (83 loc) · 2.61 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
# Base docker-compose — shared service definition.
# Pre-built images: ghcr.io/nextlevelbuilder/goclaw (also on Docker Hub: digitop/goclaw)
#
# The default `latest` image includes an embedded web dashboard (no separate nginx needed).
# Web UI is served at the same port as the API (default: 18790).
#
# Quick start:
# docker compose -f docker-compose.yml -f docker-compose.postgres.yml up -d
# # Dashboard: http://localhost:18790
#
# Optional nginx (for custom SSL, reverse proxy, caching):
# make up WITH_WEB_NGINX=1
# # or: docker compose -f docker-compose.yml -f docker-compose.postgres.yml -f docker-compose.selfservice.yml up -d
# # Dashboard via nginx: http://localhost:3000
#
# Docker image variants:
# latest — Backend + embedded web UI + Python (recommended)
# latest-base — Backend API-only, no web UI, no runtimes
# latest-full — All runtimes + skill dependencies pre-installed
# latest-otel — Latest + OpenTelemetry tracing
#
# With OTel tracing: add -f docker-compose.otel.yml
# With Claude CLI: add -f docker-compose.claude-cli.yml
services:
goclaw:
image: ghcr.io/nextlevelbuilder/goclaw:latest
build:
context: ${GOCLAW_DIR:-.}
dockerfile: Dockerfile
args:
ENABLE_OTEL: "${ENABLE_OTEL:-false}"
ENABLE_EMBEDUI: "${ENABLE_EMBEDUI:-true}" # set to false when using WITH_WEB_NGINX
ENABLE_PYTHON: "${ENABLE_PYTHON:-true}"
ENABLE_FULL_SKILLS: "${ENABLE_FULL_SKILLS:-false}"
VERSION: "${GOCLAW_VERSION:-dev}"
# Uncomment to test update UI: GOCLAW_VERSION=v1.0.0
ports:
- "${GOCLAW_PORT:-18790}:18790"
env_file:
- path: .env
required: false
environment:
- GOCLAW_HOST=0.0.0.0
- GOCLAW_PORT=18790
- GOCLAW_CONFIG=/app/data/config.json
- GOCLAW_GATEWAY_TOKEN=${GOCLAW_GATEWAY_TOKEN:-}
- GOCLAW_ENCRYPTION_KEY=${GOCLAW_ENCRYPTION_KEY:-}
- GOCLAW_SKILLS_DIR=/app/data/skills
# Debug
- GOCLAW_TRACE_VERBOSE=${GOCLAW_TRACE_VERBOSE:-0}
volumes:
- goclaw-data:/app/data
- goclaw-workspace:/app/workspace
extra_hosts:
- "host.docker.internal:host-gateway"
security_opt:
- no-new-privileges:true
init: true
cap_drop:
- ALL
cap_add:
- SETUID
- SETGID
- CHOWN
tmpfs:
- /tmp:rw,noexec,nosuid,size=256m
deploy:
resources:
limits:
memory: 1G
cpus: '2.0'
pids: 200
networks:
- default
- goclaw-net
restart: unless-stopped
volumes:
goclaw-data:
goclaw-workspace:
networks:
goclaw-net:
name: goclaw-net
driver: bridge