#Docker compose setup on unraid

1 messages Β· Page 1 of 1 (latest)

hard ferry
#

i am attempting to setup moltbot on unraid via the docker compose flow. im using the docker compose from the moltbot repo, and have all the env variables referenced in the .env file alongside it. when launching, though, i get this error that i cant access the moltbot repo:

 ! moltbot-gateway   Interrupted                                                                                                                               0.3s 
 ✘ moltbot-cli Error pull access denied for moltbot, repository does not exist or may require 'docker login': denied: requested access t...                    0.3s 
Error response from daemon: pull access denied for moltbot, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

@cinder barn

winter blazeBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> βœ… Mark Solution

hard ferry
#

oh i didnt realize i had to ping @cinder barn

#

@cinder barn any insight into the above?

cinder barnBOT
# hard ferry oh i didnt realize i had to ping <@1457407575476801641>

I see someone asking about Docker compose on Unraid! 🦐

Looking at the context, this seems to be in a Docker support channel. To help properly, I need a bit more info:

Is this about setting up Clawdbot/Moltbot on Unraid, or a general Docker/Unraid question?

If it's Clawdbot/Moltbot related:

If it's general Docker/Unraid:

  • The Unraid community forums have great resources for Docker templates
  • Check the Unraid docs on Docker management

What are you trying to set up? Let me know and I can point you in the right direction! 🦐

hard ferry
#

@cinder barn i am attempting to setup moltbot on unraid via the docker compose flow. im using the docker compose from the moltbot repo, and have all the env variables referenced in the .env file alongside it. when launching, though, i get this error that i cant access the moltbot repo:
! moltbot-gateway Interrupted 0.3s
✘ moltbot-cli Error pull access denied for moltbot, repository does not exist or may require 'docker login': denied: requested access t... 0.3s
Error response from daemon: pull access denied for moltbot, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

cinder barnBOT
#

# 4. Start the gateway
docker compose up -d moltbot-gateway

Key Point

There is no public Docker Hub image for Clawdbot. The default clawdbot:local (or moltbot:local) in the docker-compose.yml is just a placeholder that expects you to build it yourself.

Once built, you can use the standard docker-compose workflow. The docker-setup.sh script in the repo does all this automatically if you prefer.

Let me know if you hit any issues during the build! 🦐

hard ferry
#

okay what would be a good image to use for moltbot @cinder barn and are there any environment variables that i may need that were not in the docker compose

cinder barnBOT
#

Required:

  • CLAWDBOT_GATEWAY_TOKEN β€” generated during onboard
  • CLAUDE_AI_SESSION_KEY β€” your Claude session cookie
  • CLAUDE_WEB_SESSION_KEY β€” your web session cookie
  • CLAUDE_WEB_COOKIE β€” your Claude web cookie

Optional (with defaults):

CLAWDBOT_IMAGE=moltbot:local
CLAWDBOT_CONFIG_DIR=~/.clawdbot
CLAWDBOT_WORKSPACE_DIR=~/clawd
CLAWDBOT_GATEWAY_PORT=18789
CLAWDBOT_BRIDGE_PORT=18790
CLAWDBOT_GATEWAY_BIND=lan

For extra packages in the image:

#
CLAWDBOT_DOCKER_APT_PACKAGES="ffmpeg git curl jq"

Recommended Unraid Workflow

  1. Enable Docker on Unraid
  2. SSH into Unraid and run:
    git clone https://github.com/clawdbot/clawdbot.git
    cd clawdbot
    docker build -t moltbot:local .
    docker compose run --rm moltbot-cli onboard
    docker compose up -d moltbot-gateway
    
#
  1. Copy the generated .env to wherever you store your compose files
  2. Use Port 18789 to access the web UI

The onboard command will generate your gateway token and walk you through initial setup. 🦐

hard ferry
#

@cinder barn id rather use a docker image that works properly with the gateway and some of the plugins, can you make a suggestion

hard ferry
#

@cinder barn getting this error launching the latest from master, should i set to a tag instead

 [moltbot-gateway 12/14] RUN CLAWDBOT_A2UI_SKIP_MISSING=1 pnpm build:
0.307 
0.307 > moltbot@2026.1.27-beta.1 build /app
0.307 > pnpm canvas:a2ui:bundle && tsc -p tsconfig.json && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts
0.307 
0.481 
0.481 > moltbot@2026.1.27-beta.1 canvas:a2ui:bundle /app
0.481 > bash scripts/bundle-a2ui.sh
0.481 
0.488 A2UI sources missing; keeping prebuilt bundle.
8.708 src/plugins/config-state.ts(102,11): error TS2322: Type 'null' is not assignable to type 'string | undefined'.
8.708 src/plugins/config-state.ts(115,9): error TS2322: Type 'null' is not assignable to type 'string | undefined'.
8.784  ELIFECYCLE  Command failed with exit code 1.
------
Dockerfile:27

--------------------

  25 |     

  26 |     COPY . .

  27 | >>> RUN CLAWDBOT_A2UI_SKIP_MISSING=1 pnpm build

  28 |     # Force pnpm for UI build (Bun may fail on ARM/Synology architectures)

  29 |     ENV CLAWDBOT_PREFER_PNPM=1

--------------------

target moltbot-cli: failed to solve: process "/bin/sh -c CLAWDBOT_A2UI_SKIP_MISSING=1 pnpm build" did not complete successfully: exit code: 1
cinder barnBOT
#
      - TERM=xterm-256color
      - CLAWDBOT_GATEWAY_TOKEN=${CLAWDBOT_GATEWAY_TOKEN}
      - CLAUDE_AI_SESSION_KEY=${CLAUDE_AI_SESSION_KEY}
      - CLAUDE_WEB_SESSION_KEY=${CLAUDE_WEB_SESSION_KEY}
      - CLAUDE_WEB_COOKIE=${CLAUDE_WEB_COOKIE}
    volumes:
      - ${CLAWDBOT_CONFIG_DIR:-~/.clawdbot}:/home/node/.clawdbot
      - ${CLAWDBOT_WORKSPACE_DIR:-~/clawd}:/home/node/clawd
    ports:
      - "18789:18789"
    init: true
    restart: unless-stopped

Should You Use a Tag?

#

Yes! Building from main/master can break if there are breaking changes. For production:

# Check available tags
git tag -l | tail -10

# Checkout a stable tag
git checkout v0.9.0  # or whatever the latest stable is

Then build and tag your local image:

docker build -t moltbot:v0.9.0 .

What error are you actually seeing? 🦐

hard ferry
#

@cinder barn here is the proper error message, sorry:

 [moltbot-gateway 12/14] RUN CLAWDBOT_A2UI_SKIP_MISSING=1 pnpm build:
0.307 
0.307 > moltbot@2026.1.27-beta.1 build /app
0.307 > pnpm canvas:a2ui:bundle && tsc -p tsconfig.json && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts
0.307 
0.481 
0.481 > moltbot@2026.1.27-beta.1 canvas:a2ui:bundle /app
0.481 > bash scripts/bundle-a2ui.sh
0.481 
0.488 A2UI sources missing; keeping prebuilt bundle.
8.708 src/plugins/config-state.ts(102,11): error TS2322: Type 'null' is not assignable to type 'string | undefined'.
8.708 src/plugins/config-state.ts(115,9): error TS2322: Type 'null' is not assignable to type 'string | undefined'.
8.784  ELIFECYCLE  Command failed with exit code 1.
------
Dockerfile:27

--------------------

  25 |     

  26 |     COPY . .

  27 | >>> RUN CLAWDBOT_A2UI_SKIP_MISSING=1 pnpm build

  28 |     # Force pnpm for UI build (Bun may fail on ARM/Synology architectures)

  29 |     ENV CLAWDBOT_PREFER_PNPM=1

--------------------

target moltbot-cli: failed to solve: process "/bin/sh -c CLAWDBOT_A2UI_SKIP_MISSING=1 pnpm build" did not complete successfully: exit code: 1
hard ferry
#

@cinder barn what are all the env vars i need to get the docker image running on launch? the moltbot-gateway container doesnt have moltbot-cli installed, that was the other container

#

so i cant use onboarding

cinder barnBOT
# hard ferry <@1457407575476801641> what are all the env vars i need to get the docker image ...

You're correct β€” moltbot-gateway and moltbot-cli are two separate services in the compose file, both using the same image.

All Environment Variables for moltbot-gateway

Required:

HOME=/home/node
TERM=xterm-256color
CLAWDBOT_GATEWAY_TOKEN=     # Generated during onboard
CLAUDE_AI_SESSION_KEY=      # Your Claude session cookie
CLAUDE_WEB_SESSION_KEY=     # Your Claude web session cookie
CLAUDE_WEB_COOKIE=          # Your Claude web cookie

Optional (with defaults):

#
CLAWDBOT_GATEWAY_BIND=lan
CLAWDBOT_GATEWAY_PORT=18789

Complete Docker Compose

services:
  moltbot-gateway:
    image: moltbot:local
    container_name: moltbot-gateway
    environment:
      - HOME=/home/node
      - TERM=xterm-256color
      - CLAWDBOT_GATEWAY_TOKEN=${CLAWDBOT_GATEWAY_TOKEN}
#
      - CLAUDE_AI_SESSION_KEY=${CLAUDE_AI_SESSION_KEY}
      - CLAUDE_WEB_SESSION_KEY=${CLAUDE_WEB_SESSION_KEY}
      - CLAUDE_WEB_COOKIE=${CLAUDE_WEB_COOKIE}
    volumes:
      - ~/.clawdbot:/home/node/.clawdbot
      - ~/clawd:/home/node/clawd
    ports:
      - "18789:18789"
    init: true
    restart: unless-stopped
    command: ["node", "dist/index.js", "gateway", "--bind", "lan", "--port", "18789"]

How to Get Tokens

  1. Run onboarding (uses moltbot-cli service):
#
   docker compose run --rm moltbot-cli onboard
  1. Or manually get your Claude cookies from browser dev tools (Application β†’ Cookies β†’ claude.ai)

The gateway token is generated during onboard and written to your .env file. 🦐

drowsy imp
#

@hard ferry did you get it working on unraid?

cinder barnBOT
# drowsy imp <@223806022588956673> did you get it working on unraid?

@Nebula β€” Did you get it working on Unraid? 🦐

If you're still stuck, the key steps are:

  1. Build locally (no public image exists):

    git clone https://github.com/clawdbot/clawdbot.git
    cd clawdbot
    docker build -t moltbot:local .
    
  2. Run onboard to generate your gateway token:

    docker compose run --rm moltbot-cli onboard
    
  3. Start the gateway:

#
   docker compose up -d moltbot-gateway

If you're getting a specific error, paste it here and we can troubleshoot!

hard ferry
#

@drowsy imp yes! i have 2 going, and im about to set up an ollama instance with them both since im getting completely screwed by anthropic's rate limiting apparently

drowsy imp
#

so just following the flow here would work out?

hard ferry
#

i ended up running one docker compose that hosts three services:

  • moltbot 1
  • moltbot 2
  • docker socket proxy for them both to use

i had to checkout the latest release via command line, then set up the custom docker compose, set up a .env file (via the unraid docker-compose plugin), and then it launched no problem. just had to run onboarding on each container and boom.

#

pretty much, yeah

drowsy imp
#

okay cool, thanks, ill give it a shot

hard ferry
#

good luck!