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
# Development Environment for VelaClaw Agentic Testing
#
# Use this for:
# - Running the agent in a sandboxed environment
# - Testing dangerous commands safely
# - Developing new skills/integrations
#
# Usage:
# cd dev && ./cli.sh up
# or from root: ./dev/cli.sh up
name: velaclaw-dev
services:
# ── The Agent (Development Image) ──
# Builds from source using the 'dev' stage of the root Dockerfile
velaclaw-dev:
build:
context: ..
dockerfile: Dockerfile
target: dev
container_name: velaclaw-dev
restart: unless-stopped
environment:
- VELACLAW_GATEWAY_PORT=3000
- SANDBOX_HOST=velaclaw-sandbox
secrets:
- source: velaclaw_env
target: velaclaw_env
entrypoint:
command:
- |
if [ -f /run/secrets/velaclaw_env ]; then
set -a
. /run/secrets/velaclaw_env
set +a
fi
exec velaclaw gateway --port "${VELACLAW_GATEWAY_PORT:-3000}" --host "[::]"
volumes:
# Mount single config file (avoids shadowing other files in .velaclaw)
- ../target/.velaclaw/config.toml:/velaclaw-data/.velaclaw/config.toml
# Mount shared workspace
- ../playground:/velaclaw-data/workspace
ports:
- "127.0.0.1:3000:3000"
networks:
- dev-net
# ── The Sandbox (Ubuntu Environment) ──
# A fully loaded Ubuntu environment for the agent to play in.
sandbox:
build:
context: sandbox # Context relative to dev/
dockerfile: Dockerfile
container_name: velaclaw-sandbox
hostname: dev-box
command:
working_dir: /home/developer/workspace
user: developer
environment:
- TERM=xterm-256color
- SHELL=/bin/bash
volumes:
- ../playground:/home/developer/workspace # Mount local playground
networks:
- dev-net
networks:
dev-net:
driver: bridge
secrets:
velaclaw_env:
file: ../.env