
I wasn't planning to Dockerize anything last week. I just wanted my little helper bot to stop breaking when I closed my laptop. Clawdbot had been running in a terminal tab like a houseplant that keeps wilting, fine when I watched it, droopy when I didn't. So I tried a simple "Clawdbot Docker" setup. Not because I love containers (I don't), but because I wanted one less thing to babysit.

If you’re still running Clawdbot locally or from source, this earlier guide covers the basic setup and day-to-day usage before things get containerized. How to use Clawdbot
This is what I did, what worked, and the small frictions I noticed. I tested this on macOS (Apple Silicon) in January 2026 and ran it again on a low-power Linux mini PC over the weekend. If you're hoping for a productivity empire, this isn't that. It's just a calm way to keep a tiny bot running without thinking about it too much.
It hasn't asked for attention in I didn't overthink the pre-work, but a few small checks spared me the usual rabbit hole.

None of this is glamorous. But I've learned that a 2‑minute environment check often saves 20 minutes of "why won't it start?" later.
I started with a goal: run Clawdbot under Docker so it survives reboots and isn't tied to whichever device I'm currently using. Compose made that feel less like a chore and more like a small, tidy box for the bot.
Here's the rough shape of the compose file I used. Yours may look different depending on how Clawdbot is packaged, but the pattern holds steady:
aivolumes: &aivolumes
- clawdbot_data:/app/data
- ./config:/app/config:ro
services:
clawdbot:
image: clawdbot/clawdbot:latest # if there's no official image, build from a Dockerfile
cotainer_name: clawdbot
restart: unless-stopped
environment:
- BOT_MODE=assistant
- TZ=America/New_York
# Secrets go in an .env file, not here
- API_KEY=${API_KEY}
ports:
- "127.0.0.1:8087:8080" # bind to localhost only
volumes: *aivolumes
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health" ]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s
volumes:
clawdbot_data:
A few notes from actually running this:
If you don't have an image, building from a Dockerfile is fine. I did a quick version using a small Python base image and copied the bot's code in. It added two minutes to the setup, then ran cleanly.
Ports: I bound the service to localhost (127.0.0.1) on my Mac. That way nothing is exposed on the network unless I decide to. On the Linux mini PC, I changed it to 0.0.0.0:8087:8080 because I wanted to use the web panel from my laptop. Small risk, small convenience. If you do that, put a reverse proxy in front with auth.
Volumes: I only mounted two things, data and config. Data lets Clawdbot remember things between restarts (logs, small caches, preferences). Config is where I keep prompts, small rules, and any schedules. I tried using ephemeral storage once. The bot felt oddly amnesic after every restart. Not charming.
After writing the file, it was the usual:
docker compose pull
docker compose up -d
The first run took about a minute. Then it stayed up. I stopped checking it every few hours, which was the whole point.

I'm not running a bank here, but the "Clawdbot Docker" setup still touches my personal notes and small routines. I'd rather it not shout across the network.
None of this is heroic. It's just enough friction to protect me from my future self, who inevitably forgets which ports were open.
I don't like chasing updates, but I don't like stale software more. My compromise is boring and reliable:
I had one minor hiccup: a mid-January image changed a small config path. The healthcheck caught the failure and kept restarting. I pinned the older tag, restored the config, and moved on. Mild annoyance, no real drama.
A few things tripped me up, mostly predictable, occasionally silly:
None of these were unique to "Clawdbot Docker," which is part of the comfort: the fixes are familiar, and the bot doesn't demand special treatment.
A small note on expectations: if your version of Clawdbot needs GPUs or heavy local models, Docker becomes more opinionated. On my setups, I kept it lightweight, mostly text, small jobs, low memory. Your mileage may vary.
I'll keep this running for now. It hasn't asked for attention in days, which is a compliment in my world. The next time I forget to check on it, I'm curious whether it'll still be quietly doing its thing, or reminding me it exists at exactly the wrong moment.

Our Macaron focus on helping you centralize personal tasks, reminders, and AI-generated mini-tools in one place — designed to reduce the ongoing mental load of managing scattered helpers or ad-hoc scripts. If what you care about is the calm outcome, not the infrastructure or manual upkeep, you can explore Macaron here!