Skip to content
Jens Maus edited this page Oct 31, 2025 · 40 revisions

Wenn du OpenCCU als nativen, leichtgewichtigen Linux‑Container auf einem bereits bestehenden Debian‑basierten Host (Debian, Ubuntu, Raspberry Pi OS, Armbian, …) betreiben möchtest, kannst du dies mit Linux Containers (LXC) umsetzen. Die nachfolgenden Schritte führen durch eine teilautomatisierte Installation eines OpenCCU‑LXC‑Systems.

Hinweis

Important

Im Gegensatz zu einer vollwertigen VM (z. B. unter Proxmox VE oder mit QEMU/KVM) erfordert LXC zusätzliche Pakete und Anpassungen auf dem Host. Diese sind nötig, damit OpenCCU auf die Homematic‑Funkhardware (z. B. RPI‑RF‑MOD, HmIP‑RFUSB, …) zugreifen kann. Zwar lassen sich alle Änderungen später wieder entfernen, doch Host‑Updates können sich auf den Betrieb des OpenCCU‑Containers negativ auswirken. Plane System‑Updates daher bewusst ein und teste sie, falls möglich, vorab.

Voraussetzungen

Note

LXC bereits installiert und eine Netzwerk‑Bridge (br0) als Hauptinterface vorhanden? Dann kannst du direkt zu Installation Container springen.

Um einen OpenCCU‑LXC‑Container stabil zu betreiben, muss der Host vorab korrekt netzwerktechnisch vorbereitet sein. OpenCCU erwartet auf dem Host eine Bridge (br0) mit statischer IP‑Adresse, über die der Host ins LAN eingebunden ist. Je nach Distribution und Netzwerk‑Stack unterscheidet sich die Einrichtung.

Im Folgenden werden Platzhalter in spitzen Klammern <…> verwendet:

  • <device>: Name des primären Netzwerkinterfaces (z. B. eth0) des Hosts.
  • <address>/<prefix>: statische IPv4‑Adresse mit Netzwerkpräfix (z. B. 192.168.178.10/24).
  • <gateway>: IPv4‑Adresse des Default‑Gateways/Routers (z. B. 192.168.178.1).
  • <dns1>,<dns2>: IPv4‑Adresse(n) des/der DNS‑Server (z. B. 192.168.178.1).

NetworkManager‑Umgebungen (Armbian, Raspberry Pi OS)

Verwendest du NetworkManager (z. B. auf Armbian, Raspberry Pi OS), richte die Bridge wie folgt ein:

  1. Aktives Interface ermitteln

    nmcli con show --active

    Notiere dir das primäre Interface (z. B. eth0) sowie die künftige statische IP (inkl. Präfix).

  2. bridge-utils installieren

    sudo apt install bridge-utils
  3. Bridge anlegen und konfigurieren

    sudo nmcli con add type bridge ifname br0 con-name br0 stp no forward-delay 0
    sudo nmcli con add type bridge-slave ifname <device> master br0
    sudo nmcli con modify br0 ipv4.addresses "<address>/<prefix>" ipv4.gateway "<gateway>" ipv4.dns "<dns1>,<dns2>" ipv4.method manual

    Achtung: Während der Umkonfiguration kann die Netzwerkverbindung kurzzeitig ausfallen. Bei Remote‑Zugriff ggf. Konsole/Monitor bereithalten.

  4. Neustart Prüfe die Bridge mit ip a oder nmcli. Führe anschließend zur Sicherheit einen Neustart durch:

    sudo reboot

ifupdown‑Umgebungen (Debian x86_64)

Auf Systemen mit ifupdown (z. B. klassisches Debian):

  1. bridge-utils installieren

    sudo apt install bridge-utils
  2. /etc/network/interfaces anpassen

    auto lo
    iface lo inet loopback
    
    iface <device> inet manual
    
    auto br0
    iface br0 inet static
        address <address>/<prefix>
        gateway <gateway>
        dns-nameservers <dns1>,<dns2>
        bridge_ports <device>
        bridge_stp off
        bridge_fd 0
    
  3. Neustart

    sudo reboot

netplan‑Umgebungen (Ubuntu x86_64)

Auf Systemen mit netplan (z. B. Ubuntu):

  1. /etc/netplan/<file>.yaml anpassen

    network:
      version: 2
      renderer: networkd
    
      ethernets:
        <device>:
          dhcp4: no
          dhcp6: no
    
      bridges:
        br0:
          dhcp4: no
          dhcp6: no
          interfaces: [<device>]
          addresses: [<address>/<prefix>]
          routes:
            - to: default
              via: <gateway>
          nameservers:
            addresses: [<dns1>, <dns2>]
          parameters:
            stp: false
            forward-delay: 0
  2. Änderungen anwenden

    sudo netplan generate
    sudo netplan --debug apply

    Achtung: Auch hier kann die Verbindung kurzzeitig abreißen. Bei Fehlkonfiguration ggf. lokale Konsole nutzen.

  3. Neustart

    sudo reboot

Installation Container

Sind die Voraussetzungen erfüllt und die Bridge br0 aktiv, lässt sich der OpenCCU‑Container wie folgt installieren:

  1. Installationsskript starten In einer Shell (lokal oder per SSH) den Downloader ausführen:

    sudo sh -c "wget -qO - https://openccu.de/install-lxc.sh | bash -"
  2. Dependency‑Check bestätigen Das Skript prüft die erforderlichen Pakete und Host‑Anpassungen und zeigt einen Hinweisdialog. Mit Yes bestätigen, um fortzufahren.

    Hinweis: Die durch das Skript vorgenommenen Änderungen lassen sich jederzeit rückgängig machen; siehe Abschnitt Deinstallation (uninstall‑Option).

  3. Funkmodul‑Overlays (nur ARM/GPIO) Auf ARM‑Hosts mit GPIO‑Funkmodul (RPI‑RF‑MOD / HM‑MOD‑RPI‑PCB) fragt das Skript, ob die nötigen Device‑Tree‑Overlays installiert werden sollen.

    Hinweis: Bei USB‑ (HmIP‑RFUSB, HB‑RF‑USB‑2, …) oder Ethernet‑Anbindung (HB‑RF‑ETH) ist keine Overlay‑Installation nötig → No wählen.

  4. Version wählen Wähle die gewünschte OpenCCU‑Version (Release oder Snapshot).

    Empfehlung: Für den produktiven Einsatz Release‑Versionen bevorzugen; Snapshots sind experimentell.

  5. Userdisk‑Pfad festlegen Gib den Pfad für die „Userdisk“ (persistente Daten) an, Standard: /var/lib/openccu/userfs.

    Achtung: Ein bereits verwendetes userfs darf nicht gleichzeitig von mehreren Containern genutzt werden.

  6. Container‑Name festlegen Vergib einen eindeutigen Namen für den OpenCCU‑Container.

  7. CPU‑Kerne zuweisen Wähle die Anzahl der CPU‑Kerne (empfohlen ≥ 2).

  8. Arbeitsspeicher limitieren Lege das RAM‑Limit für den Container fest.

  9. Installation durchführen Das Skript legt den Container an und konfiguriert ihn.

  10. Neustart (falls Overlays/Module installiert)

    sudo reboot

Nach dem Reboot startet der Host erneut; idealerweise wird der neue OpenCCU‑LXC direkt gestartet. Konsole ansehen: lxc-console <name>; Shell betreten: lxc-attach <name>. Weitere Hinweise findest du in der Skriptausgabe und in den offiziellen LXC‑Manpages.

Update

So aktualisierst du einen bestehenden OpenCCU‑LXC:

  1. Container stoppen

    lxc-stop <name>
  2. Backup/Snapshot anlegen

    lxc-snapshot <name>
  3. Updateskript starten

    sudo sh -c "wget -qO - https://openccu.de/install-lxc.sh | bash -s update"

  4. Container auswählen

  5. Zielversion wählen

    Hinweis: Für produktive Systeme Release statt Snapshot wählen.

  6. Update bestätigen

  7. Update läuft/ist abgeschlossen

Abschließend den Container wieder starten:

lxc-start <name>

Zum Mitlesen der Bootausgaben:

lxc-console <name>

Deinstallation

Da für den LXC‑Betrieb Host‑Anpassungen vorgenommen wurden (Pakete, Module, Overlays), kannst du diese mit der Uninstall‑Option des Skripts wieder entfernen:

  1. Deinstallation starten

    sudo sh -c "wget -qO - https://openccu.de/install-lxc.sh | bash -s uninstall"
  2. Bestätigen

  3. Rückbau durchführen lassen

    Hinweis: Bei Fehlermeldungen den Vorgang ggf. erneut ausführen; das Skript prüft vor jedem Schritt, ob die jeweilige Komponente noch vorhanden ist.

Nach erfolgreicher Deinstallation einen Neustart einplanen. Nicht mehr benötigte Abhängigkeiten lassen sich optional per

sudo apt autoremove

entfernen.

Clone this wiki locally