Files
composes/goclaw/compose.yml
T

63 lines
1.8 KiB
YAML

# Required env vars (set in Coolify/Dokploy, or a sibling .env):
# GOCLAW_GATEWAY_TOKEN, GOCLAW_ENCRYPTION_KEY
services:
goclaw:
image: ghcr.io/nextlevelbuilder/goclaw:full
restart: unless-stopped
environment:
- GOCLAW_GATEWAY_TOKEN=${GOCLAW_GATEWAY_TOKEN:?required}
- GOCLAW_ENCRYPTION_KEY=${GOCLAW_ENCRYPTION_KEY:?required}
- GOCLAW_POSTGRES_DSN=postgres://${POSTGRES_USER:-goclaw}:${POSTGRES_PASSWORD:-goclaw}@postgres:5432/${POSTGRES_DB:-goclaw}?sslmode=disable
- GOCLAW_HOST=0.0.0.0
- GOCLAW_PORT=18790
- GOCLAW_CONFIG=/app/data/config.json
- GOCLAW_SKILLS_DIR=/app/data/skills
- GOCLAW_TRACE_VERBOSE=${GOCLAW_TRACE_VERBOSE:-0}
volumes:
- goclaw-data:/app/data
- goclaw-workspace:/app/workspace
depends_on:
postgres:
condition: service_healthy
extra_hosts:
- host.docker.internal:host-gateway
init: true
security_opt:
- no-new-privileges: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
# PostgreSQL 18 with pgvector, for agent memory and the knowledge vault.
postgres:
image: pgvector/pgvector:pg18
restart: unless-stopped
environment:
POSTGRES_USER: ${POSTGRES_USER:-goclaw}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-goclaw}
POSTGRES_DB: ${POSTGRES_DB:-goclaw}
volumes:
- postgres-data:/var/lib/postgresql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-goclaw} -d ${POSTGRES_DB:-goclaw}"]
interval: 5s
timeout: 5s
retries: 10
volumes:
goclaw-data:
goclaw-workspace:
postgres-data: