> 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/english-pl/pierwsze-kroki/quickstart/docker.md).

# Docker

Zainstaluj CUBE OS jako kontener Docker na hoście Linux. Ta metoda dobrze sprawdza się na serwerach domowych, urządzeniach NAS oraz zawsze włączonych maszynach z Linuxem.

{% hint style="info" %}
Wdrażanie Docker jest obsługiwane na **Tylko Linux**.

Jeśli nie masz hosta z Linuxem, użyj [Raspberry Pi](/english-pl/pierwsze-kroki/quickstart/raspberry-pi.md) lub [maszyny wirtualnej](/english-pl/pierwsze-kroki/quickstart/maszyna-wirtualna/virtualbox.md).
{% endhint %}

### 1. Przygotowanie

{% stepper %}
{% step %}
**Sprawdź architekturę hosta**

CUBE Docker obsługuje następujące architektury Linuxa:

* **amd64** (`x86_64`) — komputery PC, serwery, Synology NAS i podobne urządzenia
* **arm64** (`aarch64`) — Raspberry Pi 4/5, Orange Pi i inne hosty ARM
  {% endstep %}

{% step %}
**Sprawdź wersję jądra Linux**

Jądro `4.15` lub nowsze jest wymagane.

```bash
uname -r
```

{% hint style="warning" %}
Niektóre urządzenia NAS są dostarczane ze starszymi jądrami, takimi jak `4.4.x`. Te hosty nie są zgodne z CUBE Docker. W takim przypadku uruchom CUBE OS zamiast tego w maszynie wirtualnej Linux.
{% endhint %}
{% endstep %}

{% step %}
**Zainstaluj Docker Engine**

Zainstaluj Docker Engine na hoście, zanim kontynuujesz.

Użyj [oficjalnego przewodnika instalacji Dockera](https://docs.docker.com/engine/install/).
{% endstep %}

{% step %}
**Sprawdź wymagane porty**

Upewnij się, że porty `80` i `1883` są wolne na hoście.

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

* **80** — interfejs webowy CUBE OS
* **1883** — broker MQTT

Jeśli inna usługa używa tych portów, najpierw ją zatrzymaj.
{% endstep %}

{% step %}
**Przygotuj dongle Zigbee, jeśli jest potrzebny**

Jeśli planujesz dodać urządzenia Zigbee, podłącz do hosta zgodny dongle Zigbee.

Testowane dongle Zigbee obejmują:

> SONOFF ZBDongle-MAX\
> SONOFF ZBDongle-PMG24\
> SONOFF ZBDongle-LMG21\
> SONOFF ZBDongle-E\
> SONOFF ZBDongle-P\
> [Inne wymienione](https://darkxst.github.io/silabs-firmware-builder/) przez dewelopera @darkxst&#x20;

{% hint style="info" %}
Aby uzyskać więcej informacji na temat konfiguracji i zgodności Zigbee, zapoznaj się z tym [przewodnikiem](/english-pl/sprawdzenie-kompatybilnosci/zigbee.md).
{% endhint %}

Więcej informacji o obsłudze Zigbee znajdziesz w [tym przewodniku](/english-pl/sprawdzenie-kompatybilnosci/zigbee.md).
{% endstep %}
{% endstepper %}

### 2. Pobierz obraz

{% stepper %}
{% step %}
**Pobierz najnowszy obraz**

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

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

{% hint style="info" %}
Możesz zastąpić `latest` konkretnym tagiem wersji, na przykład `2.10.3`. Dostępne wersje są wymienione na [GitHub Releases](https://github.com/eWeLinkCUBE/CUBE-OS/releases/).
{% endhint %}
{% endstep %}
{% endstepper %}

### 3. Uruchom CUBE OS

{% stepper %}
{% step %}
**Utwórz katalog danych**

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

Ten katalog przechowuje Twoje urządzenia, sceny i ustawienia.
{% endstep %}

{% step %}
**Sprawdź ścieżkę urządzenia Zigbee, jeśli używasz jednego (opcjonalnie)**

Typowe ścieżki urządzeń to:

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

Użyj prawidłowej ścieżki w następnym poleceniu.
{% endstep %}

{% step %}
**Uruchom kontener**

Użyj tego polecenia jako punktu wyjścia:

```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/ca4b9ee6651d42e303049018f3310c12b68e5f9b" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="info" %}
Jeśli nie używasz Zigbee, usuń `--device /dev/ttyUSB0:/dev/ttyUSB0`.

Jeśli nie używasz Matter Hub ani eWeLink Remote, możesz również usunąć montowanie D-Bus.
{% endhint %}
{% endstep %}

{% step %}
**Zrozum główne parametry**

* `--privileged` — wymagane do dostępu do sprzętu
* `--net=host` — wymagane do wykrywania w sieci LAN i MQTT
* `-v ~/cubeos-data:/data` — zachowuje Twoje dane po ponownym uruchomieniu kontenera
* `--device /dev/ttyUSB0:/dev/ttyUSB0` — przekazuje dongle Zigbee
* `-v /run/dbus/system_bus_socket:/host_dbus/system_bus_socket:ro` — umożliwia dostęp do D-Bus dla obsługiwanych funkcji
  {% endstep %}
  {% endstepper %}

### 4. Uzyskaj dostęp do CUBE OS

{% stepper %}
{% step %}
**Potwierdź, że kontener działa**

```bash
docker ps
```

Stan kontenera powinien pokazywać `Uruchomiony`.
{% endstep %}

{% step %}
**Otwórz interfejs webowy**

Otwórz przeglądarkę w tej samej sieci i odwiedź jeden z tych adresów:

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

Zastąp `<HOST_IP>` adresem IP hosta Linux.
{% endstep %}

{% step %}
**Później użyj krótkiego lokalnego adresu**

Po konfiguracji znajdziesz krótki identyfikator na stronie ustawień.

Następnie możesz użyć `cube-{short-id}.local` aby zidentyfikować tę instancję CUBE OS w Twojej sieci LAN.
{% endstep %}
{% endstepper %}

### 5. Zaktualizuj CUBE OS

Wdrożenie Docker nie obsługuje aktualizacji OTA z poziomu interfejsu webowego.

Aby zaktualizować ręcznie:

```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
```

Twoje dane pozostają w `~/cubeos-data`, więc urządzenia, sceny i ustawienia pozostaną po aktualizacji.

### 6. Ograniczenia

Z powodu izolacji kontenera te funkcje nie są dostępne we wdrożeniach Docker:

* **Dodatki** — nie można instalować ani zarządzać dodatkami
* **Głośnik Bluetooth** — przekazywanie Bluetooth nie jest obsługiwane
* **Aktualizacja systemu** — aktualizacje OTA w interfejsie webowym są wyłączone
* **Uruchom ponownie / Wyłącz** — sterowanie zasilaniem na poziomie systemu jest niedostępne

### 7. Uwaga dotycząca Raspberry Pi

Jeśli uruchamiasz Docker na Raspberry Pi, upewnij się, że rozmiar strony wynosi `4096`:

```bash
getconf PAGE_SIZE

# Jeśli wynik nie wynosi 4096, dodaj tę linię i uruchom ponownie
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/english-pl/pierwsze-kroki/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.
