The Problem

Teams building AI chatbots with OpenClaw face operational complexity when managing containerized instances manually. Without a centralized interface, deploying, monitoring, and scaling bots across Docker containers requires custom scripting and manual docker compose workflows, creating friction in development and production cycles.

What This Does

BotMaker is a full-stack web application for creating and managing containerized OpenClaw AI chatbots. The backend (src/) is a Fastify server with TypeScript, using SQLite for bot metadata storage and Dockerode for container orchestration (src/services/DockerService.ts). The frontend (dashboard/) is a React SPA built with Vite, containing 145 files across components, config, and wizard pages. Channel configuration lives in dashboard/src/config/channels/ with individual files for each platform (telegram.ts, discord.ts, slack.ts, etc.), while AI provider setups are in dashboard/src/config/providers/ (openai.ts, anthropic.ts, google.ts, venice.ts). A secrets manager (src/secrets/manager.ts) provides per-bot credential isolation, and the project includes Dockerfile and docker-compose.yml for containerized deployment.

How To Use It

Setup: Install dependencies from the root and dashboard:

npm install cd dashboard && npm install && cd ..

The root package.json and dashboard/package.json both exist, confirming npm as the package manager. Build the entire project with npm run build:all and start the server via npm start. For development, run npm run dev to start the backend with hot reload, then separately cd dashboard && npm run dev to start the React dashboard.

Configuration: Required environment variables are documented in README.md and include PORT (default 7100), HOST (0.0.0.0), DATADIR (./data), SECRETSDIR (./secrets), OPENCLAWIMAGE (openclaw:latest), OPENCLAWGITTAG (main), and BOTPORT_START (19000). The Dockerfile and docker-compose.yml handle containerized builds and orchestration.

Running it: Start the backend and dashboard as described above, or use Docker Compose: docker compose up -d builds and runs the stack, docker compose logs -f follows logs, and docker compose down stops services.

Real-World Use

A development team integrating OpenClaw bots can use BotMaker's creation wizard (dashboard/src/wizard/CreateWizard.tsx) to configure a bot with a selected AI provider and channel, then deploy it to an isolated Docker container. Monitoring is available through the dashboard's diagnostics tab (dashboard/src/diagnostics/DiagnosticsTab.tsx), which displays container metrics and health status. Orphaned resources can be previewed and cleaned via the admin endpoints (GET /api/admin/orphans, POST /api/admin/cleanup) or the cleanup script (scripts/test-docker.ts).

Code Health & Issues

SDLC: No CI/CD pipeline detected — no automated build/test gate in .github/ or equivalent config, meaning changes require manual verification. Testing: 6 test files exist in the dashboard (dashboard/src/wizard/components/CollapsibleSection.test.tsx, dashboard/src/wizard/components/TemplateCard.test.tsx, dashboard/src/wizard/context/WizardContext.test.tsx, and 3 others), but no backend unit tests are apparent in src/. Configuration in repo: Environment variable defaults and structure are documented in README.md, but no .env example or template is committed, which can lead to misconfiguration in new deployments. Secrets handling: The per-bot secrets manager (src/secrets/manager.ts) files are in the repo root; ensure these are gitignored to avoid credential leakage. Dependency hygiene: Lock files exist (dashboard/package-lock.json, package-lock.json), but no automated dependency audit step is configured.

The Bottom Line

BotMaker provides a practical UI for managing OpenClaw bots in Docker, with solid channel and provider abstractions and a functional creation wizard. The absence of CI/CD and missing secrets guarding are the most significant gaps for any team considering production use. It is well-suited for solo developers or small teams needing rapid bot deployment without building custom dashboard tooling, but requires manual process discipline to operate safely at scale.