Run This Ai
EN DE

How to Set Up HolyClaude: A 5-Minute AI Development Workstation Tutorial

Step-by-step guide to setting up HolyClaude — your containerized AI coding workstation with Claude Code, web UI, and 8 AI CLI providers.

HolyClaude Logo

You're 5 Minutes Away From a Fully Functional AI Coding Workstation

I timed it. From zero to having Claude Code running in a browser with Playwright, a headless Chromium, and 8 AI CLI providers — 4 minutes and 23 seconds. That includes Docker pulling the image.

Here's how to do it yourself.

🚀 Want to deploy HolyClaude yourself?

Docker configs, system requirements, and installation guides — all on one page.

View HolyClaude Tool Page →

Prerequisites

  • Docker Engine 24+ with Compose V2 (docker compose, not docker-compose)
  • At least 4 GB RAM on your host (8 GB recommended if you're actually coding in there)
  • 5 GB free disk for the full image (~4.1 GB compressed, larger unpacked)
  • An Anthropic account with Claude Max/Pro subscription or an API key

This works on Linux (AMD64 and ARM64), macOS via Docker Desktop, and even Synology/QNAP NAS. I tested it on an Oracle Cloud ARM instance with 4 GB RAM and it runs smoothly.

Step 1: Create Your Project Folder

mkdir holyclaude && cd holyclaude

I keep mine at ~/docker/holyclaude/ but honestly, put it wherever you want. The container will create two folders inside: data/ for your Claude credentials and memory, and workspace/ for your code.

Step 2: Create docker-compose.yaml

Here's the quick-start template — minimal, zero config, just works:

services:
  holyclaude:
    image: coderluii/holyclaude:latest
    container_name: holyclaude
    hostname: holyclaude
    restart: unless-stopped
    shm_size: 2g
    network_mode: bridge
    cap_add:
      - SYS_ADMIN
      - SYS_PTRACE
    security_opt:
      - seccomp=unconfined
    ports:
      - "127.0.0.1:3001:3001"
    volumes:
      - ./data/claude:/home/claude/.claude
      - ./workspace:/workspace

Why 127.0.0.1:3001? This binds the web UI to localhost only. If you want to access it from other devices on your network, change it to "0.0.0.0:3001:3001" — but then your AI workstation is accessible to anyone who knows your IP. If you need remote access, use Tailscale or Cloudflare Tunnel instead. Don't just port-forward it.

shm_size: 2g — I lost 30 minutes the first time because Chromium needs shared memory and Docker defaults to 64 MB. This is pre-solved here.

Step 3: Pull and Start

docker compose up -d

This pulls the image and starts the container. The first pull is ~4.1 GB (compressed), so go make a coffee. Subsequent pulls are only the changed layers.

HolyClaude Dashboard

Step 4: Open the Web UI

http://localhost:3001

You should see the CloudCLI login screen. If you don't, check that the container started:

docker logs holyclaude

If you see "CloudCLI is running on port 3001" — you're golden.

Step 5: Authenticate

Create a CloudCLI account (takes about 10 seconds — email + password). Then sign in with your Anthropic account (the same OAuth flow you use for desktop Claude Code).

If you use an API key instead of a subscription, paste it in the settings panel. Both work the same way.

Auth Method How It Works Cost
Claude Max/Pro Sign in through CloudCLI OAuth Your existing subscription
API Key Paste in web UI settings Pay-per-use (standard Anthropic rates)
Codex CLI codex login --device-auth ChatGPT Plus/Pro works here too

Step 6: Start Building

Once authenticated, you're in a full terminal environment inside the container. Everything is ready:

  • claude — Claude Code CLI (just works)
  • codex — OpenAI Codex (if you authenticated)
  • gemini — Google Gemini CLI (set GEMINI_API_KEY)
  • cursor — Cursor CLI
  • Python, Node.js, TypeScript, git, gh, and 50+ other tools

Common Pitfalls (And How I Avoided Them)

I almost gave up because bind mounts weren't working. If your ./workspace folder has weird permissions inside the container, check that your UID/GID on the host match. The container runs as claude user (UID 1000 by default). If your host UID is different, add PUID and PGID environment variables to the compose file.

Chromium still failing? Double-check that shm_size: 2g is set and seccomp=unconfined is in security_opt. These two lines alone saved me hours of debugging.

Updating

docker compose pull
docker compose up -d

That's it. Your credentials in ./data/claude/ survive the update. Your workspace files survive. Even Claude's memory persists. The only thing that changes is the container image.

Final Tips

Use the slim tag (coderluii/holyclaude:slim) if disk space is tight — it's ~2.4 GB instead of 4.1 GB. Claude installs missing tools on demand, which takes a few seconds but saves bandwidth.

If you're running on a NAS with SMB mounts, add CHOKIDAR_USEPOLLING=true as an environment variable. File watching doesn't work on network filesystems without polling.

That's it. Four steps. Five minutes. One AI development workstation that actually works.

🚀 Explore HolyClaude on Run This Ai

Docker Compose configs, system requirements, installation guides, and more — all in one place.

View HolyClaude Tool Page →
#holyclaude #tutorial #docker #setup #claude-code