Przejdź do głównej zawartości

Linux - systemd

Możliwa jest także instalacja i zarządzanie aplikacją za pomocą serwisu systemd. Jest to preferowana metoda, jeśli uruchamiamy aplikację za pomocą Podman'a.

Wymagania systemowe

Analogicznie jak w przypadku instalacji z użyciem Docker Compose wymagany jest zainstalowany Docker Engine zgodnie z oficjalną dokumentacją.

Załadowanie obrazów

wskazówka

W przypadku używania Podman, zastąp poniższe wywołania komendy docker komendą podman.

Najnowsze obrazy są dostępne na publicznym docker registry: downloads.traptech.pl

W celu pobrania obrazu z wykorzystaniem registry należy wykonać polecenie:

docker pull downloads.traptech.pl/trapinit:0.17.2

Po poprawnym wykonaniu polecenia, obraz o nazwie downloads.traptech.pl/trapinit:0.17.2 będzie dostępny na lokalnej maszynie.

informacja

Pamiętaj o podaniu poprawnej wersji, aktualną najnowszą wersję możesz sprawdzić na downloads.traptech.pl

Ładowanie obrazów offline

Jeśli maszyna na której chcemy uruchomić aplikację nie ma dostępu do internetu, możemy ręcznie ściągnąć spakowany obraz .tar.gz ze strony downloads.traptech.pl.

Następnie, po przekopiowaniu paczki w dowolny sposób na docelową maszynę (np. za pomocą scp), możemy załadować obraz następującymi komendami:

docker load -i TrapInit-docker-v0.17.2.tar.gz
docker image tag downloads.traptech.pl/trapinit:0.17.2 trapinit:0.17.2

Uruchomienie

Po poprawnym załadowaniu obrazów należy stworzyć plik z konfiguracją oraz nowy serwis systemd.

Plik z konfiguracją

Tworzymy nowy plik w ścieżce /etc/trapinit/config.env:

InitialConfig__Admin__Login=admin
InitialConfig__Admin__Password=<losowe hasło admina>
JwtSettings__SecretKey=<losowy ciąg znaków>
PublicUrl=https://my-domain.pl/
HttpsSettings__Mode=SelfSigned

Należy pamiętać o odpowiednim uzupełnieniu JwtSettings__SecretKey, InitialConfig__Admin__Password i PublicUrl.

JwtSettings__SecretKey musi mieć odpowiednią długość (przynajmniej 32 znaki).

InitialConfig__Admin__Password jest potrzebny tylko do pierwszego logowania - po czym hasło administratora można zmienić w UI aplikacji, a tą wartość konfiguracyjną usunąć z docker-compose.yml.

PublicUrl musi określać adres, pod jakim będzie otwierania aplikacja. Ustawienie to określa w jaki sposób będą z aplikacją komunikowały się sensory. Może to być poprawny adres HTTP jeśli skonfigurowaliśmy DNS, lub adres IP (np. https://10.10.102.100/).

Powyższy przykładowy plik docker-compose.yml zawiera minimum opcji, aby aplikacja uruchomiła się poprawnie. Pełną listę opcji konfiguracyjnych znajdziemy tutaj

Serwis systemd

Tworzymy nowy plik na podstawie poniższego przykładu.

Jeśli serwis ma być określony dla całego systemu, umieszczamy go w /etc/systemd/system/trapinit.service

Jeśli serwis ma być określony dla specyficznego użytkownika, umieszczamy go w ~/.config/systemd/user/trapinit.service. Należy wtedy pamiętać o dodawaniu flagi --user do podanych wywołań systemctl.

[Unit]
Description=TrapInit management panel
After=docker.service
Requires=docker.service

[Service]
TimeoutStartSec=0
Restart=always
ExecStartPre=-/usr/bin/docker exec %n stop
ExecStartPre=-/usr/bin/docker rm %n
ExecStartPre=-/usr/bin/docker volume create %n
ExecStart=/usr/bin/docker run --rm --name %n \
    -v %n:/data \
    -p 80:80 \
    -p 443:443 \
    --env-file /etc/trapinit/config.env \
    downloads.traptech.pl/trapinit:0.17.2

[Install]
WantedBy=default.target

Następnie, wykonujemy systemctl daemon-reload, aby załadować do systemd nowo utworzony serwis.

Na koniec uruchamiamy serwis za pomocą systemctl enable --now trapinit.service.

Po tej operacji instancja powinna być gotowa do użytku.