> For the complete documentation index, see [llms.txt](https://cube.ewelink.cc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cube.ewelink.cc/german/erste-schritte/quickstart/docker.md).

# Docker

Installieren Sie CUBE OS als Docker-Container auf einem Linux-Host. Diese Methode eignet sich gut für Heimserver, NAS-Geräte und dauerhaft eingeschaltete Linux-Maschinen.

{% hint style="info" %}
Die Docker-Bereitstellung wird unterstützt auf **Nur Linux**.

Wenn Sie keinen Linux-Host haben, verwenden Sie [Raspberry Pi](/german/erste-schritte/quickstart/raspberry-pi.md) oder [Virtuelle Maschine](/german/erste-schritte/quickstart/virtuelle-maschine/virtualbox.md).
{% endhint %}

### 1. Vorbereitung

{% stepper %}
{% step %}
**Überprüfen Sie die Host-Architektur**

CUBE Docker unterstützt diese Linux-Architekturen:

* **amd64** (`x86_64`) — PCs, Server, Synology-NAS und ähnliche Geräte
* **arm64** (`aarch64`) — Raspberry Pi 4/5, Orange Pi und andere ARM-Hosts
  {% endstep %}

{% step %}
**Überprüfen Sie die Linux-Kernel-Version**

Kernel `4.15` oder neuer ist erforderlich.

```bash
uname -r
```

{% hint style="warning" %}
Einige NAS-Geräte werden mit älteren Kernel-Versionen ausgeliefert, wie z. B. `4.4.x`. Diese Hosts sind nicht mit CUBE Docker kompatibel. Führen Sie in diesem Fall stattdessen CUBE OS in einer Linux-VM aus.
{% endhint %}
{% endstep %}

{% step %}
**Docker Engine installieren**

Installieren Sie Docker Engine auf dem Host, bevor Sie fortfahren.

Verwenden Sie die [offizielle Docker-Installationsanleitung](https://docs.docker.com/engine/install/).
{% endstep %}

{% step %}
**Überprüfen Sie die erforderlichen Ports**

Stellen Sie sicher, dass die Ports `80` und `1883` auf dem Host frei sind.

```bash
sudo lsof -i :80
sudo lsof -i :1883
```

* **80** — CUBE OS-Weboberfläche
* **1883** — MQTT-Broker

Wenn ein anderer Dienst diese Ports verwendet, stoppen Sie ihn zuerst.
{% endstep %}

{% step %}
**Bereiten Sie bei Bedarf einen Zigbee-Dongle vor**

Wenn Sie Zigbee-Geräte hinzufügen möchten, schließen Sie einen kompatiblen Zigbee-Dongle an den Host an.

Zu den getesteten Zigbee-Dongles gehören:

> SONOFF ZBDongle-MAX\
> SONOFF ZBDongle-PMG24\
> SONOFF ZBDongle-LMG21\
> SONOFF ZBDongle-E\
> SONOFF ZBDongle-P\
> [Andere aufgeführt](https://darkxst.github.io/silabs-firmware-builder/) vom Entwickler @darkxst&#x20;

{% hint style="info" %}
Für weitere Informationen zu Zigbee-Konfigurationen und Kompatibilität lesen Sie bitte dies [Handbuch](/german/kompatibilitatsprufung/zigbee.md).
{% endhint %}

Weitere Informationen zur Zigbee-Unterstützung finden Sie in [dieser Anleitung](/german/kompatibilitatsprufung/zigbee.md).
{% endstep %}
{% endstepper %}

### 2. Image abrufen

{% stepper %}
{% step %}
**Laden Sie das neueste Image herunter**

```bash
docker pull ghcr.io/ewelinkcube/cube-os:latest
```

<div align="left"><figure><img src="/files/659a8df6724544a37275d11bf8957bd5ab0a5ebf" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="info" %}
Sie können `latest` durch ein bestimmtes Versions-Tag ersetzen, z. B. `2.10.3`. Verfügbare Versionen sind auf [GitHub Releases](https://github.com/eWeLinkCUBE/CUBE-OS/releases/).
{% endhint %}
{% endstep %}
{% endstepper %}

### 3. CUBE OS starten

{% stepper %}
{% step %}
**Erstellen Sie ein Datenverzeichnis**

```bash
mkdir -p ~/cubeos-data
```

In diesem Verzeichnis werden Ihre Geräte, Szenen und Einstellungen gespeichert.
{% endstep %}

{% step %}
**Überprüfen Sie den Zigbee-Gerätepfad, falls Sie einen verwenden(optional)**

Gängige Gerätepfade sind:

```bash
ls /dev/ttyUSB* /dev/ttyACM*
```

Verwenden Sie im nächsten Befehl den richtigen Pfad.
{% endstep %}

{% step %}
**Starten Sie den Container**

Verwenden Sie diesen Befehl als Grundlage:

```bash
docker run -d \
  --name cubeos \
  --privileged \
  --net=host \
  -v ~/cubeos-data:/data \
  --device /dev/ttyUSB0:/dev/ttyUSB0 \
  -v /run/dbus/system_bus_socket:/host_dbus/system_bus_socket:ro \
  ghcr.io/ewelinkcube/cube-os:latest
```

<div align="left"><figure><img src="/files/1b6d2cf90ea88d3f0bbffe937493b83ef05d26c9" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="info" %}
Wenn Sie kein Zigbee verwenden, entfernen Sie `--device /dev/ttyUSB0:/dev/ttyUSB0`.

Wenn Sie Matter Hub oder eWeLink Remote nicht verwenden, können Sie auch das D-Bus-Mount entfernen.
{% endhint %}
{% endstep %}

{% step %}
**Verstehen Sie die wichtigsten Parameter**

* `--privileged` — für den Hardwarezugriff erforderlich
* `--net=host` — erforderlich für LAN-Erkennung und MQTT
* `-v ~/cubeos-data:/data` — speichert Ihre Daten nach Container-Neustarts
* `--device /dev/ttyUSB0:/dev/ttyUSB0` — reicht einen Zigbee-Dongle durch
* `-v /run/dbus/system_bus_socket:/host_dbus/system_bus_socket:ro` — ermöglicht D-Bus-Zugriff für unterstützte Funktionen
  {% endstep %}
  {% endstepper %}

### 4. Zugriff auf CUBE OS

{% stepper %}
{% step %}
**Bestätigen Sie, dass der Container läuft**

```bash
docker ps
```

Der Containerstatus sollte `Up`.
{% endstep %}

{% step %}
**Öffnen Sie die Weboberfläche**

Öffnen Sie einen Browser im selben Netzwerk und rufen Sie eine dieser Adressen auf:

* `http://<HOST_IP>/`
* <http://cube.local>

Ersetzen Sie `<HOST_IP>` durch die IP-Adresse des Linux-Hosts.
{% endstep %}

{% step %}
**Verwenden Sie später die kurze lokale Adresse**

Nach der Einrichtung finden Sie die kurze ID auf der Einstellungsseite.

Danach können Sie `cube-{short-id}.local` verwenden, um diese CUBE OS-Instanz in Ihrem LAN zu identifizieren.
{% endstep %}
{% endstepper %}

### 5. CUBE OS aktualisieren

Die Docker-Bereitstellung unterstützt keine OTA-Updates über die Weboberfläche.

Zum manuellen Aktualisieren:

```bash
docker stop cubeos
docker rm cubeos
docker pull ghcr.io/ewelinkcube/cube-os:latest

docker run -d \
  --name cubeos \
  --privileged \
  --net=host \
  -v ~/cubeos-data:/data \
  --device /dev/ttyUSB0:/dev/ttyUSB0 \
  -v /run/dbus/system_bus_socket:/host_dbus/system_bus_socket:ro \
  ghcr.io/ewelinkcube/cube-os:latest
```

Ihre Daten bleiben in `~/cubeos-data`, sodass Geräte, Szenen und Einstellungen nach dem Update erhalten bleiben.

### 6. Einschränkungen

Aufgrund der Container-Isolation sind diese Funktionen in Docker-Bereitstellungen nicht verfügbar:

* **Add-ons** — Add-ons können nicht installiert oder verwaltet werden
* **Bluetooth-Lautsprecher** — Bluetooth-Durchleitung wird nicht unterstützt
* **Systemupdate** — OTA-Updates in der Weboberfläche sind deaktiviert
* **Neustart / Herunterfahren** — Stromsteuerungen auf Systemebene sind nicht verfügbar

### 7. Hinweis zu Raspberry Pi

Wenn Sie Docker auf einem Raspberry Pi ausführen, stellen Sie sicher, dass die Seitengröße `4096`:

```bash
getconf PAGE_SIZE

# Wenn das Ergebnis nicht 4096 ist, fügen Sie diese Zeile hinzu und starten Sie neu
echo "kernel=kernel8.img" | sudo tee -a /boot/firmware/config.txt
sudo reboot
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://cube.ewelink.cc/german/erste-schritte/quickstart/docker.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
