Pierwszy kontener Home Assistant z Portainerem

Docker to dziś standard w świecie aplikacji, ale nie każdy lubi pracować wyłącznie w terminalu. Jeżeli zaczynasz przygodę z Home Assistantem i chcesz w prosty sposób zarządzać kontenerami, warto poznać Portainera. Intuicyjny panel webowy, który pozwala uruchamiać, aktualizować i monitorować aplikacje bez konieczności wpisywania długich komend. W tym poradniku pokażę Ci, jak krok po kroku zainstalować Dockera, Portainera i uruchomić pierwszy kontener Home Assistant.
portainer docker homeassistant

W moim środowisku jest obecnie około 50 kontenerów, na 3 hostach. Zarządzanie nimi przez CLI oczywiście jest możliwe, ale to nie jest moim celem w życiu:) Bardziej zależy mi na czymś co mogę kliknąć i zapomnieć.
Na rynku jest kilka jeśli nie kilkanaście rozwiązań jak Dockge, czy Komodo ale jakoś mi nie podeszły.
Zdecydowałem się na Portainera, pokrótce jest to panel webowy do zarządzania środowiskiem kontenerów Docker (i nie tylko). Umożliwia wykonywanie chyba wszystkich podstawowych operacji jakie na co dzień wykonujemy, posiada dostęp do logów kontenera, statystyki i dostęp do konsoli. Fajne i intuicyjne.

Żeby zacząć potrzebujesz jakiś komputer najlepiej z linuxem (polecam Ubuntu Server lub Debiana)
jeżeli masz już dostęp, poniżej kroki które wykonamy

  • Instalacja Dockera
  • Zainstalujemy pierwszy kontener z Dockerem
  • Ustawimy wstępnie Portainera

Instalacja dockera

Sprowadza się do wprowadzenia kilku komend, ale po kolei:
Najpierw zależności

sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release

Teraz certyfikaty repozytorium Dockera

$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/debian/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Dodajemy repozytorium

 echo "deb [arch=$(dpkg --print-architecture) \
signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" | sudo tee \
  /etc/apt/sources.list.d/docker.list > /dev/null

i wrzeszcie instalujemy Dockera

$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Ostatnie szlify żebyś nie musiał za każdym razem robić sudo i automatyczny start Dockera

$ sudo groupadd docker
$ sudo usermod -aG docker $USER
$ sudo systemctl enable docker

Instalacja Portainera

Jeżeli mamy już zainstalowanego Dockera:
Tworzymy sobie katalog /docker-data – to będzie nasz główny katalog dla wszystkich kontenerów a następnie w tym katalogu utwórz portainer
do środka wrzucamy plik docker-compose.yml

services:
  portainer:
    deploy:
      resources:
        limits:
          cpus: '1'
          memory: 512M
    ports:
      - 9443:9443
      - 8000:8000
    container_name: portainer
    volumes:
      - '/docker-data/portainer:/data'
      - '/var/run/docker.sock:/var/run/docker.sock'
    restart: unless-stopped
    image: portainer/portainer-ee:latest

zapisujesz i wykonujesz:

docker compose up -d

następnie wpisujesz „https://ip serwera:9443” i ustalasz login i hasło

No, to łatwiejsza część skończona:)

Licencja Business Edition za darmo:)

Bezpłatna licencja jest oczywiście wystarczająca i absolutnie nie musisz mieć licencji business, natomiast za darmo to uczciwa cena.
Wypełnij poniższy formularz i pierwsze 3 serwery (instancje) Dockera w jednym panelu są za darmo:)
Take 3 – Get your first 3 nodes free

Teraz mała pauza i troszkę teorii

Jeżeli mamy dużo kontenerów, musimy popatrzeć z punktu widzenia wygody tworzenia i zarządzania. Czasem żeby jeden kontener działał, jest zależny od drugiego i najlepiej żeby uruchomił się zaraz po nim. Zatem wypadało by zorganizować te kontenery w paczki (stos), które od tej pory będziemy nazywać stackami, a wszystkie parametry takiego stacka definiujemy w pliku zwanym docker-compose.yml.

Czym są stacki w Portainerze w praktyce:

  • masz plik docker-compose.yml, który opisuje kilka usług (np. homeassistant, mysql, nodered),
  • wrzucasz go do Portainera w sekcji stacks,
  • Portainer zarządza całym zestawem jak jednym (start, stop, aktualizacja).

Jak widzisz na zdjęciu poniżej mam kilka stacków, przyjrzyjmy się Home asisstant, zielone ikonki oznaczają że kontenery w stacku są aktualne, żółte że któryś kontener ma dostępną aktualizację

W środku znajduje się kilka podstawowych kontenerów, jak widać chyba trzeba będzie zaktualizować Home assistant i esphome

Gratulacje, utworzyłeś swój pierwszy kontener, do zarządzania kontenerami.
Jeżeli wypełniłeś formularz licencja przyjdzie Ci na maila.

Przykładzik – tworzymy pierwszy kontener

  1. Dodajmy sobie teraz pierwszy kontener Home assistant
    • Wejdź w Stacks → Add stack w prawym górnym rogu.


1. Podaj nazwę stacka
2. wklej poniższą zawartość

services:
  homeassistant:
    container_name: homeassistant
    image: homeassistant/home-assistant
    volumes:
      - /docker-data/homeassistant/hass-config:/config
      - /etc/localtime:/etc/localtime:ro
    restart: unless-stopped
    network_mode: host
  1. włącz webhook (przyda się to później)
  2. odpal wszystko jednym kliknięciem
  3. Aktualizacja/modyfikacja stacka
    • Edytujesz plik YAML bezpośrednio w Portainerze (lub nie, jeśli chcesz jedynie zaktualizować)
    • wcięcia się robi spacjami nie tabulatoami
    • Klikasz Update the stack
    • Zada Ci on pytanie

      jeżeli chcesz zaktualizować kontenery (czyli pojawi się nowa wersja Home assistanta) włącz Re-pull image and deploy,
      Jeżeli tylko zmieniałeś jakąś opcję w docker-compose i chcesz zmienić ustawienia bez aktualizacji zostaw tę opcję wyłączoną

Po chwili pojawi się na zielono kontener Home assistant
wejdź na adres http://ip Twojego Serwera:8123 i wejdź do domu:)

Następnie tworzymy użytkownika, i przechodzimy formularz do samego końca.
Home assistant nawet znajdzie nasze urządzenia które już są w sieci i doda je automatycznie

Podsumowanie

  • zainstalowaliśmy Dockera,
  • uruchomiliśmy Portainera jako panel do zarządzania kontenerami,
  • utworzyliśmy pierwszy stack i uruchomiliśmy w nim Home Assistant.

Dzięki Portainerowi zarządzanie Home Assistantem i innymi usługami w kontenerach jest prostsze i bardziej przejrzyste.
To świetna baza do dalszej nauki – kolejne aplikacje (np. MQTT, Esphome, Node-RED) możesz dodawać do nowych stacków lub do istniejącego.
Przejdziemy razem przez wszystkie te usługi.

Poprzedni artykuł

Integracja kotła Kospel po Modbus z Home Assistant

5 1 głos
Ocena artykułu
Subskrybuj
Powiadom o

0 Komentarze
Opinie w linii
Zobacz wszystkie komentarze
0
Chętnie poznam Twoje przemyślenia, skomentuj.x