🩺Fehlerbehebung
Der Punkt unten in der Seitenleiste
Er wird orange oder rot, wenn etwas deine Aufmerksamkeit braucht (Speicherplatz, Arbeitsspeicher, ein fehlgeschlagener geplanter Job, ein gestoppter Dienst, Claude nicht verbunden, ein altes Backup). Klicke darauf, um die Liste zu sehen. Gesehen bei einem Problem sorgt dafür, dass es nicht mehr im Punkt mitgezählt wird (es bleibt in der Liste, ausgegraut): Es kommt von selbst zurück, wenn es sich ändert - etwa weil ein weiterer Job fehlschlägt - oder nach 24 Stunden, falls es noch besteht. Der Pfeil neben einem als gesehen markierten Problem zählt es wieder mit. Die Markierungen werden auf dem Server gespeichert und gelten daher auf jedem Gerät.
Beginne mit dem Doctor
maxxing doctor # human readable, exit code 1 if something fails
maxxing doctor --json # for scripts and Claude
maxxing doctor --live # also makes a real one-line Claude call
Oder öffne eine Sitzung und sag: „Irgendetwas stimmt nicht, nutze den Skill maxxing-doctor.“ Claude liest die Prüfungen und die Logs, erklärt dir, was los ist, und behebt, was sich gefahrlos beheben lässt.
| Prüfung | Bedeutung |
|---|---|
| python, uv | Laufzeitumgebung und Toolchain |
| claude_cli, claude_auth | Claude Code ist installiert und angemeldet |
| claude_version | Claude Code liegt hinter seinem neuesten Release zurück (Info; Releases enthalten Sicherheitskorrekturen). Mit Einstellungen -> Claude -> Claude Code automatisch aktualisieren (standardmäßig aus) installiert der Server die stabile Version selbst, wenn 10 Minuten lang nichts gelaufen ist; der Hinweis nennt den Grund, falls es nicht geklappt hat - Lösung: claude update |
| skill_listing | wie viele Skills Claude in jedem Prompt sieht und wie groß sie sind; jenseits des Budgets von Claude Code verlieren die am wenigsten genutzten ihre Beschreibung (Info) - siehe Skills |
| deps | mit --deps: installierte Pakete (Server, Web, Video-Tools) mit bekannter Schwachstelle, laut osv.dev |
| setup | erste Anmeldung abgeschlossen |
| service, http | claude-maxxing läuft und antwortet |
| security | Firewall (ufw), fail2ban und automatische Sicherheitsupdates aktiv - nur eine Warnung; Lösung: bash /opt/claude-maxxing/install.sh --secure |
| state_files | eine beschädigte config.json / secrets.json wurde gefunden und ersetzt; ihre Kopie (*.damaged-<date>) liegt daneben - vergleiche sie, stelle Fehlendes wieder her (Schlüssel: Einstellungen -> Schlüssel) und lösche die Kopie |
| tools | Node.js, Remotion, Scrapling und der gemeinsame Chromium sind bereit (Videos, PDFs, Scraping) - nur eine Warnung; Lösung: maxxing deps update |
| deps_files | externe Komponenten (maxxing deps list): ✘, wenn sich eine Binärdatei seit der Installation geändert hat oder eine Datei nicht root gehört (ein anderer Benutzer könnte sie ersetzen), ! wenn eine fehlt oder nicht der Version dieses Releases entspricht; Lösung: maxxing deps update |
| bind | lauscht nicht auf einer öffentlichen Adresse |
| public_url, caddy | deine URL ist erreichbar, die Caddy-Konfiguration ist gültig |
| caddy_site | die Caddy-Site, die von einem älteren Installer geschrieben wurde: X-Frame-Options DENY (PDF-Vorschauen in Dateien bleiben leer) oder ein Größenlimit unter den 2-GB-Uploads - der Befehl zur Behebung bearbeitet /etc/caddy/claude-maxxing.caddy und lädt Caddy neu |
| crontab | jeder aktivierte Job steht in der Crontab |
| timezone | konfigurierte Zeitzone = Zeitzone des Systems (cron nutzt die des Systems) oder die Serveruhr bleibt erhalten (system_clock = keep) |
| telegram, backup | eingerichtet, verknüpft, aktuelles Backup |
| disk, workspace | freier Speicherplatz, Workspace beschreibbar |
| memory | RAM und Swap; ein Server mit weniger als 4 GB ohne Swap bekommt eine Warnung (jeder laufende Claude-Turn braucht 200-300 MB, lokale Sprachausgabe, Browser und Renderings mehr) sowie die Befehle, um eine 2-GB-Swap-Datei hinzuzufügen |
| skills, web | Produkt-Skills und der Build der Web-Oberfläche sind vorhanden |
| git | lokale Änderungen, verfügbare Updates |
Logs
journalctl -u claude-maxxing -n 100 --no-pager # server
journalctl -u caddy -n 50 --no-pager # HTTPS proxy
systemctl list-units 'maxxing-*' # running Claude turns
journalctl -u maxxing-<id8> --no-pager # one turn
maxxing cron list # jobs and their last result
Die Logs findest du auch unter Einstellungen -> System.
Häufige Probleme
Ein Befehl wurde „Killed“ (Exit-Code 137), oder ein aufwendiges Rendering wurde gestoppt.
Der Arbeitsspeicher ist ausgegangen. Jede Sitzung und jeder geplante Job darf höchstens 75 % des Server-RAMs nutzen: Darüber beendet der Kernel nur den größten Prozess dieser Sitzung, und Claude sagt dir Bescheid und macht weiter. Die Oberfläche und die anderen Sitzungen laufen normalerweise weiter (die Grenze gilt pro Sitzung: Mehrere aufwendige Sitzungen gleichzeitig können den RAM trotzdem füllen). Bitte Claude um einen schonenderen Weg (eine niedrigere Auflösung, ein Rendering in Teilen, weniger Eingaben auf einmal). Um die Grenze zu ändern, setze unit_memory_max in /var/lib/claude-maxxing/config.json ("4G", "90%" oder "" für keine Grenze): Sie gilt für die nächsten Turns und Jobs. Alle gleichzeitig laufenden geplanten Jobs teilen sich außerdem jobs_memory_max (Standard 75 %, von maxxing init gesetzt). journalctl -k | grep -i oom zeigt, was beendet wurde. Wenn der ganze Turn gestoppt wurde, steht in der Sitzung „The turn was stopped: the server ran out of memory“.
Etwas, das du auf dem Server gestartet hast (eine Dev-Seite, eine API auf Port 3000…), ist nicht erreichbar.
Die Firewall lässt nur SSH, 80/443 und Tailscale herein. Öffne den Port gezielt (ufw allow 3000/tcp) oder, besser, stelle den Dienst hinter Caddy auf deiner Domain bereit.
Der Installer bleibt bei „Claude Code“ stehen.
Er gibt das Ende der Ausgabe des Anthropic-Installers und die wahrscheinliche Ursache oberhalb des Fehlers aus (vollständiges Log: /tmp/maxxing-claude-install.log). Übliche Ursachen: downloads.claude.ai ist vom Server aus nicht erreichbar (DNS, ausgehende Firewall des Anbieters, eine vorübergehende Störung - er hat es bereits einmal erneut versucht), ein Land, in dem Claude nicht verfügbar ist (https://www.anthropic.com/supported-countries), eine volle Festplatte oder eine andere Architektur als x86_64 / arm64. Behebe das Problem und führe curl -fsSL https://get.harness-maxxing.com | bash erneut aus: Bereits abgeschlossene Schritte werden übersprungen. (Der Aufruf nach sudo -i ist in Ordnung: Claude Code wird für root installiert.)
Der Installer meldet „could not record the Enterprise key“.
Nur bei LICENSE=HM-… (ein Schlüssel ist nicht nötig: lass ihn weg). Die Installation selbst ist abgeschlossen; führe maxxing license activate aus, um den Grund zu sehen: unbekannter Schlüssel (prüfe ihn in deiner Lizenz-E-Mail), Schlüssel widerrufen oder bereits auf einem anderen Server aktiv (ein Schlüssel = ein Server): Führe maxxing license release auf dem Server aus, den du nicht mehr nutzt.
maxxing update meldet, der Server „still runs the code of a signed archive“.
Ein Server, der vor 2.0.0a87 mit einem Schlüssel installiert wurde, wechselt von selbst zum öffentlichen Git-Repository; die Meldung nennt, was ihn zurückhält (kein Netzwerk, Änderungen an web/ im Code-Ordner, ein noch nicht abgeschlossenes Update). Behebe das und führe maxxing update erneut aus.
Die Seite lädt nicht.
systemctl status claude-maxxing. Wenn der Dienst fehlschlägt, lies das Journal. Nach einem manuellen git pull führe stattdessen maxxing update aus (es synchronisiert die Abhängigkeiten). systemctl restart claude-maxxing ist unbedenklich: Laufende Claude-Turns laufen in ihren eigenen Units weiter.
Zertifikatsfehler / Domain nicht erreichbar.
Der DNS-Eintrag der Domain muss auf den Server zeigen (getent ahosts ui.example.com), und die Ports 80 und 443 müssen offen sein (ufw status, dazu die Firewall deines Hosting-Anbieters). Caddy holt das Zertifikat bei der ersten Anfrage: journalctl -u caddy zeigt, warum es fehlgeschlagen ist. Prüfe die Konfiguration: caddy validate --config /etc/caddy/Caddyfile --adapter caddyfile.
Passwort vergessen. Auf dem Server: maxxing password. Oder fang mit einem neuen Einrichtungslink von vorn an: maxxing setup-link --reset.
„Too many attempts“. Warte 15 Minuten oder starte den Dienst neu.
Einrichtungslink verloren. maxxing setup-link.
Alle Sitzungen schlagen gleichzeitig fehl. Claude ist nicht angemeldet oder der Token ist abgelaufen: Einstellungen -> Claude -> Test, oder maxxing doctor --live. Erneuere ihn mit claude setup-token.
Eine Sitzung bleibt auf „läuft“ stehen. Drücke Stopp. Wenn das nicht hilft: systemctl list-units 'maxxing-*' und lies das Journal dieser Unit.
Ein Hinweis sagt, die Unterhaltung konnte nicht fortgesetzt werden. Das Claude-Transkript fehlte; es wurde automatisch ein neuer Kontext gestartet. Der Verlauf bleibt sichtbar.
Ein Job ist nicht gelaufen. maxxing cron list (aktiviert? letztes Ergebnis?), crontab -l (steht seine Zeile im verwalteten Block?), maxxing cron sync, systemctl status cron. Führe ihn von Hand aus: maxxing cron run <id>.
Ein Job läuft zur falschen Uhrzeit. Der Cron-Daemon nutzt die Zeitzone des Systems, die Oberfläche die aus Einstellungen -> Allgemein. maxxing doctor zeigt beide an. Auf einem geteilten Server behalte die Serveruhr bei und lass die Jobs deiner Zeitzone folgen: maxxing init --system-clock keep. Andernfalls gleiche sie an: timedatectl set-timezone <Zone> && systemctl restart cron und maxxing init --timezone <Zone> && systemctl restart claude-maxxing.
Telegram schweigt. maxxing telegram status zeigt den letzten Fehler; maxxing telegram test. Siehe Telegram.
Backup fehlgeschlagen. maxxing backup status. Abgelaufener Token, öffentlich gemachtes Repository oder ein Geheimnis in einer Datei (die Meldung nennt die Datei). Siehe Backup.
Festplatte voll. Prüfe ~/.claude/projects (Transkripte), Anhänge in Themen und das Journal (journalctl --vacuum-size=200M). Lösche mit Vorsicht: Die Transkripte werden gebraucht, um Sitzungen fortzusetzen.
Die Oberfläche sieht nach einem Update veraltet aus. Lade die Seite neu; das HTML der App wird nie zwischengespeichert, ein Neuladen genügt.
Die Tailscale-URL funktioniert nach einem Neustart nicht mehr. Wenn sich die Tailscale-IP geändert hat, führe den Installer erneut mit ACCESS=tailscale aus (oder maxxing init --bind <ip> --public-url http://<ip>:8787 und starte den Dienst neu).
Immer noch nicht weitergekommen?
Sammle maxxing doctor --json und die letzten 200 Zeilen von journalctl -u claude-maxxing (prüfe, dass sie keine Geheimnisse enthalten) und wende dich an den Support.