Harness MaxxingDocumentazione
📚 Tutte le pagine

🚀 Per iniziare · 11 min di lettura

🚀Installazione

Requisiti

  • Un server con Ubuntu 24.04 (testati: Ubuntu 22.04, 24.04 e 26.04, Debian 12; gli altri sistemi basati su apt di solito funzionano) con systemd, su x86_64 o arm64. Consigliati 2 vCPU, 4 GB di RAM e 40 GB di disco (gli strumenti per i video e lo scraping occupano circa 1,5 GB). Con meno di 4 GB di RAM e senza swap l'installer aggiunge un file di swap da 2 GB; con meno di 3 GB la trascrizione vocale locale resta disattivata, a meno che tu non la richieda.
  • Accesso root (sudo -i).
  • Un abbonamento Claude (Pro/Max) oppure una chiave API Anthropic.
  • Per l'accesso in HTTPS: un nome di dominio con il record DNS A/AAAA che punta al server, e le porte 80/443 aperte. In alternativa Tailscale, oppure un tunnel SSH.

Ti consigliamo un server dedicato a Harness Maxxing: per impostazione predefinita Claude funziona con tutti i permessi (vedi Sicurezza). Funziona anche un server che ospita già altre cose - vedi Installare su un server già in uso.

Installazione

Come root sul server (prima sudo -i se hai fatto l'accesso con un altro utente):

curl -fsSL https://get.harness-maxxing.com | bash

Ti fa tre domande (modalità di accesso, dominio, ripristino di un backup), poi clona il repository git pubblico (github.com/makushingu/harness-maxxing, branch stable = le versioni pubblicate) - nessuna chiave, nessun account. Gli aggiornamenti arrivano poi da quel branch (maxxing update). Installazione non presidiata: curl -fsSL https://get.harness-maxxing.com | ACCESS=domain DOMAIN=ui.example.com ASSUME_YES=1 bash. Harness Maxxing è gratuito con una licenza fair source: vedi Licenza.

Non viene richiesta nessuna chiave di licenza. Un'azienda che ha bisogno di una chiave Enterprise la inserisce dopo l'installazione, in Impostazioni → Licenza (oppure nel passaggio Su di te dell'onboarding); vedi Licenza.

Dopo le domande l'installer procede da solo, con un indicatore di avanzamento in tempo reale. I messaggi vocali sono attivati con il motore locale (sui server con almeno 3 GB di RAM) e il fuso orario si sceglie nell'onboarding web:

  1. controlla il server (root, apt, systemd, architettura) e se è già in uso (vedi sotto);
  2. installa tutti i pacchetti di sistema necessari in un'unica passata (git, curl, python3, gnupg, openssh-client, cron, ffmpeg, jq, ripgrep, ImageMagick, le librerie per il browser, unattended-upgrades, fail2ban...), attivando il componente universe di Ubuntu se l'immagine ne era priva; su un server piccolo senza swap aggiunge un file di swap da 2 GB;
  3. clona il codice in /opt/claude-maxxing; le tue personalizzazioni si appoggiano sopra, vedi Personalizzare;
  4. installa uv (la toolchain Python) in /usr/local/bin, il Python del server in /var/lib/claude-maxxing/tools/python e la CLI di Claude Code: ognuno in una versione fissata, il cui checksum è nell'elenco dei componenti della release, deps.toml - nulla di ciò che viene scaricato viene eseguito prima di essere verificato (vedi Sicurezza, "Download");
  5. crea l'ambiente Python e il comando maxxing, poi esegue maxxing init: configurazione, workspace, skill, job predefiniti;
  6. facoltativamente, ripristina la tua memoria da un backup;
  7. configura l'accesso (Caddy per un dominio, Tailscale, oppure solo locale);
  8. mette in sicurezza il server: aggiornamenti di sicurezza automatici, accessi SSH solo con chiave (solo quando è dimostrato che è sicuro, vedi Sicurezza), fail2ban per SSH e un firewall (ufw) che lascia passare solo SSH, 80/443 (dominio) o Tailscale - vedi Sicurezza (su un server già in uso, il firewall viene gestito con cautela: vedi sotto);
  9. installa e avvia il servizio claude-maxxing e verifica che risponda;
  10. mostra un link di configurazione monouso (valido un'ora);
  11. nel frattempo, in background, installa gli strumenti che Claude usa ogni giorno: Node.js 22, Remotion (video di motion design), Scrapling (web scraping) e un unico Chromium che condividono con la stampa dei PDF, più il modello vocale - vedi Video, PDF e immagini. maxxing deps list mostra a che punto sono.

Circa un minuto fino al link di configurazione su un server piccolo, uno o due minuti in più per gli strumenti. Una nuova esecuzione rifà solo ciò che è cambiato (circa 10 secondi). Per rieseguire una sola parte su un server esistente: bash /opt/claude-maxxing/install.sh --tools (= maxxing deps update) oppure --secure. I nomi tecnici mantengono l'ortografia originale: il servizio è claude-maxxing, il codice /opt/claude-maxxing, lo stato /var/lib/claude-maxxing.

Installare da una copia locale

Nessun download: decomprimi sul server un archivio di Harness Maxxing (con il suo web/dist già compilato) ed esegui il suo installer, bash /path/to/harness-maxxing/install.sh (oppure SOURCE_DIR=/path/to/harness-maxxing bash install.sh). Il codice viene copiato in /opt/claude-maxxing; un'installazione di questo tipo non ha una fonte di aggiornamento, quindi "Cerca aggiornamenti" è disattivato e maxxing update risponde "updates unavailable". Per aggiornarla, decomprimi la copia più recente ed esegui di nuovo il suo installer.

Componenti esterni

Tutto ciò che l'installer aggiunge oltre ai pacchetti di sistema è elencato, con versione e checksum, in server/maxxing/deps.toml e si gestisce con maxxing deps:

maxxing deps list      # installed and expected versions
maxxing deps verify    # checksums, and files another user could replace
maxxing deps update    # move to the versions of this release (each update does it on its own)
maxxing deps clean     # old versions, leftovers, oversized logs (also every Sunday); --caches: root's uv/npm/pip caches too
maxxing deps check     # known vulnerabilities (osv.dev; also every Monday, with a notification)

Su un'installazione fatta prima della 2.0.0-alpha.70, i due job settimanali vengono creati disattivati (pagina Cron: attivali se vuoi), e maxxing update lascia dove sono un Python del server funzionante e un uv che non ha installato lui (maxxing deps update python / uv li sposta). Node.js non viene mai collegato in /usr/local/bin quando il server ha già un suo node: Harness Maxxing usa la propria copia, i tuoi programmi mantengono la loro.

Ogni maxxing update li porta alle versioni della nuova release (installate accanto alle vecchie, attivate non appena funzionano). Claude Code si aggiorna da solo (Impostazioni -> Claude). I pacchetti di sistema (Caddy, ffmpeg, git...) ricevono i loro aggiornamenti di sicurezza da unattended-upgrades.

Apri il link: l'onboarding fa il resto.

Installare su un server già in uso

Prima di cambiare qualsiasi cosa, l'installer esamina il server e mostra un controllo del server: altri servizi raggiungibili dall'esterno, un web server sulle porte 80/443, un firewall attivo, Docker, altri job pianificati, un Node.js più vecchio, una configurazione esistente di Claude Code, altri bridge Telegram. Per vedere solo quel report (nulla viene modificato):

curl -fsSL https://get.harness-maxxing.com | bash -s -- --check

Quando il server è già in uso, l'installer chiede conferma e poi:

Cosa trova Cosa fa
altri servizi raggiungibili dall'esterno, oppure Docker non attiva il firewall (potrebbe tagliarli fuori). Per forzarlo: FIREWALL=1 bash /opt/claude-maxxing/install.sh --secure
un firewall ufw attivo mantiene le tue regole e aggiunge solo SSH (+ 80/443 per un dominio, + Tailscale)
nginx, Apache o un altro web server su 80/443 non installa Caddy; con un dominio, salva in /var/lib/claude-maxxing/reverse-proxy.conf il blocco reverse proxy da aggiungere al tuo web server
un Caddy che usi già aggiunge il proprio sito con una sola riga import, i tuoi siti restano come sono
altri job pianificati non cambia mai l'orologio del server: i tuoi job mantengono i loro orari, i job di Harness Maxxing girano agli orari che scegli nel tuo fuso
un Node.js già presente lo mantiene; Harness Maxxing ottiene il proprio Node.js 22 in /var/lib/claude-maxxing/tools/nodejs, usato solo dalle sue sessioni e dai suoi strumenti
porta 8787 occupata usa la prossima porta libera
Claude Code già autenticato, con skill o un ~/.claude/CLAUDE.md mantiene tutto e chiede: dare a Harness Maxxing una cartella Claude Code tutta sua (~/.claude-harness, l'opzione predefinita - la tua ~/.claude non viene toccata, accedi di nuovo nella configurazione web e porti le skill quando ti servono) oppure condividere ~/.claude (le sue istruzioni globali e le sue skill valgono allora anche per le sessioni di Harness Maxxing; una skill con lo stesso nome di una skill del prodotto viene prima spostata nel cestino). Senza terminale: cartella propria. Rieseguendo l'installer, la scelta fatta la prima volta viene mantenuta
un altro bridge o agente Telegram ti avvisa: dai a Harness Maxxing un nuovo bot (il token di un bot può essere letto da un solo programma)
accessi SSH con password attivi li disattiva solo quando è dimostrato che la sessione che esegue l'installer usa una chiave (te lo chiede prima, quando rispondi alle domande); altrimenti li lascia attivi, con un avviso
il tuo crontab, il jail SSH di fail2ban, le impostazioni degli aggiornamenti automatici mantenuti (Harness Maxxing modifica solo il proprio blocco del crontab)

maxxing uninstall elenca ciò che l'installer ha cambiato sul server (firewall attivato, SSH solo con chiave, fuso orario) e come annullarlo.

Modalità di accesso

Modalità URL Come
domain (consigliata) https://ui.example.com Caddy viene installato dal suo repository ufficiale, ottiene un certificato Let's Encrypt alla prima visita e inoltra a 127.0.0.1:8787. File del sito: /etc/caddy/claude-maxxing.caddy.
tailscale http://100.x.y.z:8787 Il server ascolta solo sull'IP di Tailscale: raggiungibile dai tuoi dispositivi Tailscale.
local http://127.0.0.1:8787 Ascolta solo su localhost. Dal tuo computer: ssh -N -L 8787:127.0.0.1:8787 root@<server> poi apri l'URL.

Il server non ascolta mai su 0.0.0.0 né su un indirizzo pubblico.

Installazione non presidiata

Rispondi a ogni domanda con le variabili e aggiungi ASSUME_YES=1:

curl -fsSL https://get.harness-maxxing.com | ACCESS=domain DOMAIN=ui.example.com ASSUME_YES=1 bash
Variabile Predefinito Significato
REPO, BRANCH makushingu/harness-maxxing, stable il repository git e il branch da cui arrivano il codice e gli aggiornamenti (stable = versioni pubblicate, main = lavori in corso)
GH_TOKEN – un token di sola lettura, solo per un fork o mirror privato (REPO=owner/name)
LICENSE – facoltativo: una chiave Enterprise, registrata alla fine (come Impostazioni → Licenza, vedi Licenza)
LICENSE_API https://api.harness-maxxing.com server delle licenze (verifica una chiave Enterprise)
INSTALL_DIR /opt/claude-maxxing codice + ambiente Python
WORKSPACE /root/maxxing il tuo workspace
STATE_DIR /var/lib/claude-maxxing configurazione e stato
PORT 8787 porta HTTP
ACCESS chiesto (local se non presidiata) domain, tailscale oppure local
DOMAIN – obbligatorio per domain
TIMEZONE fuso del sistema nome IANA, ad es. Europe/Paris. Di solito si sceglie invece nell'onboarding web. Su un server nuovo il fuso del sistema viene cambiato (timedatectl set-timezone) in modo che i job pianificati partano agli orari mostrati nell'interfaccia
SYSTEM_CLOCK auto follow = il fuso del sistema segue il tuo (predefinito su un server nuovo), keep = non toccarlo mai (predefinito su un server già in uso; i job girano comunque ai tuoi orari)
CLAUDE_DIR ~/.claude (~/.claude-harness quando Claude Code è già in uso e mantieni la risposta predefinita) cartella di Claude Code usata da Harness Maxxing; impostala per saltare la domanda. Un'altra cartella (ad es. /root/.claude-harness) la tiene separata da un Claude Code che usi già su questo server: skill, CLAUDE.md globale, conversazioni e accesso propri; la tua ~/.claude non viene toccata. Porta le skill una per una quando ti servono
RESTORE_FROM, RESTORE_TOKEN – ripristina un backup di memoria esistente (vedi sotto)
CLAUDE_TOKEN / ANTHROPIC_API_KEY – facoltativo: credenziali Claude memorizzate subito
FIREWALL auto auto = ufw solo su un server senza altro di esposto (un ufw attivo viene mantenuto, con regole aggiunte), 1 = sempre, 0 = mai (aggiornamenti di sicurezza e fail2ban vengono comunque configurati)
SSH_HARDEN auto auto = disattiva gli accessi SSH con password solo quando è dimostrato che questa sessione usa una chiave, 1 = anche quando è installata una chiave ma la sessione non può essere verificata (console, terminale web), 0 = non toccare mai SSH
VOICE local (off sotto i 3 GB di RAM) messaggi vocali: local (Whisper sul server, modello scaricato in background), groq, openai oppure off - vedi Messaggi vocali. VOICE=local su un server più piccolo viene chiesto, rifiutato se non presidiata
TOOLS background background = Node.js, Chromium, Remotion, Scrapling e il modello vocale vengono installati quando il servizio è in esecuzione, foreground = aspetta che finiscano, 0 = salta (poi maxxing deps update)
SWAP auto auto = un /swapfile da 2 GB sotto i 4 GB di RAM quando non c'è swap, solo su un server nuovo (non nei container, non su un server già in uso né in una riesecuzione), 1 = lo stesso su qualsiasi server, 0 = mai
SOURCE_DIR – installa questa copia locale del codice (vedi "Installare da una copia locale")
ASSUME_YES 0 1 = non chiedere mai, usa i valori predefiniti

Ripristino su un nuovo server

Stai passando a un nuovo server? Installa con il tuo repository di backup (con una chiave Enterprise, liberala prima sul vecchio server: Impostazioni → Licenza → Rimuovi la chiave, vedi Licenza):

curl -fsSL https://get.harness-maxxing.com | RESTORE_FROM=owner/memory-backup RESTORE_TOKEN=<token> bash

L'installer esegue maxxing backup restore --from owner/memory-backup dopo aver creato il workspace. Vedi Backup.

Rieseguire, aggiornare, disinstallare

  • Rieseguire l'installer in qualsiasi momento: ogni passaggio mantiene ciò che esiste (utile per cambiare la modalità di accesso o riparare un'installazione).
  • Aggiornare: maxxing update (oppure ... | bash -s -- --update). Scarica la nuova versione, riapplica le tue personalizzazioni sopra, sincronizza le dipendenze, aggiorna skill e template (mai i tuoi file), riavvia il servizio, verifica che risponda (altrimenti torna indietro) e mostra cosa è cambiato. Disponibile anche in Impostazioni -> Sistema e nel topic system/harness (system/update sui server più vecchi).
  • Disinstallare: maxxing uninstall (oppure ... | bash -s -- --uninstall) rimuove il servizio, il sito Caddy, il blocco del crontab, le skill del prodotto e il comando maxxing. Aggiungi --purge per eliminare anche il codice, la cartella di stato e ogni componente esterno aggiunto dall'installer (deps.toml: uv, Node.js, gli strumenti, Claude Code e Caddy quando li ha installati l'installer, il file di swap che ha creato), --purge-workspace per eliminare anche il workspace (irreversibile).

Verificare l'installazione

maxxing doctor

Ogni riga è ✔ (a posto), ! (avviso) oppure ✘ (problema), con un suggerimento per risolvere. Vedi Risoluzione dei problemi.

💡 Bloccato? Apri una sessione nel topic system › help e chiedi con parole tue: Claude legge questa documentazione sul tuo server e ti risponde.✏️ Migliora questa pagina