MeshCenter im Docker-Container: Meshtastic-Basisstation auf dem Heim-NAS ohne Raspberry Pi

Letzte Aktualisierung: 17.10.2026

Autor: Konstantin Vinogradov (FlintUA)

💡 MeshCenter ist nicht mehr an den Raspberry Pi gebunden: Seit Version 1.11.0 läuft es auch in einem Docker-Container auf dem heimischen NAS oder Server – das Meshtastic-Funkgerät wird per WLAN angebunden.

💬 Als ich mit MeshCenter angefangen habe, war alles einfach: ein Raspberry Pi, das Funkgerät per USB, die Weboberfläche im Browser. Aber bei mir zu Hause läuft rund um die Uhr ein Synology-NAS, und der Gedanke „Wozu noch eine Platine, wenn das NAS ohnehin läuft?“ ließ mich nicht los. Außerdem wollte ich das Funkgerät dort aufstellen, wo der Empfang am besten ist – und nicht dort, wo der Computer steht.

So entstand der Servermodus: MeshCenter im Docker-Container auf dem NAS, das WLAN-Funkgerät auf dem Dachboden oder am Fenster, dazwischen nur das Heimnetz. In diesem Artikel erkläre ich, wozu das gut ist, was Sie gewinnen und worauf Sie verzichten – und in der zweiten Hälfte zeige ich Schritt für Schritt die Installation, auch wenn Sie noch nie mit Docker gearbeitet haben.

Probieren Sie es selbst aus: interaktive Online-Demo

Wie MeshCenter aussieht, können Sie direkt im Browser ausprobieren, ohne etwas zu installieren: MeshCenter Online-Demo. Die Oberfläche der Docker-Version ist identisch.


🎯 Warum MeshCenter im Container betreiben?

Eine Meshtastic-Basisstation soll dauerhaft laufen: Nachrichten empfangen, während Sie schlafen, Telemetrie sammeln, den Chatverlauf speichern. Üblicherweise nimmt man dafür einen Raspberry Pi. Aber nicht jeder möchte noch ein Gerät anschaffen und pflegen:

  • 🗄️ viele haben zu Hause bereits ein NAS, das ohnehin rund um die Uhr läuft – mit RAID, Backups und oft mit USV;
  • 🍓 ein Raspberry Pi will separat gepflegt werden: SD-Karte, Netzteil, Systemupdates;
  • 📡 das Funkgerät steht am besten dort, wo der Empfang gut ist – auf dem Dachboden, am Fenster, am Mast – und nicht neben dem Computer.

Die Lösung ist einfach: Das Meshtastic-Funkgerät mit WLAN hängt im Heimnetz, MeshCenter läuft im Container auf dem NAS und spricht über das Netzwerk (TCP) mit dem Funkgerät. Ein separater Computer neben dem Funkgerät ist nicht nötig – das Funkgerät braucht nur Strom.

  [ Meshtastic-Funkgerät ] ── WLAN ── [ Router ] ── LAN ── [ NAS: MeshCenter-Container ]
   (Dachboden / Mast)                                                │
                                              Browser auf PC, Tablet, Smartphone

✅ Für wen eignet sich der Servermodus?

  • 🗄️ für Besitzer eines Synology- oder anderen NAS mit Intel/AMD-Prozessor;
  • 🖥️ für alle mit einem Heimserver oder Mini-PC mit Docker;
  • 💾 für alle, denen zentrale Backups wichtig sind und die keine separate Platine pflegen möchten;
  • 📡 wenn das Funkgerät räumlich getrennt vom Computer stehen soll.

🍓 Wer besser beim Raspberry Pi bleibt

  • 📷 wer Kamera, E-Paper-Display oder Sensoren (BME280, DS3231-Uhr) braucht;
  • 🔌 wenn das Funkgerät kein WLAN hat – z. B. nRF52-Boards (RAK4631, T-Echo);
  • 📱 wenn das Smartphone mit dem Funkgerät verbunden bleiben soll, während MeshCenter läuft (mehr dazu unten);
  • ⚡ wer die einfachste Installation möchte: SD-Karte beschreiben und einschalten.

💡 Es gibt noch eine dritte Variante. Auf jedem Computer oder Server mit Debian/Ubuntu lässt sich MeshCenter auch ohne Docker über die normale manuelle Installation (install.sh) einrichten. Das Funkgerät wird dann per USB angeschlossen, und alle Funktionen stehen zur Verfügung. Docker ist also nicht der einzige Weg ohne Raspberry Pi, sondern die Variante speziell für NAS und Server, auf denen man keine Software direkt ins System installieren möchte.


⚖️ Raspberry Pi oder Docker: der Vergleich

Raspberry Pi (klassisch)Docker (Servermodus)
Wo es läufteigene Pi-PlatineNAS oder Server, den Sie schon haben
Anbindung des FunkgerätsUSB (empfohlen), TCP, Bluetoothnur TCP über das Netzwerk
Kamera, Display, Sensorenjanein
Installationautomatisch von der SD-KarteImage bauen + Compose
Updateper Knopf in der Oberflächedurch Austausch des Images
ProzessorARM (Pi Zero 2W, 3, 4, 5)x86-64 (Intel/AMD)
DatenspeicherSD-KarteNAS-Volume (RAID, Snapshots, Backups)

🏗️ So funktioniert es intern

Für alle, die wissen wollen, was in der „Kiste“ steckt. Das Image basiert auf python:3.11-slim (Debian) und ist etwa 350 MB groß (komprimiert etwa 80 MB).

  • 🧠 MeshCenter Core – Flask-Webanwendung unter gunicorn, immer genau ein Worker-Prozess;
  • 📡 Meshtastic-Adapter – ein eigener Prozess mit eigener Python-Umgebung und der offiziellen meshtastic-Bibliothek. Er kommuniziert mit Core über einen lokalen Kanal. So bleibt die GPLv3-Bibliothek vom MIT-lizenzierten Hauptcode getrennt – genau wie bei der normalen Installation;
  • ⚙️ tini als Init-Prozess – leitet Signale korrekt weiter und hinterlässt keine „Zombies“;
  • 🔒 normaler Benutzer statt root, alle Capabilities entzogen, Rechteausweitung verboten;
  • 🩺 Endpunkt /healthz – daran erkennt Docker, dass die Webanwendung läuft.

💾 Wo die Daten liegen

Alles Wichtige liegt außerhalb des Containers, in zwei Ordnern auf dem NAS:

Ordner auf dem NASIm ContainerInhalt
config//configconfig.py (wird beim ersten Start angelegt und nie überschrieben), Schlüssel der Wetterdienste
data//dataNachrichten, Knoten, Funkprofile, Kartenpunkte, MCAttach-Dateien, Einstellungen, Passwort-Hash, Ereignisprotokoll

Der Container kann gelöscht und neu erstellt, das Image aktualisiert oder zurückgerollt werden – die Daten bleiben erhalten.

🧭 Woran MeshCenter erkennt, dass es im Container läuft

Eine spezielle Umgebungsvariable schaltet den Container-Modus ein. Funktionen, die Hardware benötigen (USB, Kamera, Display, WLAN), lehnt der Server ab, und die Oberfläche blendet sie aus. Die Systemseite zeigt nur ehrliche Werte: Last, Arbeitsspeicher und Laufzeit des Hosts (der Container teilt sie mit dem NAS) sowie den Speicherplatz des Daten-Volumes. Platinenmodell und CPU-Temperatur kann der Container nicht zuverlässig ermitteln – deshalb werden sie ausgeblendet.

⏰ Uhrzeit. Ein Container kann nicht selbst prüfen, ob die Uhr synchronisiert ist. Die Variable MESHCENTER_TRUST_HOST_CLOCK=1 erlaubt, der Uhr des Hosts zu vertrauen – DSM synchronisiert sie per NTP. Davon hängen Zeitpläne und die Zeitsynchronisation des Funkgeräts ab. Die Zeitzone wird über TZ gesetzt.


📡 Verbindung über TCP: was Sie wissen sollten

Die Netzwerkverbindung ist der wichtigste Unterschied des Servermodus – und sie hat ihre Eigenheiten.

⚠️ Die Regel „ein Client pro Funkgerät“

Ein Meshtastic-Funkgerät bedient nur eine einzige TCP-Verbindung. Verbindet sich ein neuer Client, trennt das Funkgerät den vorherigen stillschweigend. Können sich beide automatisch neu verbinden, werfen sie sich gegenseitig endlos hinaus – jeder hält nur wenige Sekunden durch.

Das ist keine Theorie. Bei der Entwicklung der Docker-Version habe ich fast zwei Tage mit diesem Problem verbracht. Die Verbindung brach alle paar Minuten ab, und verdächtigt wurden nacheinander die Firmware des Funkgeräts, die TCP-Keepalive-Einstellungen und mein eigener Code. Die Ursache war ärgerlich simpel: Eine zweite MeshCenter-Instanz auf einem anderen Rechner war auf dasselbe Funkgerät eingestellt, und ihre Bibliothek verband sich jede Sekunde nach der Trennung still wieder neu. Sobald der zweite Client weg war, lief die Docker-Version rund 7 Stunden ohne einen einzigen Abbruch.

Daraus ergeben sich praktische Regeln:

  • 🚫 solange MeshCenter verbunden ist, nicht über das Netzwerk mit diesem Funkgerät verbinden – weder mit dem Smartphone noch mit einem zweiten MeshCenter oder einem Skript;
  • 📱 Smartphone nötig? Container stoppen, mit dem Smartphone arbeiten, Container wieder starten;
  • 🔁 bei mehreren MeshCenter-Installationen darf das TCP-Profil dieses Funkgeräts nur in einer davon aktiv sein.

MeshCenter erkennt diese Situation selbst: Brechen die Sitzungen immer wieder ab, erscheint im Node Manager der Hinweis „radio may be in use by another client“, und die Verbindungsversuche werden seltener, um nicht zu stören.

📶 WLAN und Bluetooth. Laut Meshtastic-Dokumentation funktionieren WLAN und Bluetooth auf ESP32-Boards nicht gleichzeitig: Wird WLAN aktiviert, schaltet sich Bluetooth ab. Ein Smartphone „parallel per Bluetooth“ zu verbinden, während MeshCenter über das Netzwerk arbeitet, ist daher nicht möglich.

🔄 Automatische Wiederherstellung der Verbindung

Fällt das Funkgerät weg – Stromausfall, WLAN weg, Router oder NAS neu gestartet –, gibt MeshCenter nicht auf und braucht keinen Neustart:

  • ⏳ es wartet etwa 25 Sekunden, damit das Funkgerät die alte Verbindung freigeben kann;
  • 🔁 versucht es erneut nach 30, 60, 90 Sekunden und danach alle 2 Minuten – ohne zeitliche Begrenzung;
  • 🪪 prüft bei jedem Versuch, ob sich dasselbe Funkgerät meldet – ein anderes Gerät unter derselben IP wird ohne Ihre Bestätigung nicht akzeptiert;
  • ⏱️ gilt die Verbindung erst als wiederhergestellt, wenn die Sitzung 20 Sekunden stabil war.

In der Oberfläche erscheint das als „Reconnecting… (attempt N, next in X s)“, und der Knopf Reconnect startet sofort einen Versuch. Der Node Manager zeigt die Zahl der Abbrüche in der letzten Stunde – kurze Aussetzer werden so nicht zum roten Alarmstatus.

Am echten Funkgerät getestet: Nach mehr als 20 Minuten ohne Strom stellte sich die Verbindung von selbst wieder her, ohne Neustart des Containers. Und um das Funkgerät zu schonen, fordert MeshCenter beim Wiederverbinden nur die Konfiguration ohne die vollständige Knotenliste an – etwa 1,2 KB statt 14 KB. Schwächeren ESP32-Boards tut das spürbar gut.

✔️ Zustellbestätigungen

In Version 1.11.0 funktionieren Zustellbestätigungen für Direktnachrichten („zugestellt ✓✓“) nur bei USB-Anbindung. Für TCP ist die Unterstützung bereits implementiert und am echten Funkgerät getestet – sie kommt mit der nächsten Version. Eine Nachricht gilt nur dann als zugestellt, wenn die Bestätigung vom Empfänger selbst kommt und nicht von einem Repeater unterwegs.


✅ Vorteile

  • ✅ Kein zusätzliches Gerät – MeshCenter läuft auf dem NAS, das ohnehin rund um die Uhr eingeschaltet ist.
  • ✅ Zuverlässige Datenhaltung – die Daten liegen auf dem NAS-Volume mit RAID, Snapshots und Hyper Backup; keine SD-Karte, die verschleißt oder bei Stromausfall beschädigt wird.
  • ✅ Freie Wahl des Standorts – das Funkgerät steht dort, wo der Empfang am besten ist; es braucht nur Strom und WLAN.
  • ✅ Isolation und Sicherheit – der Container läuft nicht als root, ohne überflüssige Rechte, und lässt das NAS-System unangetastet.
  • ✅ Einfaches Update und Rollback – neue Version = neues Image; gefällt sie nicht, nimmt man das alte zurück.
  • ✅ Leistung – der Prozessor eines NAS ist meist stärker als ein Raspberry Pi Zero 2W, die Oberfläche reagiert schneller.

⚠️ Einschränkungen

  • 📡 Nur TCP – das Funkgerät braucht WLAN (oder Ethernet) und aktivierten Netzwerkzugriff. USB und Bluetooth sind im Container deaktiviert.
  • 🖥️ Nur x86-64 – das Image wird für linux/amd64 gebaut. ARM-NAS und der Raspberry Pi werden in Docker derzeit nicht unterstützt.
  • 🔒 Ein Client pro Funkgerät – solange MeshCenter verbunden ist, können sich Smartphone und andere Programme nicht über das Netzwerk verbinden.
  • 📷 Keine hardwarebezogenen Funktionen – Kamera, E-Paper-Display, I2C-Sensoren und RTC, WLAN-Verwaltung, Neustart des Geräts.
  • 🔄 Kein eingebautes Update – eine neue Version wird als neues Image gebaut und geladen.
  • 📦 Kein fertiges Image – es muss selbst gebaut werden (einmal pro Version).
  • 📭 Nachrichten während eines Abbruchs können verloren gehen – das Funkgerät puffert sie nicht für einen Netzwerk-Client.
  • 🧪 Bisher nur auf Synology DS920+ getestet – auf anderen Systemen sollte es nach demselben Prinzip funktionieren, offiziell getestet sind sie aber noch nicht.

🔒 Sicherheit

  • 🔑 Beim ersten Start verlangt MeshCenter ein Passwort (mindestens 12 Zeichen). Legen Sie es sofort fest: Solange kein Passwort existiert, könnte jeder in Ihrem Netz die Installation „übernehmen“.
  • 🛡️ Alle Seiten und die API sind sitzungsgeschützt, ändernde Anfragen zusätzlich per CSRF-Token; wiederholte Fehlanmeldungen werden gebremst.
  • 🌐 MeshCenter arbeitet mit einfachem HTTP und ist für das Heimnetz gedacht. Geben Sie den Port nicht ins Internet frei – für Fernzugriff nutzen Sie ein VPN oder einen Reverse Proxy mit HTTPS.
  • 📁 Der Ordner data/ enthält Geheimnisse (Passwort-Hash, Sitzungsschlüssel, MCAttach-Schlüssel) – machen Sie ihn nicht öffentlich zugänglich.

🛠️ Schritt-für-Schritt-Installation auf Synology

Jetzt zur Praxis. Ich beschreibe die Installation auf einer Synology DS920+ (DSM 7.3) – darauf ist alles getestet. Bei anderen Systemen unterscheiden sich nur die Menübezeichnungen (dazu weiter unten).

📚 Ein paar Begriffe

  • 📦 Image – die fertige „Kiste“ mit dem Programm: darin ein minimales Linux, Python, MeshCenter und die meshtastic-Bibliothek. Wird einmal gebaut und ändert sich nicht.
  • ▶️ Container – eine laufende Instanz des Images. Er lässt sich stoppen, löschen und neu erstellen, ohne dass etwas verloren geht.
  • 📁 Ordner außerhalb (Volumes) – config/ und data/ auf dem NAS. Dort liegen alle Ihre Daten.
  • 📝 compose.yaml – eine Textdatei als „Rezept“: welches Image gestartet wird, auf welchem Port und welche Ordner eingebunden werden.

📋 Was Sie vorab brauchen

  • 🖥️ Ein NAS mit Intel/AMD-Prozessor. Prüfen auf Synology: Systemsteuerung → Infocenter → Allgemein → Prozessor.
  • 📦 Container Manager: Paket-Zentrum → Container Manager → Installieren.
  • 📡 Ein Meshtastic-Funkgerät mit WLAN. Aktivieren Sie in der offiziellen App das WLAN, verbinden Sie das Funkgerät mit dem Heimnetz und stellen Sie sicher, dass der Netzwerkzugriff (TCP, Port 4403) aktiv ist.
  • 📌 Eine feste IP für das Funkgerät. Reservieren Sie die Adresse im Router (DHCP-Reservierung) – sonst findet MeshCenter das Funkgerät nach einem Adresswechsel nicht mehr.
  • 💻 Einen Computer zum Bauen des Images mit Windows, macOS oder Linux, auf dem Docker Desktop und Git installiert werden können.

💻 Schritt 1: Image auf dem Computer bauen

Ein fertiges Image zum Herunterladen gibt es noch nicht (warum, steht in den Fragen und Antworten). Es zu bauen ist aber nicht schwer. Installieren Sie Docker Desktop und Git, laden Sie den Quellcode herunter und wechseln Sie auf ein Release – wirklich auf ein Release, nicht auf den aktuellen Entwicklungsstand:

git clone https://github.com/FlintUA/MeshCenter
cd MeshCenter
git checkout v1.11.0

Die aktuelle Versionsnummer finden Sie unter Releases. Bauen Sie nun das Image. Linux / macOS:

deploy/docker/build.sh

Windows (PowerShell) – der Befehl komplett, mit dem Punkt am Ende:

docker build --platform linux/amd64 --build-arg MESHCENTER_VERSION=1.11.0 -t meshcenter:1.11.0 .

Der Build dauert einige Minuten. Speichern Sie das Image anschließend als Datei, um es auf das NAS zu übertragen:

docker save -o meshcenter-1.11.0.tar meshcenter:1.11.0

💡 Die Datei ist etwa 350 MB groß. Das Image lässt sich auch direkt auf dem NAS aus dem Quellcode bauen, dafür braucht man aber Git und SSH, und auf dem NAS dauert es deutlich länger. Für Einsteiger ist der Weg über den Computer einfacher.

📁 Schritt 2: Ordner und Berechtigungen

Legen Sie in der File Station den Ordner /volume2/docker/meshcenter/ an und darin zwei Ordner: config und data. Liegt Ihr freigegebener Ordner docker auf dem ersten Volume, schreiben Sie volume1 (hier und im Folgenden).

[📷 Platz für Screenshot: File Station mit den Ordnern config und data]

Aus Sicherheitsgründen läuft der Container nicht als Administrator, sondern als normaler Benutzer – und dieser braucht Schreibrechte für die beiden Ordner. Dafür benötigen Sie SSH:

  1. SSH aktivieren: Systemsteuerung → Terminal & SNMP → SSH-Dienst aktivieren;
  2. vom Computer aus verbinden (unter Windows in PowerShell): ssh ihr_benutzer@IP-des-NAS;
  3. sudo -i ausführen (das System fragt nach dem DSM-Passwort).

Geben Sie die Befehle anschließend einzeln ein. Ermitteln Sie zuerst die numerischen IDs des Benutzers:

id ihr_benutzer

Die Antwort sieht etwa so aus: uid=1026(...) gid=100(users). Die Zahl nach uid ist die PUID, die nach gid die PGID. Übergeben Sie die Ordner diesem Benutzer (Ihre Zahlen einsetzen):

chown -R 1026:100 /volume2/docker/meshcenter/config /volume2/docker/meshcenter/data

💡 Das Image ist standardmäßig auf 1026:100 ausgelegt – der erste angelegte Synology-Benutzer hat meist genau diese Werte. Haben Sie andere Zahlen, tragen Sie sie in die compose.yaml ein (Schritt 4).

📦 Schritt 3: Image auf das NAS laden

Ohne Kommandozeile: Container Manager → Image → Importieren → Aus Datei hinzufügen → meshcenter-1.11.0.tar auswählen.

[📷 Platz für Screenshot: Container Manager → Image → Importieren]

Oder per SSH: Kopieren Sie die Datei über die File Station auf das NAS und führen Sie aus:

docker load -i /volume2/docker/meshcenter/meshcenter-1.11.0.tar

Danach erscheint das Image meshcenter:1.11.0 in der Image-Liste, und die .tar-Datei kann gelöscht werden.

📝 Schritt 4: Die Datei compose.yaml

Legen Sie im Ordner /volume2/docker/meshcenter/ eine Textdatei compose.yaml mit folgendem Inhalt an:

name: meshcenter
services:
  meshcenter:
    container_name: meshcenter
    image: meshcenter:1.11.0
    user: "1026:100"            # PUID:PGID aus Schritt 2
    restart: unless-stopped
    ports:
      - "5080:5000"            # Port 5000 belegt auf Synology DSM selbst
    environment:
      TZ: Europe/Berlin        # Ihre Zeitzone
      MESHCENTER_TRUST_HOST_CLOCK: "1"
    volumes:
      - ./config:/config
      - ./data:/data
    hostname: meshcenter
    cap_drop: [ALL]
    security_opt: ["no-new-privileges:true"]
    stop_grace_period: 30s
  • image – Name und Version des Images aus Schritt 3;
  • ports: "5080:5000" – MeshCenter ist über Port 5080 des NAS erreichbar;
  • MESHCENTER_TRUST_HOST_CLOCK – der NAS-Uhr vertrauen; ohne diese Einstellung funktionieren Zeitpläne und die Zeitsynchronisation des Funkgeräts nicht;
  • cap_drop und no-new-privileges – der Container erhält keine überflüssigen Rechte.

🚀 Schritt 5: Starten

Container Manager → Projekt → Erstellen: Name meshcenter, Pfad /volume2/docker/meshcenter, Quelle „vorhandene compose.yaml verwenden“, weiter – fertig.

[📷 Platz für Screenshot: Container Manager → Projekt → Erstellen]

Per SSH geht es so:

cd /volume2/docker/meshcenter
docker compose up -d

🔑 Schritt 6: Erste Anmeldung und Einrichtung

  1. Öffnen Sie im Browser http://IP-des-NAS:5080. Der erste Start kann bis zu einer Minute dauern.
  2. Es erscheint die Ersteinrichtung – legen Sie sofort ein Passwort fest.
  3. Öffnen Sie den Node Manager, wählen Sie die Suche per TCP, geben Sie die IP des Funkgeräts und den Port 4403 ein und bestätigen Sie. MeshCenter startet sich selbst neu.
  4. Für die Dateiübertragung (MCAttach) geben Sie die Nummer Ihres privaten Kanals an: Öffnen Sie config/config.py und setzen Sie MCA_CONTROL_CHANNEL_INDEX = 1 (die Nummer ist die Position des Kanals in der Meshtastic-App: 0 – Primärkanal, 1 – erster Sekundärkanal usw.). Starten Sie das Projekt danach neu.

[📷 Platz für Screenshot: Node Manager: Funkgerät per TCP verbinden]

🔒 Wichtig: MeshCenter verwendet für die Steuerdaten von MCAttach bewusst nicht den öffentlichen Kanal – deshalb ist die Dateiübertragung ohne diese Einstellung deaktiviert.


🔄 Im Alltag

  • 📱 Funkgerät für das Smartphone freigeben – Projekt im Container Manager stoppen, mit dem Smartphone arbeiten, trennen und das Projekt wieder starten.
  • 🌙 NAS herunterfahren – den Container müssen Sie nicht manuell stoppen: Nach dem Hochfahren startet er von selbst. Ein manuell gestoppter Container bleibt nach einem Neustart dagegen aus.
  • ⬆️ Update – auf dem Computer ein neues Image bauen (git checkout auf die neue Version, Build, docker save), importieren, die Version in der Zeile image: ändern und das Projekt neu starten. Die Datenordner bleiben unberührt.
  • ↩️ Rollback – die vorherige Version in image: eintragen, sofern das alte Image noch in der Liste ist.
  • 💾 Backup – Projekt stoppen, config/ und data/ kopieren (z. B. mit Hyper Backup), wieder starten. Daten eines laufenden Containers sollte man nicht kopieren: Darin liegen SQLite-Datenbanken.
  • 📜 Logs – Container Manager → Container → meshcenter → Protokoll oder docker compose logs -f.

🗄️ Andere NAS und normale Linux-Server

Der Ablauf ist überall gleich: Image bauen → laden → Ordner config und data mit Berechtigungen → compose.yaml → starten. Es unterscheiden sich nur die Menübezeichnungen:

  • 📦 QNAP – Container Station → Images → Import, danach Applications → Create mit derselben compose.yaml;
  • 📦 Unraid – Plugin Compose Manager oder Container manuell mit denselben Port- und Ordnerangaben anlegen;
  • 📦 TrueNAS SCALE – Apps → Custom App;
  • 🐧 Debian/Ubuntu-Server – docker und docker compose installieren, Ordner anlegen, chown ausführen, compose.yaml ablegen und docker compose up -d starten.

Diese Systeme sind noch nicht getestet. Die Voraussetzungen sind überall dieselben: x86-64-Prozessor und Funkgerät mit TCP-Zugriff.


🩺 Häufige Fehler

Was Sie sehenUrsache und Lösung
Container stoppt sofort, im Protokoll „not writable“Falsche Berechtigungen auf config/ oder data/ – Schritt 2 wiederholen und user: prüfen
Seite öffnet sich nicht auf Port 5000Auf Synology belegt DSM den Port 5000 – 5080:5000 verwenden
Funkgerät verbindet sich und fällt wieder abEin zweiter Client ist verbunden: Smartphone, anderes MeshCenter, Programm auf dem PC
„may be in use by another client“Dasselbe – das Funkgerät wird von einem anderen Client belegt
„Reconnecting…“ hängt langeFunkgerät aus, nicht im Netz oder neue IP – DHCP-Reservierung im Router prüfen
MCAttach: „control channel index None“MCA_CONTROL_CHANNEL_INDEX nicht gesetzt (Schritt 6)
Zeitpläne lösen nicht ausMESHCENTER_TRUST_HOST_CLOCK und die NAS-Uhrzeit prüfen
Falsche UhrzeitFalsches TZ in der compose.yaml
„not available in a container“Die Funktion braucht Hardware – im Container nicht verfügbar

❓ Fragen und Antworten

Läuft die Docker-Version auf dem Raspberry Pi?

Noch nicht – das Image wird nur für x86-64 gebaut. Für den Raspberry Pi gibt es die normale Installation, und die kann mehr: USB, Kamera, Display, Sensoren.

Und unter Windows oder macOS mit Docker Desktop?

In der Entwicklung hat das funktioniert, offiziell unterstützt wird es aber nicht: Docker Desktop ist für die Entwicklung gedacht, nicht für den Dauerbetrieb. Für eine dauerhafte Station nehmen Sie ein NAS oder einen Linux-Server.

Kann ich das Funkgerät per USB ans NAS hängen und in den Container durchreichen?

In der aktuellen Version nicht. Hängt das Funkgerät per USB an einem Linux-Rechner, ist es einfacher, MeshCenter direkt auf diesem Rechner zu installieren – ohne Docker.

Was passiert, wenn das NAS nachts abgeschaltet wird?

Nichts Schlimmes: Der Container stoppt mit dem NAS und startet nach dem Einschalten wieder. Nachrichten, die eintreffen, während das NAS aus ist, sieht MeshCenter allerdings nicht.

Kann ich zwei MeshCenter an einem Funkgerät betreiben?

Gleichzeitig über TCP – nein, sie werfen sich gegenseitig hinaus. Möglich ist aber ein Raspberry Pi mit einem Funkgerät per USB und das NAS mit einem anderen Funkgerät per TCP.

Warum gibt es kein fertiges Image auf Docker Hub?

Im Image steckt die Bibliothek meshtastic unter der GPLv3. Für die Verteilung fertiger Images braucht es eine entsprechende Dokumentation zu Quellcode und Lizenzen, und die ist noch nicht fertig. Bis dahin bitte ich darum, das Image selbst für den privaten Gebrauch zu bauen und keine fertigen Images zu veröffentlichen.

Woran erkenne ich, dass der Container ordnungsgemäß läuft?

Im Container Manager hat der Container den Status healthy – die Webanwendung antwortet. Den Zustand der Verbindung zum Funkgerät zeigt die Oberfläche selbst: das Symbol in der Kopfzeile und der Node Manager.


💎 Fazit

Die Docker-Version von MeshCenter ist ein Servermodus für alle, die bereits ein NAS oder einen Heimserver haben und ihr WLAN-Funkgerät an einem günstigen Ort aufstellen können. Sie erhalten zuverlässige Datenhaltung, Isolation, einfache Updates und kommen ohne zusätzliches Gerät aus. Im Gegenzug entfallen die hardwarebezogenen Funktionen, und die Regel „eine Netzwerkverbindung pro Funkgerät“ muss eingehalten werden.

Brauchen Sie eine vollwertige Station mit allen Funktionen, nehmen Sie den Raspberry Pi mit USB-Funkgerät. Ist Ihnen „einrichten und vergessen“ auf dem ohnehin laufenden NAS wichtiger, ist der Servermodus das Richtige.

🔨 Aktueller Stand

  • ✅ die Docker-Version ist seit Version 1.11.0 Teil von MeshCenter;
  • ✅ getestet auf Synology DS920+ mit T-Beam: stundenlanger Betrieb ohne Abbrüche, automatische Wiederherstellung nach Ausfall des Funkgeräts;
  • 🔜 Zustellbestätigungen über TCP – in der nächsten Version;
  • 🔜 überarbeitete englischsprachige Docker-Dokumentation im Repository;
  • 💭 geplant: ein Image für ARM und fertige Images, sobald die Lizenzfragen geklärt sind.

Wenn Sie den Servermodus auf einem anderen NAS ausprobieren – QNAP, Unraid, TrueNAS –, berichten Sie gern in den Issues auf GitHub: Das hilft dem Projekt sehr. 📡

🔗 Links

Autor: Konstantin Vinogradov (FlintUA)

Elektroniker, Meshtastic-Enthusiast, Raspberry-Pi- und DIY-Projekt-Liebhaber.

Views: 0

Benachrichtigung über neue Artikel. Уведомления о новых статьях.

Erhalten Sie eine E-Mail, wenn ein neuer Artikel erscheint.
Получайте письмо, когда выходит новая статья.

Wir werden nicht spammen! Мы не спамим!
Datenschutzerklärung / Политика конфиденциальности

Schreibe einen Kommentar