- Schritt-fuer-Schritt vom ersten git clone bis zum ersten Login - Haeufige Aufgaben: Logs, Neustart, Update, Konfiguration aendern - Datensicherung: pg_dump Befehle - Troubleshooting: die haeufigsten Probleme - Port-Uebersicht - README: Docker-Quickstart auf 4 Zeilen reduziert, Verweis auf DOCKER.md - Actions-Workflow entfernt (keine fertigene Images noetig) - docker-compose.build.yml entfernt (vereinfacht)
4.8 KiB
Docker Installation
Diese Anleitung erklärt, wie du das RMM-System mit Docker auf einem Linux-Server installierst.
Voraussetzungen
- Linux-Server (Debian 12 / Ubuntu 22.04 oder neuer empfohlen)
- Mindestens 2 GB RAM, 10 GB freier Speicherplatz
- Docker und Docker Compose installiert
Docker installieren (falls noch nicht vorhanden):
curl -fsSL https://get.docker.com | sh
Das war es. Docker Compose ist seit Docker 2.x automatisch dabei (docker compose).
Installation
Schritt 1 — Repository klonen
git clone https://git.cynfo.net/christian/rmm2.git
cd rmm2
git checkout release
Schritt 2 — Konfigurationsdatei anlegen
cp .env.example .env
Öffne .env mit einem Texteditor und trage deine Werte ein:
nano .env
Die Datei sieht so aus:
# IP-Adresse oder Hostname dieses Servers
# (die Adresse über die du später im Browser das Frontend erreichst)
BACKEND_HOST=192.168.1.100
# Port des Backends — 8443 ist der Standard, nur ändern wenn nötig
BACKEND_PORT=8443
# Datenbank-Passwort — frei wählbar, wird nur intern verwendet
DB_PASSWORD=einSicheresPasswort123
# JWT-Secret — langer zufälliger String, mindestens 32 Zeichen
# Tipp: openssl rand -hex 32
JWT_SECRET=hierEinenLangenZufaelligenStringEintragen
# API-Key — frei wählbar, wird vom Frontend und den Agents verwendet
# Tipp: openssl rand -hex 16
API_KEY=hierEinenApiKeyEintragen
Wichtig:
BACKEND_HOSTist die IP-Adresse oder der Hostname des Servers auf dem Docker läuft — nichtlocalhost. Der Browser muss diese Adresse erreichen können, um mit dem Backend zu kommunizieren.
Schritt 3 — Starten
docker compose up -d
Beim ersten Start lädt Docker die benötigten Basis-Images (postgres, nginx etc.) und baut dann das Backend und das Frontend. Das dauert beim ersten Mal 3-5 Minuten.
Danach läuft das System und startet automatisch nach einem Server-Reboot neu.
Schritt 4 — Prüfen ob alles läuft
docker compose ps
Die Ausgabe sollte so aussehen:
NAME STATUS PORTS
rmm-db-1 Up (healthy) 5432/tcp
rmm-backend-1 Up 0.0.0.0:8443->8443/tcp
rmm-frontend-1 Up 0.0.0.0:80->80/tcp
Alle drei Services müssen Up zeigen. Wenn db noch starting zeigt, warte
20-30 Sekunden — die Datenbank braucht beim allerersten Start etwas länger.
Schritt 5 — Erster Login
Rufe das Frontend im Browser auf:
http://<BACKEND_HOST>
Beim ersten Start legt das Backend automatisch einen Admin-Account an. Die Zugangsdaten stehen im Backend-Log:
docker compose logs backend | grep -i "admin\|password\|passwort"
Häufige Aufgaben
Logs anschauen
# Alle Services
docker compose logs -f
# Nur Backend
docker compose logs -f backend
# Nur die letzten 50 Zeilen
docker compose logs --tail=50 backend
System stoppen und neu starten
# Stoppen (Daten bleiben erhalten)
docker compose down
# Starten
docker compose up -d
# Neu starten (z.B. nach Konfigurationsänderung)
docker compose restart backend
System aktualisieren
Nach einem git pull musst du die Images neu bauen:
git pull
docker compose build
docker compose up -d
Konfiguration ändern (.env wurde bearbeitet)
# Nach Änderung von BACKEND_HOST, API_KEY etc.:
docker compose up -d
Docker Compose erkennt automatisch, dass sich die ENV-Werte geändert haben und startet die betroffenen Container neu.
Datensicherung
Die Datenbank liegt in einem Docker Volume (pgdata). Um ein Backup zu erstellen:
# Backup erstellen
docker compose exec db pg_dump -U rmm rmm > rmm-backup-$(date +%Y%m%d).sql
# Backup wiederherstellen
docker compose exec -T db psql -U rmm rmm < rmm-backup-20260101.sql
Troubleshooting
Backend startet nicht
docker compose logs backend
Häufige Ursachen:
- Datenbank noch nicht bereit: Warte 30 Sekunden, dann
docker compose restart backend - Port 8443 belegt: Prüfe mit
ss -tlnp | grep 8443was den Port belegt
Frontend zeigt „Verbindung fehlgeschlagen"
- Prüfe ob
BACKEND_HOSTin.envdie richtige IP-Adresse ist - Prüfe ob Port 8443 in der Firewall freigegeben ist
- Teste direkt:
curl -sk https://<BACKEND_HOST>:8443/api/v1/health
Datenbank-Volume zurücksetzen (Achtung: löscht alle Daten)
docker compose down -v # -v löscht auch Volumes
docker compose up -d
Ports
| Port | Service | Beschreibung |
|---|---|---|
| 80 | Frontend | Web-Oberfläche (Browser) |
| 8443 | Backend | REST-API + WebSocket (Agents + Frontend) |
Port 80 und 8443 müssen von deinem Netzwerk erreichbar sein. Port 5432 (Datenbank) ist nur intern verfügbar.