EOSdash (Port 8504) nicht erreichbar — Fix
Symptom: Port 8503 funktioniert, aber http://localhost:8504 liefert nichts (curl: "empty reply from server" / "connection was aborted").
Ursache
EOSdash bindet intern auf 127.0.0.1:8504 statt 0.0.0.0:8504. Die Umgebungsvariable EOS_SERVER__EOSDASH_HOST=0.0.0.0 wird vom EOSdash-Subprozess ignoriert (bekannter Bug?). Docker leitet Port 8504 zwar weiter, aber im Container lauscht nichts von außen erreichbar.
Prüfen lässt es sich im Log:
docker logs akkudoktoreos 2>&1 | grep "EOSdash server on" | tail -1
Zeigt es 127.0.0.1:8504, trifft dieser Fix zu.
Lösung
eosdash_host direkt in die Config-Datei /data/config/EOS.config.json schreiben.
Windows / PowerShell
# 1. Config OHNE BOM erzeugen
# (WICHTIG: normales "Set-Content -Encoding utf8" schreibt eine BOM,
# an der EOS mit "Unexpected UTF-8 BOM" crasht!)
#
# ACHTUNG: WriteAllText ueberschreibt die GESAMTE Config-Datei. Vorher den
# bestehenden Inhalt ansehen und uebernehmen:
# docker exec akkudoktoreos sh -c "cat /data/config/EOS.config.json"
# Die "version" unten ggf. an die eigene Installation anpassen.
$json = @'
{
"general": {
"version": "0.3.0.dev2602241610933529"
},
"logging": {
"console_level": "INFO"
},
"server": {
"host": "0.0.0.0",
"run_as_user": "eos",
"eosdash_host": "0.0.0.0",
"eosdash_port": 8504
}
}
'@
[System.IO.File]::WriteAllText("$env:TEMP\EOS.config.json", $json, (New-Object System.Text.UTF8Encoding($false)))
# 2. In den Container kopieren
docker cp "$env:TEMP\EOS.config.json" akkudoktoreos:/data/config/EOS.config.json
# 3. Neu starten
docker restart akkudoktoreos
# 4. Prüfen
docker logs akkudoktoreos 2>&1 | Select-String "EOSdash server on" | Select-Object -Last 1
Linux / macOS
ACHTUNG: ueberschreibt die GESAMTE Config-Datei. Vorher bestehenden Inhalt
ansehen und uebernehmen:
docker exec akkudoktoreos sh -c "cat /data/config/EOS.config.json"
"version" ggf. an die eigene Installation anpassen.
docker exec -u root akkudoktoreos sh -c 'cat > /data/config/EOS.config.json << EOF
{
"general": {
"version": "0.3.0.dev2602241610933529"
},
"logging": {
"console_level": "INFO"
},
"server": {
"host": "0.0.0.0",
"run_as_user": "eos",
"eosdash_host": "0.0.0.0",
"eosdash_port": 8504
}
}
EOF'
docker restart akkudoktoreos
docker logs akkudoktoreos 2>&1 | grep "EOSdash server on" | tail -1
Erfolg
Das Log zeigt jetzt:
Starting EOSdash server on 0.0.0.0:8504
→ http://localhost:8504 ist erreichbar.
Hinweise
-
Pfad
/data/config/EOS.config.jsonggf. anpassen (abhängig vonEOS_CONFIG_DIR). -
Unter Windows kein
Set-Content -Encoding utf8verwenden — die BOM lässt EOS crashen (Unexpected UTF-8 BOM (decode using utf-8-sig)), Container startet dann in einer Restart-Schleife. -
BOM-Check (erstes Zeichen muss
{sein, keine357 273 277-Bytes davor):docker exec akkudoktoreos sh -c "head -c 20 /data/config/EOS.config.json | od -c | head -1" -
Falls schon Felder in der Config stehen: ergänzen statt überschreiben (
server-Block umeosdash_host/eosdash_porterweitern). -
Speichert EOSdash später über die Weboberfläche Einstellungen, wird die Datei neu geschrieben — danach ggf. prüfen, ob
eosdash_hostnoch drinsteht. -
Der zugrunde liegende Env-Var-Bug wird upstream bearbeitet; ein späteres
docker pull akkudoktor/eos:latestkann diesen Workaround überflüssig machen.