Fehlerbehebung
Hier finden Sie Symptome, Ursachen und Abhilfemaßnahmen. Die meisten Probleme lassen sich mit 3 Befehlen eingrenzen:
cd /opt/kopens/plantpulse-studio-docker
bash bin/status.sh # ① 컨테이너 상태 + 헬스 + 세션 수
curl -s localhost:5170/health # ② 서버가 살아 있는가
docker logs --tail 100 pp-studio-server # ③ 무엇이 잘못됐는가
So lesen Sie Protokolle
| Ziel | Befehl |
|---|---|
| Studio-Server (am wichtigsten) | docker logs -f --tail 200 pp-studio-server |
| Web (nginx) | docker logs --tail 100 pp-studio-web |
| Datenbank (Bundle-Modus) | docker logs --tail 100 pp-studio-postgres |
| Builder-Sidecar | docker logs --tail 100 pp-studio-agent-server |
| Mit Skript verfolgen | bash bin/logs.sh (Standard-Server) · bash bin/logs.sh studio-web |
| Automatische Sicherung | tail -50 dist/backup.log |
| App-Sitzungscontainer | docker ps --filter label=plantpulse-studio=1 zum Überprüfen des Namens, dann docker logs <name> |
docker logs --since 30m pp-studio-server
docker logs --since "2026-07-28T09:00:00" pp-studio-server
API-Schlüssel und Token werden nicht in Protokollen protokolliert (in Audit-Protokollen nur Fingerabdrücke statt Werte). Wenn Sie Protokolle an das Support-Team weitergeben, müssen Sie nur Vor-Ort-Informationen wie Standortname und Anlagenname überprüfen.
Symptom → Schnelle Übersicht der Ursachen
| Symptom | Häufige Ursache | Überprüfen | Abhilfe |
|---|---|---|---|
| Weboberfläche wird gar nicht geöffnet | Stack läuft nicht oder Port 80 wird verwendet | bash bin/status.shdocker logs pp-studio-web | bash bin/start.sh · Andere Dienste bereinigen, die Port 80 verwenden |
| Oberfläche öffnet sich, Anmeldung schlägt fehl | Bootstrap-Konto nicht eingestellt oder Platform nicht erreichbar | grep STUDIO_LOCAL_USERS .envcurl -s localhost:5170/health | Konto in .env angeben, dann bash bin/restart.sh |
| Anmeldung wird plötzlich blockiert (nach kurzer Zeit wiederholen) | Anmelde-Ratenlimit (10 Versuche/Minute pro IP) | docker logs --tail 50 pp-studio-server | 1 Minute warten und dann erneut versuchen |
| Health bleibt DOWN, Protokoll zeigt DB-Authentifizierungsfehler | Vorhandene Daten, aber PG_PASSWORD wurde geändert | docker logs pp-studio-postgresdocker logs pp-studio-server | Auf ursprüngliches Passwort zurücksetzen oder Kontopasswort zunächst in PostgreSQL ändern |
| Projekt öffnen schlägt fehl (500) | Session Runtime Image nicht vorhanden | docker image inspect plantpulse-studio-runtime:latest | bash bin/start.sh erneut ausführen (für Air-Gap mit bin/load.sh importieren) |
| Vorschau/bereitgestellte App zeigt leeren Bildschirm (IP-Zugriff) | Port 5171 von Firewall blockiert | curl -I http://<server-ip>:5171/ | Port 5171 in Firewall öffnen |
Vorschau zeigt leeren Bildschirm + Konsole Mixed Content | Studio ist HTTPS, aber App-Assets werden über HTTP angefordert | Browser-Entwicklertools-Konsole | Proxy mit X-Forwarded-Proto $scheme hinzufügen → Domäne |
| Code behoben, aber Vorschau bleibt gleich | Proxy aktualisiert HMR-WebSocket nicht | Entwicklertools → Netzwerk → WS-Anfrage ist 101 | Zwei vhosts mit Upgrade/Connection Header hinzufügen |
| Build-Chat dauert lange, dann "Verbindungsfehler: network error" | Proxy-Timeouts ohne Datenübertragung (Standard 60 Sekunden) | Proxy-vhost-Konfiguration überprüfen | proxy_read_timeout 3600s zu beiden vhosts hinzufügen |
| Antwort kommt nicht in Echtzeit, sondern in Blöcken | proxy_buffering aktiviert (Standard) | 〃 | proxy_buffering off |
| Zugriff auf beliebige Domäne führt zu falschem Ort | Web nginx Config-Ladereihenfolge (erste server ist Standard-Server) | docker exec pp-studio-web ls /etc/nginx/conf.d | vhost-Dateinamen mit zz- beginnen lassen |
| Bereitgestellte App erhält 401 bei echten Daten | ① Sitzung vor Domänentrennung angemeldet ② Platform-Schlüssel nicht eingestellt | Abmelden → Erneut anmelden versuchen Umgebungseinstellungen → Platform-Registerkarte | ① Einmalig erneut anmelden ② PLATFORM_API_KEY eingestellt, dann bin/restart.sh |
| Schlüssel geändert, wird aber nicht angewendet | docker restart liest .env nicht erneut | Umgebungseinstellungen zeigen „Verwaltet durch Umgebungsvariable" | bash bin/restart.sh (oder docker compose up -d --force-recreate) |
| App-Build schlägt mit „Sidecar"-Fehler fehl | Builder-Sidecar nicht gestartet | docker ps --filter name=pp-studio-agent-servercurl -s localhost:8000/health | bash bin/restart.sh · Im Notfall in Umgebungseinstellungen → Agent zu integriertem Builder-Engine wechseln |
| Chat zeigt „AI-Provider nicht erreichbar" | AI-Adresse/-schlüssel Fehler, Gateway down | Umgebungseinstellungen → AI-Registerkarte → Verbindung testendocker logs --tail 50 pp-studio-server | Adresse/-schlüssel korrigieren → bin/restart.sh |
| 3D/große App-Build bricht in der Mitte ab | Unzureichender Speicher (Session Container Limit 2 GB, Host-Speicher) | docker stats · free -h | Gleichzeitig offene Projekte reduzieren · Host-Speicher aufrüsten |
| Automatische Sicherung läuft nicht | cron nicht installiert oder DB nicht erreichbar | cat /etc/cron.d/pp-studio-backuptail -50 dist/backup.log | sudo bash bin/install-backup-cron.sh neu installieren · DRYRUN=1 bash bin/restore.sh zum Überprüfen der DB-Erreichbarkeit |
| Festplatte voll | Ansammlung von Sicherungen und Build-Artefakten | df -hdu -sh dist /var/lib/pp-studio/* | Aufbewahrte Anzahl reduzieren (BACKUP_KEEP) · alte Sicherungen bereinigen |
| Nach Update wird alter Bildschirm angezeigt | Browser-Cache oder Image-Pull fehlgeschlagen | Browser Hard Refresh (Ctrl+Shift+R)bash bin/start.sh Pull-Ergebnis in Ausgabe | Registry-Anmeldung überprüfen, dann bash bin/start.sh erneut ausführen |
Detaillierte Diagnose
Wenn der Stack nicht hochfährt
cd /opt/kopens/plantpulse-studio-docker
bash bin/status.sh
docker ps -a --filter name=pp-studio # Exited 인 컨테이너 찾기
docker logs --tail 200 pp-studio-server
Wenn Container sich ständig neu starten (Restarting), finden Sie die Ursache in der letzten Zeile des Protokolls. Am häufigsten sind Datenbankverbindungsfehler und .env Wertfehler.
grep -E '^(DATABASE_URL|COMPOSE_PROFILES|PG_|DATA_ROOT|PLATFORM_API_TARGET)' .env
Installation auf „korrekten Zustand" auf einmal überprüfen
bash bin/smoke-install.sh
Überprüft Health, API für unauthentifizierte Einstellungen, Web-Antwort, tatsächliche Anmeldung, Session Runtime Image und Container-Status nacheinander und meldet das erste fehlgeschlagene Element.
App-Sitzungsprobleme (Projekt öffnen)
docker ps --filter label=plantpulse-studio=1 # 지금 떠 있는 세션 컨테이너
docker image inspect plantpulse-studio-runtime:latest >/dev/null && echo "런타임 이미지 OK"
- Sitzungscontainer werden nach 30 Minuten Inaktivität automatisch freigegeben — nicht vorhanden zu sein ist kein Fehler.
- Das Neustarten des Servers bereinigt automatisch verbleibende Sitzungscontainer.
- Mehrere Benutzer, die gleichzeitig öffnen, benötigen entsprechend viel Speicher (mit
docker statsüberprüfen).
Platform-Verbindungsprobleme (echte Daten)
Symptome sind normalerweise „Chat-Abfragen funktionieren, aber Werte kommen nicht zurück" oder „Anlagenliste ist leer".
- Überprüfen Sie den Verbindungsstatus in Umgebungseinstellungen → Platform Registerkarte.
- Überprüfen Sie, ob die
PLATFORM_API_TARGETAdresse in.envkorrekt ist. - Überprüfen Sie, ob
PLATFORM_API_KEYeingestellt ist → Geheimverwaltung - Überprüfen Sie das Serverprotokoll auf Platform-Aufrufffehler.
docker logs --tail 200 pp-studio-server | grep -i platform
Wenn Platform kurzzeitig ausfällt, wird die Watcher-Ausführung automatisch übersprungen (automatisch neu gestartet nach Neustart).
Domänen- und Proxy-Probleme
Symptome treten auf vielfältige Weise auf, aber die Ursache ist normalerweise eine fehlende Einstellung von vier Konfigurationen. Vergleichen Sie die Checkliste in Domäne und Reverse Proxy direkt.
Wiederherstellungsmöglichkeiten
| Situation | Abhilfe |
|---|---|
| Einstellungen falsch angepasst, Stack funktioniert nicht richtig | .env original wiederherstellen, dann bash bin/restart.sh |
| Daten beschädigt | Sicherung und Wiederherstellung — bash bin/restore.sh |
| Nach Update treten Probleme auf | .env der TAG auf vorherige Version fixieren, dann bash bin/start.sh |
| Bereitgestellte App hat Probleme | Auf der Studio-Oberfläche Rollback auf frühere Version im Bereitstellungsverlauf |
Hilfreich beim Einreichen einer Support-Anfrage
cd /opt/kopens/plantpulse-studio-docker
bash bin/status.sh > /tmp/pp-status.txt
docker logs --tail 500 pp-studio-server &> /tmp/pp-server.log
grep -vE 'KEY|TOKEN|PASSWORD' .env > /tmp/pp-env-safe.txt # 비밀 제외본
- Seit wann und bei welcher Operation tritt es auf
- Screenshot (noch besser mit Browser-Entwicklertools-Konsole)
- Installationsversion (
.envdesTAG) und Zugriffsmethode (IP / Domäne / mit oder ohne Proxy)
.env Original enthält API-Schlüssel. Erstellen Sie wie oben eine Kopie ohne Geheimnisse und senden Sie diese.