Skip to content

NanoFlow-io/clawdboss-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•—      β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—    β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
  β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘    β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β•β•β•
  β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β–ˆβ•— β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
  β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β•šβ•β•β•β•β–ˆβ–ˆβ•‘β•šβ•β•β•β•β–ˆβ–ˆβ•‘
  β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ•”β–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘
   β•šβ•β•β•β•β•β•β•šβ•β•β•β•β•β•β•β•šβ•β•  β•šβ•β• β•šβ•β•β•β•šβ•β•β• β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β•  β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β•β•β•šβ•β•β•β•β•β•β•

🦞 Clawdboss Docker

Run a hardened, multi-agent OpenClaw setup in a container. Zero host dependencies.

This is Clawdboss packaged as a Docker image. Same security-first multi-agent setup, same interactive wizard β€” just docker compose up instead of SSH-ing into a VPS.

Requirements

  • Docker 20.10+
  • Docker Compose v2+
  • An LLM provider API key (Copilot, OpenAI, or Anthropic)
  • A Discord bot token, Telegram bot token, or both

Quick Start

1. Clone and configure

git clone https://github.com/NanoFlow-io/clawdboss-docker.git
cd clawdboss-docker
cp .env.example .env

Edit .env with your API keys and bot tokens.

2. Run the setup wizard

docker compose run --rm clawdboss

This launches the interactive Clawdboss setup wizard inside the container. It will walk you through:

  • Your identity and preferences
  • Agent name, personality, and mission
  • LLM provider selection
  • Discord/Telegram configuration
  • Optional tools (Graphthulhu, ApiTap, Scrapling, OCTAVE, and more)
  • OpenClaw skills setup

Your configuration is persisted in a Docker volume, so it survives container recreation.

3. Start the gateway

Once setup is complete, start the gateway as a background service:

docker compose up -d

That's it. Your agent is running.

Interface Options

Interface Token Needed How It Works
Discord only DISCORD_BOT_TOKEN Bot joins your server, responds in channels
Telegram only TELEGRAM_BOT_TOKEN Chat with your bot via DM or groups
Both Both tokens Same agent, two interfaces simultaneously
Console only Neither Interactive terminal session inside container

How It Works

The container runs three phases:

  1. Build β€” Installs Node.js 22, Python, system tools, OpenClaw, and clones Clawdboss
  2. Setup (first run) β€” Interactive wizard creates your config, agents, and workspace
  3. Run (subsequent starts) β€” Starts the OpenClaw gateway on port 18789

All state lives in the openclaw-config Docker volume mounted at /home/openclaw/.openclaw.

Configuration

Environment Variables

Copy .env.example to .env and fill in your values:

# LLM Provider (pick at least one)
COPILOT_API_KEY=
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...

# Interface (pick at least one)
DISCORD_BOT_TOKEN=
TELEGRAM_BOT_TOKEN=

# Gateway
GATEWAY_AUTH_TOKEN=

# Optional
BRAVE_API_KEY=
ELEVENLABS_API_KEY=

Container Mode

Control the entrypoint behavior with CLAWDBOSS_MODE:

Mode Behavior
auto (default) Run setup if no config exists, otherwise start gateway
setup Always launch the setup wizard
run Always start the gateway (fails if no config)

Persistence

The Docker volume clawdboss-openclaw-config stores:

  • openclaw.json β€” Main configuration
  • .env β€” API keys and secrets (inside the container)
  • Agent workspaces and memory files
  • Gateway state and logs

Your configuration survives docker compose down and docker compose up cycles. To start completely fresh, remove the volume:

docker volume rm clawdboss-openclaw-config

Common Operations

Re-run the setup wizard

# Option 1: Force setup mode
CLAWDBOSS_MODE=setup docker compose run --rm clawdboss

# Option 2: Remove config and restart
docker compose exec clawdboss rm ~/.openclaw/openclaw.json
docker compose restart clawdboss

Update to the latest version

# Pull latest Clawdboss and OpenClaw
docker compose build --no-cache
docker compose up -d

View gateway logs

docker compose logs -f clawdboss

Open a shell inside the container

docker compose exec clawdboss bash

Use the console interface

docker compose run --rm clawdboss openclaw console

Optional: ClawSuite Web Console

Uncomment the clawsuite service in docker-compose.yml to enable the browser-based management UI:

clawsuite:
  image: ghcr.io/nanoflow-io/clawsuite:latest
  container_name: clawsuite
  restart: unless-stopped
  ports:
    - "3000:3000"
  environment:
    - GATEWAY_URL=http://clawdboss:18789
    - GATEWAY_AUTH_TOKEN=${GATEWAY_AUTH_TOKEN:-}
  depends_on:
    - clawdboss

Then access it at http://localhost:3000.

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Docker Container                           β”‚
β”‚                                             β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚  OpenClaw    β”‚  β”‚  Clawdboss Config    β”‚  β”‚
β”‚  β”‚  Gateway     β”‚  β”‚  (/opt/clawdboss)    β”‚  β”‚
β”‚  β”‚  :18789      β”‚  β”‚                      β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚         β”‚                                    β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚  ~/.openclaw (Docker Volume)          β”‚   β”‚
β”‚  β”‚  β”œβ”€β”€ openclaw.json                    β”‚   β”‚
β”‚  β”‚  β”œβ”€β”€ .env                             β”‚   β”‚
β”‚  β”‚  β”œβ”€β”€ workspace/                       β”‚   β”‚
β”‚  β”‚  └── agents/                          β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                   β”‚
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚                   β”‚
    Discord API       Telegram API

Troubleshooting

Setup wizard doesn't appear: Make sure you're using docker compose run (not up) for first-time setup, so stdin is attached.

Gateway won't start: Check that openclaw.json exists in the volume: docker compose exec clawdboss ls ~/.openclaw/openclaw.json

Permission errors: The container runs as user openclaw (uid 1000). If mounting host directories, ensure they're owned by uid 1000.

Port already in use: Change the host port mapping in docker-compose.yml: "8080:18789" instead of "18789:18789".

Links

  • Clawdboss β€” The main setup wizard (non-Docker)
  • OpenClaw β€” The AI agent platform
  • NanoFlow β€” More tools and extensions

License

MIT β€” see LICENSE

About

🦞 Dockerized Clawdboss β€” run a hardened, multi-agent OpenClaw setup in a container. Zero host dependencies.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors