Deployment
ZeptoClaw can be deployed anywhere a Linux binary can run. Choose the method that fits your infrastructure.
One-click deploy
Section titled “One-click deploy”Any VPS
Section titled “Any VPS”The fastest way to deploy ZeptoClaw is using the automated setup script:
curl -fsSL https://zeptoclaw.com/setup.sh | bashThis interactive wizard will:
- Download the latest ZeptoClaw binary
- Guide you through configuring your LLM provider (Anthropic or OpenAI)
- Set up your messaging channel (Telegram, Slack, Discord, or Webhook)
- Install and start a systemd service
Docker deployment:
curl -fsSL https://zeptoclaw.com/setup.sh | bash -s -- --dockerUninstall:
curl -fsSL https://zeptoclaw.com/setup.sh | bash -s -- --uninstallDocker (single container)
Section titled “Docker (single container)”The simplest production deployment:
FROM ghcr.io/qhkm/zeptoclaw:latest
COPY config.json /root/.zeptoclaw/config.json
EXPOSE 8080CMD ["zeptoclaw", "gateway"]docker build -t my-agent .docker run -d --name zeptoclaw \ -e ZEPTOCLAW_PROVIDERS_ANTHROPIC_API_KEY=sk-ant-... \ -e ZEPTOCLAW_CHANNELS_TELEGRAM_BOT_TOKEN=123456:ABC... \ my-agentDocker Compose
Section titled “Docker Compose”For multi-service setups:
version: '3.8'services: zeptoclaw: image: ghcr.io/qhkm/zeptoclaw:latest restart: unless-stopped environment: - ZEPTOCLAW_PROVIDERS_ANTHROPIC_API_KEY=${ANTHROPIC_KEY} - ZEPTOCLAW_CHANNELS_TELEGRAM_BOT_TOKEN=${TELEGRAM_TOKEN} volumes: - zeptoclaw-data:/root/.zeptoclaw healthcheck: test: ["CMD", "zeptoclaw", "config", "check"] interval: 30s retries: 3
volumes: zeptoclaw-data:Fly.io
Section titled “Fly.io”Deploy to Fly.io with a single command:
app = "my-zeptoclaw"primary_region = "sin"
[build] image = "ghcr.io/qhkm/zeptoclaw:latest"
[env] RUST_LOG = "info"
[[services]] internal_port = 8080 protocol = "tcp"
[[services.ports]] port = 443 handlers = ["tls", "http"]fly launchfly secrets set ZEPTOCLAW_PROVIDERS_ANTHROPIC_API_KEY=sk-ant-...fly secrets set ZEPTOCLAW_CHANNELS_TELEGRAM_BOT_TOKEN=123456:ABC...fly deployRailway
Section titled “Railway”Deploy via Railway CLI:
railway initrailway up
# Set secretsrailway variables set ZEPTOCLAW_PROVIDERS_ANTHROPIC_API_KEY=sk-ant-...railway variables set ZEPTOCLAW_CHANNELS_TELEGRAM_BOT_TOKEN=123456:ABC...Render
Section titled “Render”Use the Render dashboard or render.yaml:
services: - type: worker name: zeptoclaw runtime: docker dockerfilePath: ./Dockerfile envVars: - key: ZEPTOCLAW_PROVIDERS_ANTHROPIC_API_KEY sync: false - key: ZEPTOCLAW_CHANNELS_TELEGRAM_BOT_TOKEN sync: falseSystemd (bare metal)
Section titled “Systemd (bare metal)”For direct deployment on a Linux server:
[Unit]Description=ZeptoClaw AI AgentAfter=network-online.target
[Service]Type=simpleUser=zeptoclawExecStart=/usr/local/bin/zeptoclaw gatewayRestart=alwaysRestartSec=5Environment=RUST_LOG=infoEnvironmentFile=/etc/zeptoclaw/env
[Install]WantedBy=multi-user.targetsudo systemctl enable zeptoclawsudo systemctl start zeptoclawHealth checks
Section titled “Health checks”ZeptoClaw’s config check command can be used as a health check:
zeptoclaw config checkReturns exit code 0 if configuration is valid.
Persistent data
Section titled “Persistent data”Important directories to persist across restarts:
| Path | Contents |
|---|---|
~/.zeptoclaw/config.json | Configuration |
~/.zeptoclaw/memory/ | Long-term memory |
~/.zeptoclaw/sessions/ | Conversation history |
~/.zeptoclaw/skills/ | Custom skills |
~/.zeptoclaw/plugins/ | Custom plugins |
Mount ~/.zeptoclaw as a volume in Docker deployments.
Resource requirements
Section titled “Resource requirements”ZeptoClaw is very lightweight:
| Resource | Requirement |
|---|---|
| CPU | Any modern CPU (ARM64 or x86_64) |
| RAM | ~6MB RSS at idle |
| Disk | ~4MB binary + data |
| Network | Outbound HTTPS to LLM provider APIs |