Installation
Aktualizacja QuoteNode
Jak sprawdzać nowe wersje, aktualizować wdrożenie Docker Compose i bezpiecznie przywracać poprzednią wersję.
Aktualizacja QuoteNode
QuoteNode automatycznie sprawdza dostępność nowych wersji. Gdy dostępna jest nowsza wersja, panel administracyjny wyświetla powiadomienie z etykietą wydania i odnośnikiem do informacji o zmianach.
Aktualizacja do PostgreSQL 18
Pliki Compose powyżej już używają postgres:18-alpine, więc świeże instalacje nie wymagają nic. Jeśli korzystałeś z wcześniejszej wersji alfa na PostgreSQL 16 lub 17, zmigruj dane jednorazowo: serwer PostgreSQL 18 nie wystartuje na starszym katalogu danych (aplikacja odmówi startu, dopóki dane nie będą zgodne, i nigdy nie zmienia ich automatycznie). Użyj kopii pg_dump z listy kontrolnej poniżej, odtwórz wolumen bazy na postgres:18-alpine i przywróć zrzut.
Jak działa sprawdzanie wersji
Frontend pobiera https://quotenode.dev/releases/latest.json przy każdym logowaniu do panelu administracyjnego. Jest to żądanie GET tylko do odczytu, niewymagające uwierzytelnienia. Żadne dane z Twojej instancji nie są przesyłane. Sprawdzanie można wyłączyć:
VITE_RELEASE_CHECK_ENABLED=false
Możesz również nadpisać adres URL manifestu:
VITE_RELEASE_MANIFEST_URL=https://your-mirror.example.com/releases/latest.json
Jeśli manifest jest niedostępny, sprawdzanie kończy się cicho i panel administracyjny działa normalnie.
Lista kontrolna przed aktualizacją
Przed aktualizacją:
- Zanotuj bieżącą wersję widoczną w Admin > Licencja lub w powiadomieniu o aktualizacji.
- Wykonaj kopię zapasową pliku
.env— zawiera on sekrety, których nie można odtworzyć (w szczególnościDB_ENCRYPTION_KEY). - Wykonaj kopię zapasową bazy danych:
docker compose exec postgres pg_dump -U quotenode quotenode > backup-before-upgrade.sql
- Jeśli automatyczne kopie zapasowe są włączone (
BACKUP_ENABLED=true), sprawdź, czy w wolumenie kopii zapasowych istnieje niedawna kopia.
Procedura aktualizacji
W przypadku wdrożeń Docker Compose (Ubuntu VPS, LAN Linux, Coolify ręczne):
docker compose pull
docker compose up -d
Polecenie pobiera najnowsze obrazy i odtwarza tylko te kontenery, których obrazy uległy zmianie. Migracje bazy danych uruchamiają się automatycznie przy starcie backendu.
W przypadku Coolify z włączonym auto-deploy, wypchnięcie do skonfigurowanej gałęzi automatycznie wyzwala aktualizację.
Weryfikacja po aktualizacji
Po uruchomieniu kontenerów:
- Otwórz
/health— powinno zwrócićUP. - Zaloguj się i sprawdź Admin > Licencja, czy wyświetlany jest nowy numer wersji.
- Utwórz ofertę testową i wygeneruj PDF, aby zweryfikować działanie potoku przetwarzania.
- Otwórz publiczny link, aby zweryfikować routing frontendu.
- Jeśli skonfigurowano SMTP, sprawdź, czy testowy e-mail z powiadomieniem zostaje wysłany.
Przywracanie poprzedniej wersji
Jeśli aktualizacja powoduje problemy:
- Nie uruchamiaj
docker compose down -v— polecenie to usuwa wszystkie dane, w tym bazę danych. - Zatrzymaj usługi:
docker compose down
- Edytuj
docker-compose.yml(lub.env), aby przypiąć poprzednie tagi obrazów:
services:
backend:
image: ghcr.io/lesisty7/quotenode/quotenode-api:v0.9.0-alpha
frontend:
image: ghcr.io/lesisty7/quotenode/quotenode-frontend:v0.9.0-alpha
- Uruchom ponownie:
docker compose up -d
Jeśli nowa wersja zawierała nieodwracalne migracje bazy danych, samo przywrócenie poprzednich obrazów może nie wystarczyć. W takim przypadku przywróć bazę danych z kopii zapasowej wykonanej przed aktualizacją:
docker compose down
docker compose up -d postgres
docker compose exec -T postgres psql -U quotenode quotenode < backup-before-upgrade.sql
docker compose up -d
Przypinanie tagów obrazów
Przewodniki instalacji używają tagów latest dla uproszczenia. W przypadku wdrożeń produkcyjnych przypisz konkretne tagi wersji, aby kontrolować moment przeprowadzania aktualizacji:
services:
backend:
image: ghcr.io/lesisty7/quotenode/quotenode-api:v0.9.0-beta
frontend:
image: ghcr.io/lesisty7/quotenode/quotenode-frontend:v0.9.0-beta
Następnie zaktualizuj, zmieniając tag i uruchamiając docker compose up -d.
Format wersji
QuoteNode używa wersjonowania semantycznego z przyrostkiem kanału:
v0.9.0-alpha— wczesny etap rozwojuv0.9.0-beta— publiczna betav0.9.0-rc— kandydat do wydaniav0.9.0— stabilne wydanie
Manifest wydań zawiera pola version, channel, label i imageTags, dzięki czemu frontend może dokładnie porównywać wersje.