OrbitHub auf dem Raspberry Pi installieren
Vom leeren Raspberry Pi bis zum ersten Satellitenüberflug
OrbitHub wurde für den selbst gehosteten Betrieb entwickelt und kann vollständig auf einem Raspberry Pi betrieben werden.
Diese Anleitung führt Schritt für Schritt durch die komplette Installation – von einem frisch eingerichteten Raspberry Pi OS über Docker bis zum ersten Aufruf von OrbitHub im Browser.
Vorkenntnisse mit Docker sind nicht erforderlich.
Was du benötigst
Für die Installation empfehlen wir:
- Raspberry Pi 3B oder neuer
- Raspberry Pi OS 64-Bit
- microSD-Karte mit ausreichend freiem Speicher
- Netzwerkverbindung per LAN oder WLAN
- Internetzugang während der Installation
- einen zweiten Computer, ein Tablet oder Smartphone zum Aufrufen der Weboberfläche
OrbitHub selbst läuft anschließend als Docker-Container auf dem Raspberry Pi.
1. Raspberry Pi OS installieren
Installiere zunächst ein aktuelles Raspberry Pi OS 64-Bit auf der microSD-Karte.
Am einfachsten geht dies mit dem Raspberry Pi Imager.
Während der Einrichtung empfiehlt es sich, bereits:
- einen Benutzernamen und ein Passwort festzulegen,
- WLAN zu konfigurieren, falls kein LAN verwendet wird,
- SSH zu aktivieren,
- einen eindeutigen Hostnamen für den Raspberry Pi festzulegen.
Anschließend die microSD-Karte in den Raspberry Pi einsetzen und das Gerät starten.
2. Mit dem Raspberry Pi verbinden
Wenn du direkt mit Bildschirm und Tastatur am Raspberry Pi arbeitest, öffne dort das Terminal.
Alternativ kannst du dich per SSH von einem anderen Computer verbinden.
Dafür benötigst du die IP-Adresse des Raspberry Pi.
Die aktuelle IP-Adresse kannst du auf dem Pi beispielsweise mit folgendem Befehl anzeigen:
hostname -I
Angenommen, dein Raspberry Pi hat die Adresse 192.168.178.71, kannst du dich von einem anderen Computer per SSH verbinden:
ssh BENUTZERNAME@192.168.178.71
BENUTZERNAME ersetzt du durch den bei der Einrichtung gewählten Benutzernamen.
3. Raspberry Pi aktualisieren
Vor der Installation sollte das Betriebssystem auf den aktuellen Stand gebracht werden:
sudo apt update
sudo apt full-upgrade -y
Anschließend empfiehlt sich ein Neustart:
sudo reboot
Nach dem Neustart gegebenenfalls erneut per SSH verbinden.
4. Git installieren
Git wird benötigt, um OrbitHub von GitHub herunterzuladen.
sudo apt install git -y
Anschließend prüfen:
git --version
Wird eine Versionsnummer angezeigt, ist Git einsatzbereit.
5. Docker installieren
OrbitHub läuft in einem Docker-Container. Dadurch sind die benötigten Komponenten sauber voneinander getrennt und die Installation lässt sich später einfach aktualisieren.
Für eine dauerhaft betriebene Installation würde ich Dockers offizielles APT-Repository verwenden und nicht das ebenfalls angebotene Convenience-Script. Docker selbst beschreibt dieses Script primär für Entwicklungs- und Testumgebungen.
Zunächst die benötigten Pakete installieren:
sudo apt update
sudo apt install ca-certificates curl -y
Dann den Schlüssel für das offizielle Docker-Repository einrichten:
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
Nun das Docker-Repository hinzufügen:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
Paketquellen aktualisieren:
sudo apt update
Docker Engine und Docker Compose installieren:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Diese Pakete entsprechen der aktuellen offiziellen Docker-Installation für Debian/ARM64.
6. Docker überprüfen
Prüfe zunächst, ob Docker läuft:
sudo systemctl status docker
Dort sollte unter anderem stehen:
active (running)
Mit Q kannst du die Statusanzeige wieder verlassen.
Nun folgt ein Funktionstest:
sudo docker run hello-world
Docker lädt dabei einen kleinen Testcontainer herunter und führt ihn aus.
Erscheint:
Hello from Docker!
funktioniert Docker.
Docker empfiehlt diesen hello-world-Test selbst zur Überprüfung einer neuen Installation.
Jetzt noch Docker Compose prüfen:
sudo docker compose version
Auch hier sollte eine Versionsnummer erscheinen.
7. Docker ohne sudo verwenden
Damit nicht vor jedem Docker-Befehl sudo eingegeben werden muss, kann dein Benutzer zur Docker-Gruppe hinzugefügt werden:
sudo usermod -aG docker $USER
Danach am einfachsten den Raspberry Pi neu starten:
sudo reboot
Anschließend wieder anmelden.
Jetzt sollte:
docker ps
ohne sudo funktionieren.
Hinweis: Die Mitgliedschaft in der Docker-Gruppe verleiht dem Benutzer weitreichende Rechte auf dem System. Docker weist darauf in seiner Dokumentation ausdrücklich hin.
8. OrbitHub herunterladen
Jetzt kommt OrbitHub auf den Raspberry Pi.
Wechsle zunächst in dein Home-Verzeichnis:
cd ~
Dann das OrbitHub-Repository klonen:
git clone https://github.com/OrbitHubApp/orbithub.git
Anschließend in das neue Verzeichnis wechseln:
cd orbithub
9. OrbitHub vorbereiten
Die Beispielkonfiguration für den Beobachtungsstandort kopieren:
cp data/observer-settings.example.json data/observer-settings.json
Du musst die Datei für den ersten Start nicht zwingend manuell bearbeiten.
Rufzeichen, QTH, Locator, Koordinaten, Höhe und weitere Einstellungen können später bequem über die OrbitHub-Weboberfläche eingerichtet werden.
10. OrbitHub starten
Jetzt wird OrbitHub gebaut und gestartet:
docker compose up -d --build
Beim ersten Start kann dies etwas dauern, da Docker zunächst die benötigten Komponenten herunterladen und das OrbitHub-Image erstellen muss.
Anschließend prüfen:
docker compose ps
Der OrbitHub-Container sollte als laufend angezeigt werden.
11. OrbitHub im Browser öffnen
Jetzt benötigst du wieder die IP-Adresse des Raspberry Pi:
hostname -I
Hat der Raspberry Pi beispielsweise die IP-Adresse:
192.168.178.71
öffnest du auf einem Computer, Tablet oder Smartphone im selben Netzwerk:
http://192.168.178.71:8765
Willkommen bei OrbitHub! 🛰️
Die Weboberfläche läuft nun auf deinem eigenen Raspberry Pi.
12. OrbitHub einrichten
Nach dem ersten Start solltest du zunächst die Einstellungen öffnen.
Dort hinterlegst du deinen Beobachtungsstandort, unter anderem:
- Rufzeichen
- QTH-Name
- Maidenhead-Locator
- geografische Koordinaten
- Höhe des Standorts
- Mindestelevation
Optional kannst du eine individuelle Horizontmaske konfigurieren, damit Gebäude, Bäume oder Gelände bei den Vorhersagen berücksichtigt werden.
Anschließend können die aktuellen Bahndaten geladen und die ersten Satellitenüberflüge berechnet werden.
OrbitHub aktualisieren
OrbitHub wird laufend weiterentwickelt.
Wenn eine neue Version verfügbar ist, wechselst du zunächst in das OrbitHub-Verzeichnis:
cd ~/orbithub
Die aktuelle Version von GitHub herunterladen:
git pull
Danach OrbitHub mit dem aktuellen Stand neu bauen und starten:
docker compose up -d --build
Nicht mehr benötigte alte Docker-Images können gelegentlich entfernt werden:
docker image prune
Bei der Rückfrage mit y bestätigen.
OrbitHub neu starten
Nur OrbitHub neu starten:
cd ~/orbithub
docker compose restart
OrbitHub stoppen
cd ~/orbithub
docker compose down
Wieder starten:
docker compose up -d
Status überprüfen
cd ~/orbithub
docker compose ps
Protokoll anzeigen
Falls OrbitHub nicht startet oder ein Fehler auftritt:
cd ~/orbithub
docker compose logs
Für eine laufende Anzeige:
docker compose logs -f
Die Ausgabe kann mit Ctrl+C beendet werden.
Raspberry Pi neu starten
Ein normaler Neustart des Raspberry Pi erfolgt mit:
sudo reboot
Docker startet auf Debian-basierten Systemen normalerweise als Systemdienst; die konkrete automatische Wiederaufnahme des OrbitHub-Containers nach einem Reboot hängt zusätzlich von der Restart-Konfiguration in der Compose-Datei ab.
Geschafft!
OrbitHub läuft jetzt vollständig auf deiner eigenen Hardware.
Die Satellitenbahnen und Überflüge werden lokal für deinen Beobachtungsstandort berechnet. Der Raspberry Pi übernimmt damit die Rolle deines eigenen Satelliten-Orbit-Servers im lokalen Netzwerk.
73 und viel Spaß mit OrbitHub! 🛰️ Christian, DL7AG