Home-Server (OMV-NAS) mit Erweiterungen.
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-06 10:53:14 +00:00
Scripts Scripts/21_Vaultwarden.sh aktualisiert 2026-09-09 20:47:06 +00:00
Anleitung für Root-CA erstellen.md Anleitung für Root-CA erstellen.md aktualisiert 2026-09-09 20:51:11 +00:00
Heimdall_anpassen.txt Dateien nach „/“ hochladen 2026-08-16 18:24:51 +00:00
installer.sh installer.sh aktualisiert 2026-09-22 06:52:42 +00:00
LICENSE Initial commit 2026-08-16 18:23:29 +00:00
nginx Proxy für HTTPS im LAN.md nginx Proxy für HTTPS im LAN.md aktualisiert 2026-09-08 10:24:16 +00:00
proxmox-vsock-error.md proxmox-vsock-error.md hinzugefügt 2026-10-06 10:53:14 +00:00
README.md README.md aktualisiert 2026-09-22 06:07:13 +00:00

Medienserver

Home-Server (OMV-NAS) mit Erweiterungen.

Installiert viele Erweiterungen.

Vorbereitungen:

Folgende Ordner müssen in OpenMediaVault angelegt werden:

Die ganze Installation wurde bereits auf die neuen Quadlets umgebaut.

Vorbereitung:

  • Openmediavault installieren

  • omv-extras installieren:

wget -O - https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install | bash
  • PlugIn "openmediavault-symlinks" installieren

  • Daten-Laufwerk einbinden und einrichten

  • Daten-Laufwerk (/srv/dev-disk-by-uuid-) via SymLinks auf einen sauberen Pfad wie /srv/Disk (oder /srv/Disk01) verlinken

  • Benutzer und lokale NAS-Freigaben für genutzte Laufwerke anlegen:

    -> Als Freigaben anlegen
    Import
    Fotos
    Medien
    Downloads
    ... weitere gewünschte Ordner

    -> nur via OMV anlegen, NICHT freigeben
    AppData
    nextCloud
    Paperless
    AgentDVR #sofern genutzt

  • Script herunteladen, bearbeiten und ausführen

apt update && apt install git dos2unix -y
git clone http://192.168.1.100:6080/johannes/Medienserver.git
#git clone -b <branchName> http://192.168.1.100:6080/johannes/Medienserver.git
cd Medienserver
chmod +x installer.sh
dos2unix installer.sh
echo "Pfade und Settings anpassen und mit ./installer.sh die Installation starten"

Wichtiger Hinweis: Passwort-Manager ("Passbolt" und "NextCloud Passwords") benötige eine HTTPS-Verbindung. Da Chrome bzw. die Smartphone-Apps mit selbst signierten Zertifikaten den Dienst verweigern, muss eine Root-CA eingerichtet werden!

Ergänzung:

Aktuell ist das Server-Install-Script darauf aufgebaut, dass als "Unterbau" OpenMediaVault verwendet wird.
Die Pods werden dort als Benutzer "root" gestartet, was im nicht-öffentlichen Heimnetz kein unmittelbares Sicherheitsrisiko darstellt.
Will man allerdings das ganze öffentlich betreiben, empfiehlt es sich, die Pods als "Benutzer mit eingeschränkten Berechtigungen" auszuführen. Dafür sind aber Änderungen am Installer-Script notwendig.

Im Wesentlichen muss folgendes angepasst werden:

  1. Benutzer anlegen
  2. "Linger" für den Benutzer aktivieren (sonst werden die Prozesse beendet wenn sich der Benutzer abmeldet)
  3. Pfade & Verzeichnisrechte anpassen
  4. Ports unter Nr. 1024 für Benutzer freigeben (wegen Heimdall/nginx)
  5. Steuerbefehle sind anders und müssen angepasst werden

zu 1) Rootless Podman verwendet sogenannte Sub-UIDs und Sub-GIDs, um innerhalb des Containers Unter-Benutzer (wie www-data oder nginx) abbilden zu können, ohne Root-Rechte auf dem Host zu benötigen.

# Benutzer anlegen (falls nicht vorhanden), "appuser" nur als Beispiel - beliebiger Name möglich.
useradd -m -s /bin/bash appuser  

# Prüfen, ob Einträge in /etc/subuid und /etc/subgid existieren:
grep appuser /etc/subuid
grep appuser /etc/subgid
# Sollte etwas ausgeben wie: appuser:100000:65536

zu 2) Linger aktivieren (Extrem wichtig für Server!):
Standardmäßig beendet systemd alle Prozesse und Quadlets eines Benutzers, sobald dieser sich abmeldet. Damit die Pods als Dienst dauerhaft im Hintergrund laufen, muss "Linger" für den User aktiviert werden:

loginctl enable-linger appuser

zu 3) Ein unprivilegierter Benutzer kann nicht nach /etc/containers/... oder /srv/Disk/... schreiben, wenn die Rechte dort auf root stehen.

  • Quadlet-Ordner des Benutzers: Statt /etc/containers/systemd/ liegen die Quadlet-Dateien beim Rootless-Betrieb im Home-Verzeichnis des Benutzers:
    ~/.config/containers/systemd/
    bzw. /home/appuser/.config/containers/systemd/
    
  • AppData-Pfade: Entweder wählst du einen Pfad im Home-Verzeichnis des Benutzers (z. B. /home/appuser/appdata/baikal) oder gibst dem Benutzer explizit die Rechte an deinem /srv/Disk/AppData/-Ordner:
    mkdir -p /srv/Disk/AppData/<service>
    chown -R appuser:appuser /srv/Disk/AppData/<service>
    

zu 4) Aus Sicherheitsgründen dürfen normale Linux-Benutzer standardmäßig keine Ports unterhalb von 1024 anbinden. Wenn dein Baikal-Pod direkt auf Port 80 oder 443 lauschen soll, musst du das System-Limit herabsetzen - der Installer macht dies bereits "ab Standard":

echo "net.ipv4.ip_unprivileged_port_start=80" > /etc/sysctl.d/99-rootless-ports.conf
sysctl --system

zu 5) Unterschiede im Ablauf:

Thema Root (OpenMediaVault) Rootless (Debian 13)
Quadlet-Pfad /etc/containers/systemd/ ~/.config/containers/systemd/
systemd Reload systemctl daemon-reload systemctl --user daemon-reload
Service Start systemctl start container-<servicename>.service systemctl --user start container-<servicename>.service
Volume Security (:Z) Optional Erforderlich (SELinux/AppArmor-Rechte)

Der Installer sowie die jeweiligen Install-Scripte sind NICHT darauf angepasst - ich habe es auch nicht explizit damit getestet.