
Leichte OpenWRT-Geräteverwaltungsplattform für kleine Netzwerke. Zentrale Konfiguration, Überwachung und WLAN-Verwaltung für 2–20 Geräte mit einfacher Bereitstellung und OpenWISP-Kompatibilität.
*Warnung: Dies ist eine frühe Version, bitte lies die Release Notes ALLER bisherigen Releases*
# <img src="https://raw.githubusercontent.com/rubenbe/opensoho/HEAD/logo.svg" alt="OpenSOHO-Logo" width="40" /> OpenSOHO
Danke, dass du in Betracht ziehst, das Projekt zu unterstützen!
<a href="https://www.buymeacoffee.com/rubenbe" target="_blank"><img src="https://assets.kitploit.com/production/public/readmes/9350/485b634752d0d832ed936de61544bf16e5e54dc05146ccca080333c15097d455.png" alt="Buy Me A Coffee" height="41" width="174"></a>
[Dokumentation](https://opensoho.github.io/docs)
OpenSOHO wurde entwickelt, um eine kleine Anzahl von OpenWRT-basierten Netzwerkgeräten zu verwalten. Daher stammt der Name SOHO von Small Office Home Office (SOHO) Networks.
* Von 2 bis 20 Geräten (es gibt keine harte Grenze)
* Keine Mandantenfähigkeit
* Kompatibel mit openwisp-config und openwisp-monitoring.
* Einfach bereitzustellen
Es ist von OpenWISP inspiriert, zielt aber auf Netzwerke ab, die zu klein sind, um mit OpenWISP verwaltet zu werden.
Wie OpenWisp erwähnte:
> Allerdings ist OpenWISP möglicherweise nicht die beste Wahl für sehr kleine Netzwerke (weniger als 20 Geräte), für Organisationen ohne IT-Kenntnisse oder für Unternehmen, die ausschließlich aus Kostengründen nach Open-Source-Alternativen suchen.
<p align="center">
<a href="https://raw.githubusercontent.com/opensoho/assets/074a4c5c353fcbb295e2da84fb3490869c6c4de0/devices.png" target="_blank">
<img src="https://assets.kitploit.com/production/public/readmes/9350/5d363839ee3d28ed044c4de8249f4944be3e18ef8cb2e13d7b1c1a6a487fa1ce.png" width="80%" />
</a>
</p>
Die folgenden Versionen sind getestet
* OpenWRT 24.10.x DSA (Legacy-Unterstützung)
* OpenWRT 25.12.x DSA
# Erste Schritte mit OpenSOHO
## Überblick
Die Einrichtung von OpenSOHO erfordert einige einfache Schritte, die jeweils in den folgenden Abschnitten beschrieben werden:
* Installiere OpenSOHO auf deinem Server.
* Installiere die OpenWisp-Pakete auf deinen OpenWRT-Geräten.
* Konfiguriere OpenWisp auf jedem deiner OpenWRT-Geräte, um eine Verbindung zu OpenSOHO herzustellen.
* Beginne mit der Konfiguration in OpenSOHO!
## OpenSOHO installieren
* Lade die neueste OpenSOHO-Version herunter (oder verwende einen Docker-Container)
[Releases](https://github.com/rubenbe/opensoho/releases)
[Einrichtung mit Docker, Podman oder Kubernetes](https://opensoho.github.io/docs/containers/)
* Starte OpenSOHO
Wähle zunächst ein gemeinsames Geheimnis (Shared Secret), das es den OpenWRT-Geräten (mittels openwisp-config) ermöglicht, sich bei OpenSOHO zu registrieren.
Wähle für optimale Sicherheit eine lange zufällige Zeichenkette.
Sie muss mit dem übereinstimmen, was du in den nächsten Schritten in LuCI konfigurierst.
```sh
OPENSOHO_SHARED_SECRET=randompassphrase ./opensoho serve --http 0.0.0.0:8090
```
Nun gibt OpenSOHO eine URL auf der Kommandozeile aus, mit der du das Admin-Konto erstellen kannst.
Öffne die URL einfach in deinem Browser.
Alternativ kannst du das Admin-Konto über die Kommandozeile erstellen:
```sh
./opensoho superuser upsert EMAIL PASS
```
## Konfigurieren (Übernehmen) der OpenWRT-Geräte
### Installieren der OpenWISP-Pakete
```sh
opkg install openwisp-config openwisp-monitoring luci-app-openwisp # OpenWRT 24.10
apk add openwisp-config openwisp-monitoring luci-app-openwisp # OpenWRT 25.12+
```
Wenn Sie 802.11v-Client-Steering nutzen möchten, ist das vollständige wpad-mbedtls erforderlich.
Auf OpenWRT 24.10
```sh
opkg remove wpad-basic-mbedtls && \
opkg install wpad-mbedtls && \
service wpad restart
```
Auf OpenWRT 25.12+
```sh
apk del wpad-basic-mbedtls && \
apk add wpad-mbedtls && \
service wpad restart
```
Nachdem wpad-mbedtls installiert ist, versuchen Sie zuerst `service restart wpad`, andernfalls kann ein Neustart erforderlich sein, um auf die neue wpad-Binärdatei umzuschalten. Andernfalls erhalten Sie möglicherweise einen Fehler wie `daemon.notice netifd: radio1 (28210): WARNING (wireless_add_process): executable path /usr/sbin/wpad does not match process 1842 path (/usr/sbin/wpad (deleted))`.
(Bitte beachten Sie, dass das 802.11v-Client-Steering noch in Arbeit ist)
### OpenWISP in LuCI konfigurieren:
* Legen Sie nur die `Server URL` und das `Shared secret` fest.
* Hängen Sie *KEINEN* Schrägstrich an die `Server URL` an. Eine Beispiel-URL: `http://192.168.1.1:8090`
* Das Shared Secret ist der Wert, den Sie zuvor gewählt haben (`OPENSOHO_SHARED_SECRET`).
* Optional können Sie das `Update Interval` auf 30 Sekunden reduzieren, um schnellere Aktualisierungen zu erhalten. (OpenSOHO erledigt dies für Sie, falls nicht)
* OpenSOHO aktiviert außerdem die Überwachung und reduziert das Überwachungsintervall auf 15 Sekunden, um den Netzwerkstatus schneller zu aktualisieren.
Es wird dringend empfohlen, die Überwachung zu aktivieren, da OpenSOHO viele der aktuellen OpenWRT-Einstellungen ableitet und sie für eine einfache Konfiguration ausfüllt.
## OpenSOHO konfigurieren
* Warten Sie, bis sich das/die OpenWrt-Gerät(e) mit dem Shared Secret selbst registrieren.
* Setzen Sie das `Enabled`-Flag des Geräts auf true.
* Setzen Sie `numradios` auf den korrekten Wert. Für ein 2,4 + 5-GHz-Gerät wäre dieser Wert beispielsweise 2.
* Richten Sie einen Wifi-Access-Point ein (SSID+KEY). Dieses Verfahren ermöglicht es OpenSOHO, die Funkkonfiguration bei der Geräteregistrierung korrekt zu erkennen.
* Hängen Sie den konfigurierten Wifi-Access-Point an ein Gerät an, damit es konfiguriert wird.
* Derzeit wird jedes Netzwerk automatisch auf allen Funkmodulen konfiguriert (konfiguriert über `numradios`).
* Optional können auch Leds ein- oder ausgeschaltet werden (vorerst nur statische Konfiguration).
* Die Konfiguration von Funkfrequenzen wird jetzt unterstützt. OpenSOHO liest die aktuelle Funkkonfiguration einmalig ein und stellt sie unter der Funkkonfiguration zur Verfügung. Es kann ein bis zwei Minuten dauern, bis die Funkkonfiguration erscheint (die Konfigurations- und Überwachungsschritte benötigen etwas Zeit).
## Dashboard
OpenSOHO verfügt über ein einfaches Dashboard. Es ist über die Schaltfläche in der linken Seitenleiste direkt unter dem OpenSOHO-Logo erreichbar.
<p align="center">
<a href="https://raw.githubusercontent.com/opensoho/assets/636c6966e5bb33f6ef1fc0a7b0188307ad6865b6/dashboard.png" target="_blank">
<img src="https://assets.kitploit.com/production/public/readmes/9350/3b8f95d6bd1a3860d0aac83aa3e54eccb115aef24273ab9ba6d5d9a7591304e1.png" width="70%" />
</a>
</p>
Bitte beachten Sie, dass dies nicht als Ersatz für fortgeschrittenere Grafikwerkzeuge gedacht ist; es ist und bleibt bewusst einfach gehalten.
## Konfigurieren
OpenSoho ist jetzt über http://ipaddress:8090/_/ erreichbar
Es gibt mehrere Konfigurationssammlungen:
### Clients
Dies sind die mit dem Wifi verbundenen Clients. Diese Tabelle ist schreibgeschützt, mit Ausnahme des Alias.
Sie kann verwendet werden, um Geräten einen für Menschen lesbaren Namen zu geben. Dies funktioniert nur ordnungsgemäß, wenn der Client seine MAC-Adresse nicht randomisiert.
#### Verbundene Clients
Enthält die Liste der Clients, die derzeit mit Ihrem Wifi verbunden sind. Um die IP-Adresse des Geräts anzuzeigen, benötigt OpenSOHO Zugriff auf Ihre DHCP-Leases. Dazu muss der openwisp-Überwachungsdaemon auf dem Gerät laufen, das den DHCP-Server enthält. Geräte mit einer statischen IP erhalten keine IP. Dies ist eine bekannte Einschränkung in Version 0.12.0.
### Geräte
Dies sind die verbundenen Geräte.
* Verwenden Sie Aktivieren/Deaktivieren, um Konfigurationsaktualisierungen zu deaktivieren. Dies ist nützlich, um zu vermeiden, dass alle Geräte auf einmal aktualisiert werden. Die Überwachung bleibt aktiv.
* Der Gesundheitsstatus ist ein schreibgeschütztes Feld. `healthy` bedeutet, dass das Gerät innerhalb der letzten Minute kommuniziert hat. Wenn nicht, wird der Gesundheitsstatus `unhealthy` und möglicherweise stimmt etwas mit dem Gerät oder seiner Verbindung nicht.
* Leds ermöglicht die Auswahl von Led-Konfigurationen
* Numradios ermöglicht das Festlegen der Anzahl der Funkmodule auf dem Gerät. Dies wird nicht initial von OpenWisp gesendet, daher muss es vom Benutzer festgelegt werden.
* Wifis ermöglicht die Auswahl von SSIDs, die auf diesem Gerät angewendet werden sollen.
### DHCP-Reservierungen
Erstellen Sie eine Reservierung mit einem Hostnamen, einer MAC-Adresse, einer IPv4-Adresse und einem oder
mehreren DHCP-Servern. OpenSOHO fügt den gleichnamigen `config host`-Abschnitt zu
`/etc/config/dhcp` auf jedem ausgewählten Server hinzu. Löschen Sie die DHCP-Server-Auswahl, um
die Reservierung zu deaktivieren, ohne sie zu löschen. Namen, MAC-Adressen und IP-
Adressen sind innerhalb der Reservierungsliste eindeutig.
### Leds
* Grundlegende LED-Konfiguration (derzeit eher ein POC)
### Radios
* Ermöglicht das Festlegen der Frequenz für jedes Funkgerät.
* Das Band sollte nicht geändert werden, da dies OpenSOHO ermöglicht, die Frequenzkonfiguration zu überprüfen. Dies ist aufgrund von Einschränkungen innerhalb von PocketBase erforderlich.
### Wifi
* Ermöglicht die Einrichtung verschiedener SSIDs. Die Auswahl der Verschlüsselungsmodi ist derzeit eingeschränkt. WEP oder Open wird konstruktionsbedingt nicht unterstützt.
## Monitoring
### Geräteüberwachung
Überprüfen Sie, ob der Gerätezustand `healthy` ist.
### Verbundene Clients
Diese Ansicht zeigt alle WLAN-Clients, die innerhalb der letzten 30 Sekunden noch verbunden waren.
### Home Assistant-Integration
Die OpenSOHO-Überwachung kann in Home Assistant integriert werden. [(Weitere Informationen)](https://opensoho.github.io/docs/home-assistant/)
Diese REST-API ist für die Verwendung mit Home Assistant konzipiert, kann aber auch in andere Tools integriert werden.
## Fehlerbehebung
### Ein Gerät erneut registrieren
Wenn das Ändern der OpenWISP `Server URL` in LuCI nicht ordnungsgemäß beim neuen Controller zu registrieren scheint.
Um dies zu beheben:
```sh
uci delete openwisp.http.uuid
uci delete openwisp.http.key
/etc/init.d/openwisp-config restart
```
### Erste SSID wird nicht aktiviert
Es scheint ein Problem in OpenWRT zu geben, bei dem die erste konfigurierte SSID auf einem WLAN-Gerät nicht automatisch aktiviert wird.
Work-around: Klicken Sie in LuCI auf die Schaltfläche zum Aktivieren.
# Entwickler
* Installieren Sie die Abhängigkeiten
```sh
go mod tidy
```
* OpenSOHO starten
Das gemeinsame Geheimnis wird von openwisp-config zur Registrierung verwendet. Wählen Sie eine lange zufällige Zeichenkette für optimale Sicherheit.
Ausführen der Unit-Tests:
```sh
go test -cover -v -coverprofile=coverage.out
go tool cover -html=coverage.out
```
## Umfang
### Funktionen
Einige OpenWISP-Funktionen werden (derzeit) als außerhalb des Umfangs von OpenSOHO betrachtet
* Firmware-Updates: OpenWRT muss nicht häufig aktualisiert werden; verwenden Sie die Funktion „Attended sysupgrade“ auf jedem Gerät manuell.
* Mandantenfähigkeit
* Vorlagen: OpenWISP verfügt über einen leistungsstarken und vielseitigen Vorlagenmechanismus; dieser wird durch eine stärker meinungsbasierte Teilmenge von Funktionen ersetzt, um eine einfachere Konfigurationserfahrung zu bieten.
### Entwicklung
Das Ziel ist es, PocketBase bestmöglich zu nutzen. Kleine Änderungen können vorgenommen werden, da dem PocketBase-Backend derzeit ein Plug-in-System fehlt. Es ist jedoch nicht das Ziel, einen Fork von PocketBase zu erstellen, damit das Zusammenführen von Upstream-Änderungen unkompliziert bleibt.
### Veröffentlichung
```sh
GITHUB_TOKEN=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa goreleaser release
```