Sign inSign up

coderluii/holyclaude

By coderluii

โ€ขUpdated 3 days ago

AI coding workstation: Claude Code + web UI + 8 AI CLIs + headless browser + 50+ tools

Image
Internet of things
Machine learning & AI
Developer tools
3

100K+

coderluii/holyclaude repository overview

โ HolyClaude โšก

One command. Full AI development workstation.

Claude Code, CloudCLI web UI, headless browser, 8 AI CLIs, Desloppify, 50+ dev tools โ€” containerized and ready. You were going to spend 2 hours setting this up manually. Or you could just docker compose up.

Docker Pulls GitHub Stars License: MIT

โ Quick Start

services:
  holyclaude:
    image: coderluii/holyclaude:latest
    container_name: holyclaude
    restart: unless-stopped
    shm_size: 2g
    cap_add:
      - SYS_ADMIN   # Current browser profile for this release; hardening is separate
      - SYS_PTRACE  # Debugging-related capability
    security_opt:
      - seccomp=unconfined  # Current browser profile for this release; hardening is separate
    ports:
      - "127.0.0.1:3001:3001"
    volumes:
      - ./data/claude:/home/claude/.claude
      - ./workspace:/workspace
    environment:
      - TZ=UTC
docker compose up -d
# Open http://localhost:3001

That's it. Open your browser, sign in, start building.

โ What's Inside

๐Ÿค– 8 AI CLIs โ€” Claude Code 2.1.276, Gemini CLI 0.60.0, OpenAI Codex 0.155.0, Cursor 2026.09.15-d2fe57e, TaskMaster AI 0.43.1, Junie 3196.5, OpenCode 1.18.31, Pi Coding Agent 0.85.1

๐ŸŒ CloudCLI Web UI โ€” Access your AI coding agents from your Docker host at 127.0.0.1:3001

๐Ÿ–ฅ๏ธ Headless Browser โ€” Debian Chromium 153.0.8010.47 + Xvfb + Node Playwright 1.63.0 + Python Playwright 1.63.0, pinned at build time for screenshots, testing, and automation

๐Ÿ“Š Lighthouse โ€” Full image only

๐Ÿ› ๏ธ 50+ Dev Tools โ€” Node.js 26, Python 3, TypeScript, git, GitHub CLI, database clients (PostgreSQL, SQLite, Redis), deployment CLIs (Vercel, Wrangler, Netlify, Azure), and more. Netlify deployment remains available; its optional local Go/Rust functions proxy is omitted because the current upstream binary uses an outdated Go runtime.

๐Ÿ” Optional SSH/Mosh โ€” Key-only sshd and Mosh are installed in both variants, disabled by default, and meant for localhost/VPN/Tailscale access only

๐Ÿ”Ž Desloppify included โ€” The desloppify CLI ships in both images. It is passive by default and only scans when you run it.

โš™๏ธ s6-overlay 3.2.3.2 โ€” Proper PID 1 process supervision with graceful shutdown and automatic service restarts

๐Ÿ”’ Security โ€” Docker UID/GID remapping via PUID/PGID, rootless Podman keep-id profile, and no HolyClaude credential relay; bundled tools contact configured providers directly

โ Image Variants

TagDescriptionDocker Hub compressed size
latestFull image โ€” everything pre-installed, zero waitCheck by architectureโ 
slimCore tools only โ€” smaller download, extras install on demandCheck by architectureโ 
X.Y.ZFull image, pinned versionSame as latest for that release
X.Y.Z-slimSlim image, pinned versionSame as slim for that release

Download size varies by release and architecture; check the matching tag on Docker Hub. It reports compressed transfer size. Docker, Synology Container Manager, and NAS filesystems can report a larger unpacked size after layers are extracted. Use slim when disk space or bandwidth matters more than first-boot convenience.

โ Authentication

Works with your existing Anthropic account. HolyClaude operates no credential relay:

  • Claude Max/Pro plan โ€” OAuth sign-in through the web UI
  • Anthropic API key โ€” Paste it in the web UI

The default Compose files store Claude Code session data in the bind-mounted ./data/claude directory. v1.5.5 also keeps global Git configuration and GitHub CLI authentication there, so they survive container replacement. Treat this directory as credential-bearing storage: do not commit it, share it broadly, or place it in an unencrypted backup. Other bundled tools may read credentials from their own container files, bind mounts, or environment variables and contact configured providers directly.

Before upgrading from a version earlier than v1.5.5, preserve any git config --global or gh auth state that exists only in the old container. Follow the recovery stepsโ  before running docker compose up -d; removing the old container first can discard that state.

โ Key Environment Variables

VariableDescriptionDefault
TZTimezoneUTC
PUIDDocker-style container user UID1000
PGIDDocker-style container user GID1000
CHOKIDAR_USEPOLLINGEnable polling for NAS/SMB mountsunset
NOTIFY_DISCORDDiscord webhook URL for notificationsunset
NOTIFY_TELEGRAMTelegram bot URL (tgram://bot_token/chat_id)unset
NOTIFY_PUSHOVERPushover URL for notificationsunset
NOTIFY_SLACKSlack webhook URL for notificationsunset
NOTIFY_URLSCatch-all Apprise notification URLsunset
HOLYCLAUDE_BASE_PATHOptional web UI subpath such as /holyclaudeunset
HOLYCLAUDE_SSH_ENABLEOptional key-only SSH servicefalse
HOLYCLAUDE_MOSH_ENABLEOptional Mosh UDP session supportfalse

For rootless Podman on SELinux hosts, prepare every bind-mounted directory and use the rootless Compose file:

mkdir -p data/claude data/cloudcli workspace
podman compose -f docker-compose.podman-rootless.yaml up -d

The profile uses userns_mode: "keep-id:uid=1000,gid=1000" and :Z labels so host and container edits to /workspace stay under the same user. Do not add :U to /workspace unless you want Podman to rewrite host ownership for the container namespace.

โ Reverse Proxy Subpaths

If Tailscale Serve or another proxy mounts HolyClaude below a path, pass the same path to the container:

environment:
  - HOLYCLAUDE_BASE_PATH=/holyclaude
sudo tailscale serve --bg --https=443 --set-path=/holyclaude http://127.0.0.1:3001

Leave it unset for root-hostname serving.

โ Volumes

PathPurpose
/home/claude/.claudeClaude settings, file-based credentials stored there, Claude memory, and the saved Claude Code session โ€” persist this
/home/claude/.cloudcliOptional CloudCLI account database โ€” use a local named volume
/workspaceYour code and projects

HolyClaude prepares .cloudcli before the service starts. Fresh Docker volumes inherit the correct owner, and root-starting Docker repairs existing local-volume ownership to PUID/PGID. An unusable or read-only mount now stops startup with a direct remedy instead of repeating unable to open database file.

Keep this SQLite volume on local storage. Rootless Podman users should use the provided keep-id Compose file with :Z; :U rewrites host ownership and is not the default.

โ Architecture

  • linux/amd64
  • linux/arm64

๐Ÿ“– Full docs & troubleshooting: github.com/CoderLuii/HolyClaudeโ 

๐Ÿ› Issues & requests: github.com/CoderLuii/HolyClaude/issuesโ 

๐ŸŒ Website: holyclaude.coderluii.devโ 

Built by CoderLuiiโ  ๐Ÿงก

Tag summary

Content type

Image

Digest

sha256:ef4b9f91aโ€ฆ

Size

5 GB

Last updated

3 days ago

docker pull coderluii/holyclaude