Aktualizacja#
vCLU zainstalowany przez install.sh (usługa systemd) aktualizujesz jedną komendą:
curl -sSL https://raw.githubusercontent.com/Domktorymysli/vclu/main/deploy/update.sh | sudo bashBez podawania wersji skrypt instaluje najnowsze wydanie z releases. Jeśli ta wersja już działa, kończy się komunikatem Already up to date. i niczego nie zmienia. Gdy poprzednia aktualizacja się nie udała i usługa stoi, instaluje tę wersję jeszcze raz.
Konkretna wersja (np. żeby wrócić do poprzedniej):
curl -sSL https://raw.githubusercontent.com/Domktorymysli/vclu/main/deploy/update.sh | sudo bash -s -- --version v1.3.0Zainstalowaną wersję sprawdzisz tak:
/opt/vclu/vclu -versionCo robi update.sh#
- Sprawdza, czy są
curl,tarigzip. Jeśli czegoś brakuje, kończy się, zanim cokolwiek zmieni, i podpowiadasudo apt-get install -y .... - Odczytuje z usługi systemd katalog instalacji, katalog danych i port panelu. Aktualizacja ich nie zmienia (ponowne uruchomienie instalatora ustawiłoby port 8080).
- Pobiera wydanie dla architektury urządzenia (amd64, arm64, armv7, armv6).
- Zatrzymuje vCLU i robi kopię zapasową (niżej).
- Uruchamia
install.shz wydania: podmienia program, pliki panelu i runtime Lua, zapisuje usługę i ją uruchamia.
Dane (konfiguracja, skrypty Lua, pluginy, historia) zostają na miejscu. Instalator nadpisuje tylko dołączoną dokumentację dla AI w data/clu/docs/ai/.
Kopia zapasowa#
Przed instalacją skrypt pakuje do /opt/vclu/backup-<wersja>-<data>.tar.gz:
| W archiwum | Co to jest |
|---|---|
vclu, web/, runtime/ | poprzedni program, panel i runtime Lua |
vclu.service | plik usługi systemd |
data/ | konfiguracja (.vclu.json, profile dostępu, klucze), moduły Lua, importy OM, pluginy, KV, parowanie HomeKit |
Historia, metryki i kopie zapasowe robione przez sam vCLU (z panelu i przy wdrażaniu modułów) nie trafiają do archiwum (są duże). Archiwum może czytać tylko root, bo konfiguracja zawiera hasła i klucze. Zostają trzy najnowsze archiwa; starsze są usuwane dopiero po udanej aktualizacji.
Jeśli spakowanie się nie uda (np. brak miejsca na karcie), skrypt usuwa niepełne archiwum, uruchamia vCLU z powrotem i przerywa przed instalacją.
Powrót do poprzedniej wersji#
Gdy instalacja się nie uda, skrypt wypisuje gotowe komendy. Ręcznie wygląda to tak:
sudo systemctl stop vclu
cd /opt/vclu && sudo rm -rf web runtime
sudo tar -xzf /opt/vclu/backup-1.3.0-20261015-161230.tar.gz -C /opt/vclu vclu web runtime
sudo tar -xzf /opt/vclu/backup-1.3.0-20261015-161230.tar.gz -C /etc/systemd/system vclu.service
sudo systemctl daemon-reload
sudo systemctl start vcluMożna też po prostu zainstalować poprzednią wersję: ... | sudo bash -s -- --version <poprzednia>.
Konfiguracja z archiwum przydaje się, gdy nowa wersja coś w niej zmieniła. Wypakuj ją obok i porównaj, zanim nadpiszesz:
mkdir /tmp/vclu-restore
sudo tar -xzf /opt/vclu/backup-1.3.0-20261015-161230.tar.gz -C /tmp/vclu-restore dataZmieniona usługa systemd#
install.sh zapisuje usługę od nowa z szablonu. Jeśli /etc/systemd/system/vclu.service był zmieniony ręcznie (inny interfejs, inny katalog danych), update.sh zatrzyma się i pokaże różnicę, zamiast ją po cichu cofnąć. Własne ustawienia trzymaj w pliku nakładki, którego instalator nie rusza:
sudo systemctl edit vcluOpcja --force aktualizuje mimo to (kopia starej usługi jest w archiwum). Ta sama opcja instaluje ponownie wersję, która już działa.
Docker#
W Dockerze aktualizacja to nowy obraz; dane są w wolumenie:
docker pull ghcr.io/domktorymysli/vclu:latest
docker rm -f vclu
docker run -d --name vclu --network host -v vclu-data:/data ghcr.io/domktorymysli/vclu:latestPo aktualizacji#
- Co się zmieniło: opis wydania w releases i
CHANGELOG.md. - Logi startu:
sudo journalctl -u vclu -n 100. - Jeśli opis wydania mówi o ponownym imporcie pliku OM (np. nowe cechy obiektów Grentona), zaimportuj go ponownie w panelu.