Guide: Lean Hosting – Mehrere Services in einem LXC am Beispiel vom 'homer' Dashboard
Wer im Self-Hosting-Bereich wächst, neigt dazu, für jeden Dienst einen eigenen Proxmox LXC-Container anzulegen. Das ist sauber, verbraucht aber unnötig Overhead für Dateisysteme, Updates und Backups. In diesem Text zeige ich, wie man eine zweite Instanz eines Dienstes (am Beispiel des Homer Dashboards) ressourcensparend im selben LXC betreibt.
Das Szenario
Wir haben ein laufendes Dashboard unter /opt/homer und möchten ein zweites, unabhängiges Dashboard („Lab-Version“) auf derselben Maschine hosten.
1. Daten kopieren
Zuerst klonen wir das Verzeichnis des bestehenden Dienstes. Da Homer eine statische Seite ist, die via Python serviert wird, reicht eine einfache Kopie:
Bash
cp -r /opt/homer /opt/homer-lab
2. Systemd-Service duplizieren
Damit das zweite Dashboard automatisch startet, benötigen wir eine neue Service-Datei. Wir kopieren die bestehende Konfiguration:
Bash
cp /etc/systemd/system/homer.service /etc/systemd/system/homer-lab.service
3. Konfiguration anpassen
Bearbeite die neue Datei homer-lab.service mit einem Editor (z.B. nano oder vim). Wichtig sind hier der Pfad und der Port:
Ini, TOML
[Unit]
Description=Homer Dashboard Lab
After=network-online.target
[Service]
Type=simple
WorkingDirectory=/opt/homer-lab
# Hier den Port auf 8011 ändern, um Konflikte mit dem ersten Service zu vermeiden
ExecStart=python3 -m http.server 8011
[Install]
WantedBy=multi-user.target
4. Den neuen Service registrieren
Damit Linux erkennt, dass eine neue Service-Datei existiert, muss der Systemd-Daemon neu geladen werden. Danach aktivieren wir den Dienst für den automatischen Start.
Bash
# 1. Systemd über die neue Datei informieren
systemctl daemon-reload
# 2. Service aktivieren (Autostart) und sofort starten
systemctl enable --now homer-lab.service
5. Erfolgskontrolle
Mit folgendem Befehl kannst du prüfen, ob beide Instanzen auf ihren jeweiligen Ports lauschen:
Bash
ss -tulpn | grep python3
Fazit: Warum dieser Weg?
- Minimaler Footprint: Ein zweiter Homer-Dienst verbraucht nur ca. 30MB RAM zusätzlich.
- Effiziente Backups: Ein einziges LXC-Backup sichert nun beide Dashboards.
- Wartungsarm: Betriebssystem-Updates müssen nur einmal pro Container durchgeführt werden.
Tipp für Fortgeschrittene: Wenn du viele solcher kleinen Dienste hast, lohnt es sich, einen Reverse Proxy (wie Caddy oder Nginx Proxy Manager) davorzuschalten, um die Dienste über sprechende URLs (z.B. homer.local und lab.local) statt über Portnummern aufzurufen.
Soll ich dir zeigen, wie du die Logs beider Dashboards in einem einzigen Fenster mit journalctl überwachst?