Move development runtime to isolated Athena Debian instance

This commit is contained in:
Mikei386
2026-09-28 15:42:53 +02:00
parent 2ad844ed20
commit 6d5671f75b
12 changed files with 95 additions and 65 deletions
+9 -7
View File
@@ -6,7 +6,8 @@ Einstellungen → Netzwerk bietet Installation, Conf-Import, Aktivieren/Deaktivi
Handshake-Status und die Modi **LAN**, **Tunnel**, **beides**. Diese Modi gelten
für die Server-Instanz von Athena Deck und alle ihre `/api/v1/*`-Endpunkte.
Produktive Router-, Modell-, Audio- und Bild-Endpunkte werden nicht übernommen.
Die lokale Mac-Instanz bleibt ein separater SSH-Verwaltungskanal.
Die aktuelle Debian-Entwicklungsinstanz verwendet dieses Modul noch nicht.
Die folgenden Angaben dokumentieren den separat getesteten Netzwerk-Prototyp.
Die Implementierung benutzt einen eigenen Container `athena-deck-network` mit
eigenem Netzwerk-Namespace. Im Container laufen ein eingeschränkter Root-Helper
@@ -23,7 +24,7 @@ Port-Veröffentlichung; eine Aussage „keinerlei Netzwerkänderung“ wäre daf
## Einrichtung in der Oberfläche
1. Auf dem Mac http://127.0.0.1:8108/#network öffnen.
1. Die Verwaltungsoberfläche über den SSH-Tunnel öffnen (separater Netzwerk-Prototyp).
2. Eigenes Deck-Passwort (mindestens 16 Zeichen) und separaten API-Token
(mindestens 32 Zeichen) vergeben, Token sichern und **Modul auf Athena
installieren** wählen. Installation läuft asynchron und meldet ihren Status.
@@ -33,7 +34,7 @@ Port-Veröffentlichung; eine Aussage „keinerlei Netzwerkänderung“ wäre daf
führt zum Status „Verbunden“. Ein geladenes Interface alleine genügt nicht.
5. Gewünschten Zugriffsmodus testen, die Zieladresse öffnen, dort anmelden und
innerhalb von 120 Sekunden bestätigen. Tunnel/beides muss über den Tunnel,
LAN über den LAN-Zugang bestätigt werden. Der Mac-Verwaltungskanal kann diese
LAN über den LAN-Zugang bestätigt werden. Der SSH-Verwaltungskanal kann diese
Bestätigung nicht ersetzen.
Ohne Bestätigung wird der vorige Modus wiederhergestellt. Gespeichert wird nur der
@@ -62,7 +63,7 @@ gezielten Wiederherstellung liegen. Automatische Updates/Reparatur bestehender
Installationen sind noch nicht implementiert.
Der neue Server verwendet aktuell HTTP. WireGuard schützt den Tunneltransport.
Für Einrichtung und Secrets aus entfernten Netzen den lokalen Mac-Verwaltungskanal
Für Einrichtung und Secrets aus entfernten Netzen den lokalen SSH-Verwaltungskanal
(SSH) verwenden. LAN-HTTP nur in einem vertrauenswürdigen Netz verwenden;
HTTPS/Reverse-Proxy-Zertifikate sind noch nicht enthalten. Passwort wird mit
PBKDF2-SHA256 (600.000 Iterationen, individuellem Salt) gespeichert. Sitzungen sind
@@ -79,7 +80,8 @@ ssh -i /Users/mike_i386/.ssh/athena_key -o BatchMode=yes \
Dann http://127.0.0.1:8110 öffnen. Dieser Zugriff zählt als LAN, nicht als
WireGuard-Bestätigung. Im Tunnel-only-Modus wird auch er gesperrt.
Die Mac-Oberfläche auf Port 8108 kann weiterhin per SSH den Helper verwalten.
Der frühere Remote-Verwaltungsadapter kann den Helper per SSH verwalten;
dieser Adapter ist in der Debian-Entwicklungsinstanz deaktiviert.
Zur Wiederherstellung dort Modus LAN testen, SSH-Tunnel öffnen und dort bestätigen.
Nur den neuen Container stoppen/starten:
@@ -125,7 +127,7 @@ serverseitige Prüfung des tatsächlichen Zugangs gelten vor dem API-Aufruf.
|---|---|
| POST `/login` | `password` |
| GET `/network` | Status ohne Secrets |
| POST `/network/install` | `password`, `api_token` für neue Server-Instanz, nur angemeldete Mac-Verwaltung |
| POST `/network/install` | `password`, `api_token` für neue Server-Instanz, nur angemeldete SSH-Verwaltung |
| POST `/network/import` | `config` als Dateiinhalt |
| POST `/network/connect` | `{}` |
| POST `/network/disconnect` | `{}` |
@@ -136,7 +138,7 @@ serverseitige Prüfung des tatsächlichen Zugangs gelten vor dem API-Aufruf.
`/network` liefert `installed`, `configured`, `enabled`, `connected`,
`latest_handshake`, `state`, `mode`, `pending`, `ingress`, URLs und ggf. Fehler.
Bei Nicht-Erreichbarkeit meldet die Mac-Ansicht ausdrücklich „noch nicht installiert
Bei Nicht-Erreichbarkeit meldet die Verwaltungsansicht ausdrücklich „noch nicht installiert
oder nicht erreichbar“; sie behauptet nicht, den Unterschied sicher zu kennen.
Anwendungsfehler geben HTTP 400, fehlende Sitzung 401, unerlaubter Host/Origin oder
Zugangsweg 403. Installation läuft als Hintergrundauftrag mit `job.state`.