Files
HolyClaude/docs/translations/README.it.md
CoderLuii 6f020bb3ac v1.1.7
2026-03-28 23:36:32 -04:00

48 KiB

🌍 English | Español | Français | Italiano | Português | Deutsch | Русский | हिन्दी | 中文 | 日本語 | 한국어

HolyClaude HolyClaude

HolyClaude Banner

License: MIT Docker Pulls Full Image Slim Image
GitHub Stars Twitter Follow PayPal Buy Me A Coffee Website GitHub Release Issues Contributors

Smetti di configurare. Inizia a costruire.

Un comando. Una workstation di sviluppo AI completa. Claude Code, interfaccia web, browser headless, 7 CLI AI, 50+ strumenti di sviluppo — containerizzati e pronti all'uso.

Avresti passato 2 ore a configurare tutto manualmente. Oppure puoi semplicemente fare docker compose up.

Funziona con il tuo abbonamento Claude Code esistente. Piano Max/Pro, chiave API — qualunque cosa tu abbia, funziona e basta.


Cos'è questo?

Lo sai com'è. Vuoi Claude Code. Ma lo vuoi anche nel browser. Con un browser headless per screenshot e test. Con Playwright configurato. Con tutte le CLI AI. Con TypeScript, Python, strumenti di deployment, client per database, GitHub CLI.

Allora cominci a installare le cose. Una per una. Poi Chromium non si avvia perché la memoria condivisa di Docker è 64MB. Poi Xvfb non è configurato. Poi l'UID all'interno del container non corrisponde al tuo host e tutto restituisce "permission denied". Poi ti accorgi che l'installer di Claude Code si blocca quando WORKDIR è di proprietà di root. Poi SQLite si blocca sul mount NAS. E poi—

HolyClaude è il container che ho costruito dopo aver risolto ognuno di questi problemi.

Lo uso ogni giorno sul mio server da settimane. Ogni bug è stato individuato, diagnosticato e corretto. Ogni caso limite è stato gestito. Ogni "perché non funziona in Docker" ha trovato risposta.

Lo scarichi. Lo avvii. Apri il browser. Costruisci.

💳 Usa il tuo abbonamento esistente

Questo esegue la vera Claude Code CLI. Non un wrapper. Non un proxy. Non un imitatore.

Il tuo account Anthropic esistente funziona direttamente:

  • Piano Claude Max/Pro — autenticati tramite l'interfaccia web (OAuth), esattamente come con Claude Code desktop
  • Chiave API Anthropic — impostala tramite l'interfaccia web, stessa fatturazione di sempre
  • Nessun costo aggiuntivo — HolyClaude è gratuito e open source. Paghi solo Anthropic per quello che usi, come già fai.

HolyClaude non tocca le tue credenziali. Sono conservate localmente nel tuo volume bind-mounted (./data/claude/), esattamente come sarebbe su bare metal.

↑ torna in cima


Indice dei contenuti

Sezione
Avvio rapido
💻 Piattaforme supportate
🌟 Perché HolyClaude
💳 Abbonamento e autenticazione
📦 Varianti dell'immagine
🐳 Docker Compose — Rapido
🐋 Docker Compose — Completo
🔧 Variabili d'ambiente
🚀 Cosa c'è dentro
🤖 Provider CLI AI
🦙 Usare Ollama
🏗️ Architettura
📁 Struttura del progetto
💾 Dati e persistenza
🔒 Permessi
🔔 Notifiche
🔄 Aggiornamento
🚧 Risoluzione dei problemi
⚠️ Problemi noti
🛠️ Build locale
📊 Alternative
🚀 Roadmap
🏆 Costruito con HolyClaude
🤝 Contribuire
❤️ Supporto
📜 Software di terze parti
📄 Licenza

↑ torna in cima


Avvio rapido

1. Crea una cartella per HolyClaude:

mkdir holyclaude && cd holyclaude

2. Crea un file docker-compose.yaml. Copia uno dei template qui sotto:

3. Scarica e avvia:

docker compose up -d

4. Apri l'interfaccia web:

http://localhost:3001

5. Crea un account CloudCLI (ci vogliono 10 secondi), accedi con il tuo account Anthropic e sei operativo.

Nessun file .env. Nessuna pre-configurazione. Nessun bisogno di leggere 40 pagine di documentazione prima di iniziare. Funziona e basta.

↑ torna in cima


💻 Piattaforme supportate

Piattaforma Stato Note
Linux (amd64) Completamente supportato Prestazioni native, consigliato
Linux (arm64) Completamente supportato Raspberry Pi 4+, Oracle Cloud, AWS Graviton
macOS (Docker Desktop) Completamente supportato Apple Silicon e Intel tramite Docker Desktop
Windows (WSL2 + Docker Desktop) Completamente supportato Richiede backend WSL2
Synology / QNAP NAS Completamente supportato Usa CHOKIDAR_USEPOLLING=true per mount SMB
Kubernetes 🔜 Prossimamente Helm chart in programma

↑ torna in cima


🌟 Perché HolyClaude

L'ho costruito perché ero stanco di ripetere la stessa configurazione ogni volta. Installare Claude Code, collegare un'interfaccia web, configurare Chromium in Docker, risolvere problemi di permessi, fare debug della supervisione dei processi. Ogni. Volta.

Così ho creato un container che fa tutto. E poi ho incontrato ogni possibile bug al posto tuo.

HolyClaude Farlo da soli
Configurazione 30 secondi 1-2 ore (se va bene)
Claude Code Pre-installato, pre-configurato, pronto Installa, configura, fai debug del blocco dell'installer, correggi WORKDIR
Interfaccia web CloudCLI incluso con plugin Trova un'interfaccia web, installala, configurala, collegala a Claude
Browser headless Chromium + Xvfb + Playwright, configurati Installa Chromium, installa Xvfb, configura il display :99, correggi shm, sandbox, seccomp...
CLI AI 7 provider, un container Installa ognuna separatamente su 3 package manager
Strumenti di sviluppo 50+ strumenti, pronti apt-get install / npm i -g / pip install per la prossima ora
Gestione dei processi s6-overlay (riavvio automatico, shutdown controllato) Scrivi la tua configurazione supervisord o spera che il restart di Docker funzioni
Persistenza Bind mount, le credenziali sopravvivono a tutto Capire i volumi Docker, fare debug di "perché questa è una directory e non un file"
Aggiornamenti docker pull && docker compose up -d Aggiorna 50 strumenti manualmente, prega che non si rompa nulla
Multi-arch AMD64 + ARM64 Prega che il tuo Dockerfile compili su ARM

L'ultima riga di ogni configurazione manuale è "funziona sulla mia macchina." HolyClaude funziona su ogni macchina.

↑ torna in cima


💳 Abbonamento e autenticazione

HolyClaude esegue la Claude Code CLI ufficiale di Anthropic. Il tuo account esistente funziona immediatamente.

Cosa funziona:

Metodo di autenticazione Come Costo
Piano Claude Max/Pro (abbonamento) Accedi tramite l'interfaccia web CloudCLI — stesso flusso OAuth del desktop Il tuo abbonamento esistente, nessun costo aggiuntivo
Chiave API Anthropic Incolla la tua chiave API nell'interfaccia web Pay-per-use, stessa fatturazione Anthropic

Cosa non funziona:

Perché
Chiave API OpenAI per Claude Aziende diverse, API diverse. Le chiavi OpenAI funzionano con la Codex CLI (anch'essa pre-installata)

Abbonati ChatGPT Plus/Pro: Il tuo abbonamento funziona con la Codex CLI. Esegui codex login --device-auth all'interno del container per autenticarti con il tuo account ChatGPT.

Altre CLI AI incluse:

CLI Cosa ti serve
Gemini CLI Chiave API Google AI (GEMINI_API_KEY)
OpenAI Codex Chiave API OpenAI (OPENAI_API_KEY) o abbonamento ChatGPT Plus/Pro (codex login --device-auth)
Cursor Chiave API Cursor (CURSOR_API_KEY)
TaskMaster AI Usa le tue chiavi AI provider (Anthropic, OpenAI, ecc.)
Junie Account JetBrains (abbonamento JetBrains AI)
OpenCode Configura tramite TUI opencode (supporta più provider)

HolyClaude è gratuito e open source. Paghi solo i tuoi provider AI per l'utilizzo, come già fai. Non intercettiamo, non facciamo proxy e non tocchiamo le tue credenziali. Vivono nel tuo bind mount locale.

↑ torna in cima


📦 Varianti dell'immagine

Due versioni. Stessa qualità. Scegli il tuo peso.

Tag Cosa ottieni Ideale per
latest Tutto pre-installato — ogni strumento, ogni libreria, ogni CLI La maggior parte degli utenti. Zero tempo di attesa. Claude non deve mai fermarsi per installare qualcosa.
slim Solo gli strumenti di base — Claude installa gli extra su richiesta VPS piccoli, disco limitato, banda a consumo
X.Y.Z Immagine completa, versione fissa Stabilità in produzione — controlli tu quando aggiornare
X.Y.Z-slim Immagine slim, versione fissa Produzione + footprint ridotto
# Completa — batterie incluse (consigliata)
docker pull coderluii/holyclaude

# Slim — leggera ed efficiente
docker pull coderluii/holyclaude:slim

latest è sempre l'immagine completa. Utenti slim: non preoccupatevi — quando chiedete a Claude di fare qualcosa che richiede uno strumento mancante, lo installa in pochi secondi. Ottieni le stesse funzionalità, solo con un download iniziale più piccolo.

↑ torna in cima


🐳 Docker Compose — Rapido

Il template "voglio solo che funzioni". Copia questo intero blocco in un file docker-compose.yaml:

# ==============================================================================
# HolyClaude — Quick Start
# Just run: docker compose up -d
# Then open: http://localhost:3001
# ==============================================================================

services:
  holyclaude:
    image: coderluii/holyclaude:latest     # Full image (use :slim for smaller download)
    container_name: holyclaude
    hostname: holyclaude
    restart: unless-stopped
    shm_size: 2g                           # Chromium needs this — don't remove
    network_mode: bridge
    cap_add:
      - SYS_ADMIN                          # Required: Chromium sandboxing
      - SYS_PTRACE                         # Required: debugging tools
    security_opt:
      - seccomp=unconfined                 # Required: Chromium in Docker
    ports:
      - "3001:3001"                        # CloudCLI web UI
    volumes:
      #
      # ./data/claude — Your settings, credentials, API keys, and Claude's memory.
      #                  This is what survives container rebuilds.
      #                  NEVER delete this folder — your auth lives here.
      #
      - ./data/claude:/home/claude/.claude
      #
      # ./workspace — Your code. All projects go here.
      #               Bind-mounted so you can access files from your host.
      #
      - ./workspace:/workspace
    environment:
      - TZ=UTC                             # Your timezone (e.g., America/New_York, Europe/London)

Poi:

docker compose up -d

Apri http://localhost:3001. Crea un account CloudCLI. Accedi con il tuo account Anthropic. Costruisci qualcosa.

Questa è tutta la configurazione. Hai finito.

Perché SYS_ADMIN + seccomp=unconfined? Chromium ha bisogno di questi permessi per funzionare dentro Docker — è lo standard per qualsiasi browser containerizzato (documentazione Playwright, Puppeteer, ogni pipeline CI che esegue test nel browser). Senza di essi, Chromium va in crash all'avvio. Non è un rischio per la sicurezza specifico di HolyClaude.

Perché shm_size: 2g? Docker assegna ai container 64MB di memoria condivisa per impostazione predefinita. Chromium usa /dev/shm intensivamente per il rendering delle schede. A 64MB, le schede vanno in crash casualmente. 2GB è il minimo consigliato per qualsiasi configurazione Chromium-in-Docker.

↑ torna in cima


🐋 Docker Compose — Completo

Stessa immagine, ogni opzione esposta. Copia questo intero blocco in un file docker-compose.yaml:

# ==============================================================================
# HolyClaude — Full Configuration
# All options documented inline.
# Detailed docs: https://github.com/CoderLuii/HolyClaude/blob/main/docs/configuration.md
# ==============================================================================

services:
  holyclaude:
    image: coderluii/holyclaude:latest     # Full image (use :slim for smaller download)
    container_name: holyclaude
    hostname: holyclaude
    restart: unless-stopped
    shm_size: 2g                           # Chromium shared memory — increase to 4g for heavy browser use
    network_mode: bridge
    cap_add:
      - SYS_ADMIN                          # Required: Chromium sandboxing
      - SYS_PTRACE                         # Required: debugging tools (strace, lsof)
    security_opt:
      - seccomp=unconfined                 # Required: Chromium syscall requirements
    ports:
      #
      # CloudCLI web UI — this is the only port you need.
      # Override the host-side port from `.env` if 3001 is already in use.
      #
      - "${HOLYCLAUDE_HOST_PORT:-3001}:3001"
      #
      # Dev server ports — uncomment as needed.
      # These let you access dev servers running inside the container from your host browser.
      #
      # - "3000:3000"                      # Next.js / Express
      # - "4321:4321"                      # Astro
      # - "5173:5173"                      # Vite
      # - "8787:8787"                      # Wrangler (Cloudflare Workers)
      # - "9229:9229"                      # Node.js debugger
    volumes:
      #
      # PERSISTENT DATA
      #
      # ./data/claude — Settings, credentials, API keys, Claude's memory file.
      #                  Survives container rebuilds. NEVER delete this folder.
      #                  Override the host path from `.env` if you want it elsewhere.
      #
      - ${HOLYCLAUDE_HOST_CLAUDE_DIR:-./data/claude}:/home/claude/.claude
      #
      # ./workspace — Your code and projects. Everything you build goes here.
      #               Accessible from your host machine.
      #               Override the host path from `.env` if you want a different root.
      #
      - ${HOLYCLAUDE_HOST_WORKSPACE_DIR:-./workspace}:/workspace
    environment:
      #
      # TIMEZONE
      # Full list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
      #
      - TZ=UTC
      #
      # PERFORMANCE
      # Node.js heap memory limit in MB. Increase if you work on large monorepos
      # and hit out-of-memory errors. 4096 (4GB) is a solid default.
      #
      - NODE_OPTIONS=--max-old-space-size=4096
      #
      # USER MAPPING
      # Match these to your host user so files created inside the container
      # have the right ownership on your host. Run `id -u` and `id -g` on your host.
      #
      - PUID=1000
      - PGID=1000
      #
      # SMB/CIFS NETWORK MOUNTS
      # Only enable these if your volumes are on a NAS, Samba share, or CIFS mount.
      # They enable polling-based file watching since network mounts don't support inotify.
      # Leave commented out for local storage — polling uses more CPU.
      #
      # - CHOKIDAR_USEPOLLING=1
      # - WATCHFILES_FORCE_POLLING=true
      #
      # NOTIFICATIONS (optional)
      # Get notified when Claude finishes a task or hits an error.
      # Uses Apprise — supports 100+ services. Also requires creating a flag file
      # inside the container: touch ~/.claude/notify-on
      #
      # - NOTIFY_DISCORD=discord://webhook_id/webhook_token
      # - NOTIFY_TELEGRAM=tg://bot_token/chat_id
      # - NOTIFY_PUSHOVER=pover://user_key@app_token
      # - NOTIFY_SLACK=slack://token_a/token_b/token_c
      # - NOTIFY_EMAIL=mailto://user:pass@gmail.com?to=you@gmail.com
      # - NOTIFY_GOTIFY=gotify://hostname/token
      # - NOTIFY_URLS=                                   # catch-all: comma-separated Apprise URLs
      #
      # AI PROVIDER KEYS (optional)
      # Claude Code can authenticate via web UI (OAuth) or ANTHROPIC_API_KEY.
      # Set these if you want to use additional AI CLIs or API-based auth.
      #
      # - GEMINI_API_KEY=your_key
      # - OPENAI_API_KEY=your_key
      # - CURSOR_API_KEY=your_key

Poi:

docker compose up -d

Se vuoi cambiare la porta lato host o i percorsi bind-mount senza modificare il compose, copia .env.example in .env e imposta:

HOLYCLAUDE_HOST_PORT=3003
HOLYCLAUDE_HOST_CLAUDE_DIR=./data/claude
HOLYCLAUDE_HOST_WORKSPACE_DIR=./workspace

Questi valori vengono letti da Docker Compose sull'host. Non sono variabili d'ambiente del container.

Cosa controlla ogni sezione:

Sezione Cosa fa Quando cambiarla
Timezone Orologio del container Sempre — imposta il tuo fuso orario locale
Performance Limite di memoria Node.js Solo se incorri in errori OOM su progetti grandi
User mapping Permessi dei file tra container e host Se ricevi errori "permission denied" (id -u e id -g sul tuo host)
SMB/CIFS Modalità polling del file watcher Solo se i tuoi volumi si trovano su NAS o condivisione di rete
Notifications Avvisi push tramite Apprise (Discord, Telegram, Slack, Email, 100+ servizi) Se vuoi allontanarti e sapere quando Claude ha finito
AI providers Chiavi API per Gemini, Codex, Cursor, Junie, OpenCode Se vuoi usare CLI AI diverse da Claude

Ogni singola variabile d'ambiente è opzionale. Il container funziona perfettamente con solo TZ=UTC. Tutto il resto ha valori predefiniti ragionevoli o viene gestito tramite l'interfaccia web.

↑ torna in cima


🔧 Variabili d'ambiente

Il riferimento completo. Ogni variabile, il suo valore predefinito, cosa fa.

Variabile Predefinito Cosa fa
TZ UTC Fuso orario del container
PUID 1000 ID utente del container — abbina al tuo host per evitare problemi di permessi
PGID 1000 ID gruppo del container — abbina al tuo host per evitare problemi di permessi
NODE_OPTIONS --max-old-space-size=4096 Limite memoria heap Node.js in MB
GIT_USER_NAME HolyClaude User Autore dei commit Git (impostato una volta al primo avvio)
GIT_USER_EMAIL noreply@holyclaude.local Email dei commit Git (impostata una volta al primo avvio)
CHOKIDAR_USEPOLLING (non impostato) Imposta a 1 per SMB/CIFS — abilita i file watcher in polling
WATCHFILES_FORCE_POLLING (non impostato) Imposta a true per SMB/CIFS — abilita il polling Python
NOTIFY_DISCORD (non impostato) URL webhook Discord per le notifiche
NOTIFY_TELEGRAM (non impostato) URL bot Telegram per le notifiche
NOTIFY_PUSHOVER (non impostato) URL Pushover per le notifiche
NOTIFY_SLACK (non impostato) URL webhook Slack per le notifiche
NOTIFY_EMAIL (non impostato) URL email (SMTP) per le notifiche
NOTIFY_GOTIFY (non impostato) URL Gotify per le notifiche
NOTIFY_URLS (non impostato) Catch-all — URL Apprise separati da virgola
ANTHROPIC_API_KEY (non impostato) Chiave API Anthropic (alternativa all'OAuth dell'interfaccia web)
ANTHROPIC_AUTH_TOKEN (non impostato) Token di autenticazione Anthropic (alternativa alla chiave API)
ANTHROPIC_BASE_URL (non impostato) Endpoint API Anthropic personalizzato (proxy, deployment privati)
CLAUDE_CODE_USE_BEDROCK (non impostato) Imposta a 1 per usare il backend Amazon Bedrock
CLAUDE_CODE_USE_VERTEX (non impostato) Imposta a 1 per usare il backend Google Vertex AI
GEMINI_API_KEY (non impostato) Chiave API Google Gemini
OPENAI_API_KEY (non impostato) Chiave API OpenAI (per Codex CLI, oppure usa codex login --device-auth per abbonamento ChatGPT)
CURSOR_API_KEY (non impostato) Chiave API Cursor
OLLAMA_HOST (non impostato) URL endpoint Ollama (es. http://host.docker.internal:11434)

↑ torna in cima


🚀 Cosa c'è dentro

Questo non è un container minimale. Questa è un'intera workstation di sviluppo.

Entrambe le varianti (full + slim)

Node.js 22 LTS + pacchetti npm globali
Pacchetto A cosa serve
typescript, tsx Compilazione ed esecuzione TypeScript
pnpm Package manager veloce e con poco utilizzo disco
vite, esbuild Strumenti di build ultra-rapidi
eslint, prettier Qualità del codice e formattazione
serve, nodemon Server di file statici, server di sviluppo con riavvio automatico
concurrently Esegui più script in parallelo
dotenv-cli Carica variabili d'ambiente da file .env
Pacchetti Python 3
Pacchetto A cosa serve
requests, httpx Client HTTP
beautifulsoup4, lxml Web scraping e parsing HTML
Pillow Elaborazione immagini (pre-compilato — nessuna attesa)
pandas, numpy Manipolazione dati (pre-compilati — davvero, non vuoi fare pip install di questi a runtime)
openpyxl Lettura/scrittura file Excel
python-docx Lettura/scrittura documenti Word
jinja2, markdown Templating e rendering markdown
pyyaml, python-dotenv Parsing file di configurazione
rich, click, tqdm CLI eleganti e barre di avanzamento
playwright Automazione browser (Chromium già configurato e pronto)
Strumenti di sistema
Strumento A cosa serve
git, gh Controllo versione + GitHub CLI (PR, issue, release dal terminale)
ripgrep (rg), fd, fzf Ricerca ultra-veloce — Claude li usa continuamente
bat, tree, jq Cat migliore (syntax highlighting), alberi di directory, elaborazione JSON
curl, wget Download HTTP
tmux Terminal multiplexer — esegui cose in background
htop, lsof, strace Monitoraggio processi e debug
imagemagick Conversione immagini (convert, identify, mogrify)
chromium Browser headless — screenshot, Playwright, Lighthouse
psql, redis-cli, sqlite3 Interfaccia diretta con database
openssh-client SSH verso altri sistemi
CLI AI — ogni provider principale
CLI Comando A cosa serve
Claude Code claude Il protagonista principale — ci stai girando dentro
Gemini CLI gemini Agente di coding AI di Google
OpenAI Codex codex Agente di coding di OpenAI
Cursor cursor Agente AI di Cursor
TaskMaster AI task-master Pianificazione e orchestrazione dei task
Junie junie Agente di coding AI di JetBrains
OpenCode opencode Agente AI open source (più provider)

Sette CLI AI. Un container. Passa da una all'altra istantaneamente. Nessun'altra immagine Docker fa questo.

Solo immagine full (pacchetti aggiuntivi)

L'immagine full include tutto quanto sopra, più:

Pacchetti npm aggiuntivi — deployment, ORM, performance
Pacchetto A cosa serve
wrangler, @cloudflare/next-on-pages Deployment Cloudflare Workers
vercel Deployment Vercel
netlify-cli Deployment Netlify
az Azure CLI per deployment e gestione cloud
prisma, drizzle-kit I due ORM Node.js più popolari
pm2 Process manager per produzione
eas-cli Build Expo / React Native
lighthouse, @lhci/cli Audit delle performance (Chromium è già disponibile)
sharp-cli CLI per elaborazione immagini
json-server, http-server Mock REST API, server di file statici
@marp-team/marp-cli Da Markdown a presentazioni
Pacchetti Python aggiuntivi — PDF, visualizzazione dati, framework web
Pacchetto A cosa serve
reportlab, weasyprint, cairosvg, fpdf2, PyMuPDF, pdfkit, img2pdf Ogni libreria PDF principale. Generali, leggili, convertili, uniscili.
xlsxwriter, xlrd Formati Excel oltre a quanto copre openpyxl
matplotlib, seaborn Visualizzazione dati e grafici
python-pptx Generazione PowerPoint
fastapi, uvicorn Framework web Python
httpie Client HTTP user-friendly (come curl ma leggibile)
Pacchetti di sistema aggiuntivi — media, documenti
Pacchetto A cosa serve
pandoc Converti tra qualsiasi formato di documento (markdown, HTML, PDF, docx, epub...)
ffmpeg Elaborazione video e audio (estrai, converti, trascrivi)
libvips-dev Libreria di elaborazione immagini ad alte prestazioni

Utenti slim: Manca un pacchetto? Chiedi a Claude. Installa pacchetti npm/pip in pochi secondi. I pacchetti di sistema (pandoc, ffmpeg) richiedono 1-2 minuti. Ottieni le stesse funzionalità — l'immagine full ha semplicemente zero tempo di attesa.

↑ torna in cima


🤖 Provider CLI AI

Sette CLI AI. Un container. Nessun'altra immagine Docker ti offre questo.

Provider Comando Come autenticarsi Abbonamento supportato?
Claude Code claude Interfaccia web CloudCLI (OAuth) — piano Max/Pro o chiave API
Gemini CLI gemini Variabile d'ambiente GEMINI_API_KEY Chiave API (pay-per-use)
OpenAI Codex codex OPENAI_API_KEY oppure codex login --device-auth — ChatGPT Plus/Pro/Team/Enterprise o chiave API
Cursor cursor Variabile d'ambiente CURSOR_API_KEY Chiave API
TaskMaster AI task-master Usa le chiavi AI provider esistenti Funziona con le chiavi configurate
Junie junie Abbonamento JetBrains AI Account JetBrains richiesto
OpenCode opencode Configura tramite TUI Supporta più provider

Claude Code è la CLI principale. Le altre sono disponibili perché a volte vuoi un secondo parere, o i punti di forza di un modello specifico, o stai confrontando output. Averle tutte a portata di Tab è il punto centrale.

↑ torna in cima


🦙 Usare Ollama

HolyClaude funziona con Ollama come alternativa a un abbonamento Anthropic. Imposta due variabili d'ambiente e usa modelli locali o cloud.

Consulta la guida completa: docs/ollama.md

↑ torna in cima


🏗️ Architettura

graph TB
    subgraph Docker Container
        EP["entrypoint.sh"] --> BS["bootstrap.sh\n(first boot only)"]
        EP --> S6["s6-overlay\n(PID 1)"]
        S6 --> CC["CloudCLI\n(:3001)"]
        S6 --> XV["Xvfb\n(:99)"]
        CC --> CLAUDE["Claude Code CLI"]
        CLAUDE --> TOOLS["Dev Tools\n(Node, Python, Git...)"]
        CLAUDE --> CHROME["Chromium\n(headless)"]
        XV -.-> CHROME
    end

    subgraph Host
        DATA["./data/claude"] -.->|bind mount| HOME["~/.claude"]
        WS["./workspace"] -.->|bind mount| WORK["/workspace"]
    end

    USER["Browser"] -->|":3001"| CC

    style S6 fill:#2d3748,color:#fff
    style CC fill:#6366f1,color:#fff
    style CLAUDE fill:#f59e0b,color:#000

Come si incastrano i pezzi

  1. Il container si avviaentrypoint.sh viene eseguito come root. Rimappa UID/GID per corrispondere al tuo utente host, pre-crea i file necessari (prevenendo il bug di Docker che li "crea come directory"), verifica se è il primo avvio.

  2. Solo al primo avviobootstrap.sh viene eseguito una volta. Copia le impostazioni predefinite, il template di memoria, configura l'identità git. Crea un file sentinella (.holyclaude-bootstrapped) così non viene mai eseguito di nuovo. Le tue personalizzazioni sono al sicuro da quel momento in poi.

  3. s6-overlay prende il controllo come PID 1 — Non è supervisord. È s6-overlay, progettato appositamente per Docker. Supervisiona CloudCLI e Xvfb. Riavvia automaticamente in caso di crash. Gestisce i segnali. Riepiloga i processi zombi. Si spegne in modo controllato.

  4. CloudCLI serve l'interfaccia web — Porta 3001. Interfaccia basata su browser per Claude Code con gestione progetti, sessioni multiple e plugin (statistiche progetto + terminale web inclusi).

  5. Xvfb fornisce un display virtuale — Chromium ha bisogno di uno schermo su cui renderizzare, anche in modalità "headless". Xvfb gli fornisce un display virtuale 1920x1080 su :99. Ecco perché Playwright, gli screenshot e Lighthouse funzionano tutti immediatamente.

Consulta docs/architecture.md per l'approfondimento tecnico completo — incluso perché abbiamo scelto s6 al posto di supervisord, perché i plugin sono integrati nell'immagine e perché runuser invece di su.

↑ torna in cima


📁 Struttura del progetto

holyclaude/
├── .github/                 # Workflow CI/CD, template issue e PR
│   ├── FUNDING.yml          # Link sponsor/donazioni
│   ├── ISSUE_TEMPLATE/      # Bug report, feature request, package request
│   ├── pull_request_template.md
│   ├── SECURITY.md          # Policy di sicurezza
│   └── workflows/           # Automazione build e push Docker
├── assets/                  # Immagini logo e banner
├── config/                  # Configurazione Claude Code
│   ├── claude-memory-full.md
│   ├── claude-memory-slim.md
│   └── settings.json
├── docs/                    # Documentazione estesa
│   ├── architecture.md
│   ├── CHANGELOG.md
│   ├── configuration.md
│   ├── dockerhub-description.md
│   ├── ollama.md
│   └── troubleshooting.md
├── scripts/                 # Script del ciclo di vita del container
│   ├── bootstrap.sh         # Configurazione al primo avvio
│   ├── entrypoint.sh        # Entrypoint del container
│   └── notify.py            # Helper notifiche (Apprise)
├── s6-overlay/              # Supervisione processi (servizi s6-rc)
├── Dockerfile               # Build single-stage
├── docker-compose.yaml      # Avvio rapido (configurazione minimale)
├── docker-compose.full.yaml # Configurazione completa (tutte le opzioni)
├── LICENSE
└── README.md

↑ torna in cima


💾 Dati e persistenza

Cosa Dove (container) Dove (host) Sopravvive al rebuild?
Impostazioni, credenziali, chiavi API /home/claude/.claude ./data/claude
Il tuo codice e progetti /workspace ./workspace
Account CloudCLI /home/claude/.cloudcli (solo container) No
Stato onboarding /home/claude/.claude.json (solo container) No

Cosa sopravvive a docker compose down && docker compose up:

  • La tua autenticazione Anthropic e le chiavi API
  • Impostazioni Claude Code e memoria (CLAUDE.md)
  • Tutto il tuo codice in ./workspace
  • Configurazione Git

Cosa dovrai rifare (10 secondi):

  • Account web CloudCLI — registrazione rapida, tutto qui

Riattivare la configurazione del primo avvio:

# Elimina il file sentinella — NON l'intera cartella
rm ./data/claude/.holyclaude-bootstrapped
docker compose restart holyclaude

Non eliminare mai ./data/claude/ per intero. Lì vivono le tue credenziali. Elimina il file sentinella se vuoi un bootstrap pulito. Elimina file di configurazione specifici se vuoi ripristinare le impostazioni. Ma non cancellare mai l'intera cartella.

↑ torna in cima


🔒 Permessi

Claude Code viene eseguito in modalità allowEdits per impostazione predefinita. Questa è l'impostazione più sicura e utile:

Azione Consentita?
Leggere file
Modificare / creare file
Eseguire comandi shell Ti chiede prima
Installare pacchetti Ti chiede prima

Vuoi il bypass completo? (utenti avanzati)

È come lo uso personalmente. Modifica ./data/claude/settings.json sul tuo host:

{
  "permissions": {
    "defaultMode": "bypassPermissions"
  }
}

La modalità bypass significa che Claude esegue qualsiasi comando senza conferma. Veloce, potente, ed esattamente quello che vuoi se ti fidi di ciò che stai costruendo. Ma allowEdits è il valore predefinito sicuro per una ragione.

↑ torna in cima


🔔 Notifiche

Allontanati dal computer e sappi quando Claude ha finito. Usa Apprise per le notifiche — supporta 100+ servizi tra cui Discord, Telegram, Slack, Email, Pushover, Gotify e molti altri.

Per abilitare:

  1. Aggiungi una o più variabili NOTIFY_* all'environment del tuo compose:
    - NOTIFY_DISCORD=discord://webhook_id/webhook_token
    - NOTIFY_TELEGRAM=tg://bot_token/chat_id
    
  2. All'interno del container: touch ~/.claude/notify-on

Consulta la documentazione di configurazione per tutte le variabili supportate e i formati URL.

Per disabilitare: rm ~/.claude/notify-on

Eventi che attivano le notifiche:

Evento Cosa è successo
stop Claude ha completato il task corrente
error Si è verificato un errore nell'uso di uno strumento

Completamente silenzioso quando non configurato. Nessuna variabile NOTIFY_* impostata? Nessun file flag? Zero chiamate di rete. Zero spam nei log. Zero overhead.

↑ torna in cima


🔄 Aggiornamento

# Scarica l'immagine più recente
docker compose pull

# Ricrea il container con la nuova immagine
docker compose up -d

I tuoi dati persistono in ./data/claude e ./workspace — l'aggiornamento sostituisce solo il container, non i tuoi file.

Per fissare una versione specifica invece di latest:

image: coderluii/holyclaude:1.1.2   # instead of :latest

↑ torna in cima


🚧 Risoluzione dei problemi

CloudCLI mostra la directory predefinita sbagliata

CloudCLI si apre su /home/claude invece di /workspace.

Causa: WORKSPACES_ROOT non raggiunge il processo CloudCLI. Le variabili d'ambiente di docker-compose non passano attraverso s6-setuidgid di s6-overlay — viene eseguito con un ambiente pulito per design (funzionalità di sicurezza, non un bug).

Soluzione: Già gestita in HolyClaude. Lo script di esecuzione s6 imposta WORKSPACES_ROOT=/workspace direttamente nell'ambiente del processo.

SQLite "database is locked"

Causa: Database SQLite su mount di rete SMB/CIFS. CIFS non supporta il locking a livello di file richiesto da SQLite.

Soluzione: Non conservare database SQLite su condivisioni di rete. HolyClaude mantiene .cloudcli nello storage locale del container esattamente per questo motivo. Se hai database SQLite personali in /workspace su un NAS, spostali in un percorso locale.

Chromium va in crash / pagine bianche / errori di tab

Causa: Memoria condivisa insufficiente. Docker imposta un limite predefinito di 64MB.

Soluzione: Assicurati di avere shm_size: 2g nel tuo file compose. Per uso intensivo del browser (molte tab, pagine complesse), aumenta a 4g.

I file watcher non rilevano i cambiamenti (hot reload non funziona)

Causa: I mount di rete SMB/CIFS non supportano inotify.

Soluzione: Abilita il polling nell'ambiente del tuo compose:

- CHOKIDAR_USEPOLLING=1
- WATCHFILES_FORCE_POLLING=true

Nota: Il polling usa più CPU di inotify. Abilitalo solo su mount di rete.

Errori "permission denied"

Causa: UID/GID del container non corrisponde alla proprietà dei file sull'host.

Soluzione:

# Sul tuo host
id -u  # → questo è il tuo PUID
id -g  # → questo è il tuo PGID

Impostali nel tuo file compose:

- PUID=1000
- PGID=1000
Docker crea .claude.json come directory

Causa: Se un file di destinazione di un bind-mount non esiste prima dell'avvio del container, Docker lo crea generosamente come directory. Grazie, Docker.

Soluzione: Già gestita — entrypoint.sh lo pre-crea come file.

Consulta docs/troubleshooting.md per la guida completa, incluse tutte le problematiche SMB/CIFS e la storia completa dei bug incontrati e risolti.

↑ torna in cima


⚠️ Problemi noti

Questi non sono bug di HolyClaude — sono problemi upstream o compromessi intenzionali.

Problema Perché Soluzione alternativa
Pulsante "Continue in Shell" non funziona Bug upstream di CloudCLI (race condition nell'inizializzazione del terminale) Usa invece il plugin Web Terminal (pre-installato)
Cursor CLI "Command timeout" Nessuna chiave API configurata — solo estetico, non influisce su nulla Imposta CURSOR_API_KEY o ignoralo
Account CloudCLI perso al rebuild SQLite non può persistere su mount di rete — compromesso intenzionale Ricrea l'account (~10 secondi)
Notifiche push web "not supported" Limitazione del browser in CloudCLI, comportamento standard Usa invece le notifiche Apprise (vedi Notifiche)

↑ torna in cima


🛠️ Build locale

Vuoi costruire l'immagine tu stesso invece di scaricarla da Docker Hub? Vai pure:

git clone https://github.com/CoderLuii/HolyClaude.git
cd holyclaude

# Build immagine full
docker build -t holyclaude .

# Build immagine slim
docker build --build-arg VARIANT=slim -t holyclaude:slim .

# Build per ARM (Apple Silicon, Raspberry Pi, AWS Graviton)
docker buildx build --platform linux/arm64 -t holyclaude .

Poi usa image: holyclaude invece di image: coderluii/holyclaude:latest nel tuo file compose.

↑ torna in cima


📊 Alternative

Come si confronta HolyClaude con altri approcci?

Approccio Interfaccia web Multi-AI Strumenti pre-configurati Browser headless Configurazione con un comando Persistenza
HolyClaude CloudCLI 5 CLI 50+ strumenti Chromium + Xvfb + Playwright docker compose up Bind mount
Claude Code (bare metal) No No Installa tu stesso Installa tu stesso Installazione multi-step Manuale
Claude Code + oh-my-openagent No Sì (multi-modello) Alcuni No npm install Manuale
DIY Docker + Claude Code Forse Forse Quello che aggiungi Se lo configuri Se scrivi il Dockerfile Se imposti i volumi
Cursor IDE Integrata Solo Cursor Inclusi nell'IDE No Scarica l'app Dati dell'app

HolyClaude non compete con gli agenti di coding — è il layer infrastrutturale che li fa funzionare meglio a tutti. È il container in cui li esegui.

↑ torna in cima


🚀 Roadmap

Cosa verrà dopo:

Stato Funzionalità
🔜 Build native ARM — immagini ARM64 native ottimizzate, non solo emulate
🔜 Integrazione tunnel VS Code — VS Code Server integrato o tunnel per la connessione da VS Code desktop
🔜 Routing delle notifiche — destinazioni di notifica diverse per tipo di evento (errori su Telegram, completamenti su Discord)

Hai un'idea? Avvia una discussione o richiedi una funzionalità.

↑ torna in cima


🏆 Costruito con HolyClaude

Stai usando HolyClaude per costruire qualcosa? Ci piacerebbe vederlo.

Apri una issue con il label showcase o invia una PR per aggiungere il tuo progetto qui:

Sii il primo ad aggiungere il tuo progetto qui.

↑ torna in cima


🤝 Contribuire

I contributi sono benvenuti. Questo progetto è nato dall'uso quotidiano reale e migliora quando più persone lo usano e trovano casi limite.

  1. Fai un fork
  2. Crea un branch (git checkout -b feature/qualcosa)
  3. Fai il commit
  4. Fai il push
  5. Apri una PR

Bug, richieste di funzionalità, domande: apri una issue.

Contatti

Canale Per
GitHub Discussions Domande, mostra la tua configurazione, idee
Issues Segnalazioni bug, richieste di funzionalità e pacchetti
Security Advisories Segnalazioni di vulnerabilità (private)

Vuoi aggiungere uno strumento?

Usa il template di issue 📦 Package Request. Includi il nome del pacchetto, il metodo di installazione e quale variante (full/slim) dovrebbe essere il target.

↑ torna in cima


❤️ Supporto

HolyClaude è gratuito, open source e mantenuto da un singolo sviluppatore che lo usa ogni giorno.

Se ti ha fatto risparmiare tempo, ecco come puoi aiutare:

  • Metti una stella a questo repo — è la singola cosa più importante che puoi fare per la visibilità
  • Condividilo — dillo a un amico, postalo, twittalo
  • Apri issue — segnalazioni di bug e richieste di funzionalità rendono HolyClaude migliore per tutti
  • Contribuisci — le PR sono sempre benvenute

PayPal Buy Me A Coffee

↑ torna in cima


📜 Software di terze parti

L'immagine Docker di HolyClaude include software di terze parti, ognuno con la propria licenza. Componenti principali:

Componente Licenza Sorgente
CloudCLI GPL-3.0 siteboon/claudecodeui
s6-overlay ISC just-containers/s6-overlay
Node.js MIT nodejs/node

Consulta THIRD-PARTY-NOTICES per tutti i dettagli, inclusi gli avvisi di modifica. Il codice sorgente di HolyClaude è distribuito con licenza MIT.

↑ torna in cima


📄 Licenza

MIT — vedi LICENSE. Usalo come vuoi.

↑ torna in cima



Costruito da CoderLuii · coderluii.dev

Questo container è quello che uso ogni giorno. Se ti fa risparmiare anche solo metà del tempo di configurazione che ha fatto risparmiare a me, una stella sarebbe gradita.