rmm2/docs/DOCKER.md
cynfo3000 d312a33d9e docs: Docker-Installationsanleitung in docs/DOCKER.md
- 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)
2026-03-08 19:46:53 +01:00

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_HOST ist die IP-Adresse oder der Hostname des Servers auf dem Docker läuft — nicht localhost. 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 8443 was den Port belegt

Frontend zeigt „Verbindung fehlgeschlagen"

  • Prüfe ob BACKEND_HOST in .env die 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.