Aktualizacja systemu
Dokumentacja dla deweloperów
Ostatnia aktualizacja: 2025-12-28
Spis treści
Dział zatytułowany „Spis treści”- Przegląd procesu aktualizacji
- Aktualizacja backendu (Laravel)
- Aktualizacja frontendu (React)
- Aktualizacja kontenerów Docker
- Migracje bazy danych
- Rollback - cofanie zmian
- Checklist aktualizacji
Przegląd procesu aktualizacji
Dział zatytułowany „Przegląd procesu aktualizacji”┌─────────────────────────────────────────────────────────────────┐│ Proces aktualizacji │├─────────────────────────────────────────────────────────────────┤│ ││ 1. Backup ─────▶ 2. Pull ─────▶ 3. Dependencies ─────▶ 4. Build ││ bazy git composer/npm frontend ││ ││ 5. Migrate ────▶ 6. Cache ────▶ 7. Restart ─────▶ 8. Verify ││ database clear services health ││ │└─────────────────────────────────────────────────────────────────┘Przed aktualizacją
Dział zatytułowany „Przed aktualizacją”# 1. Sprawdź aktualną wersjęcat /home/ready4docs/public_html/frontend/src/lib/version.ts
# 2. Sprawdź status gitcd /home/ready4docs/public_htmlgit statusgit log --oneline -5
# 3. Wykonaj backup bazysudo systemctl start ready4docs-backup.serviceAktualizacja backendu (Laravel)
Dział zatytułowany „Aktualizacja backendu (Laravel)”Pełna aktualizacja
Dział zatytułowany „Pełna aktualizacja”cd /home/ready4docs/public_html/backend
# 1. Pobierz zmiany z repozytoriumgit pull origin main
# 2. Zainstaluj zależności PHPcomposer install --no-dev --optimize-autoloader
# 3. Uruchom migracjephp artisan migrate --force
# 4. Wyczyść cachephp artisan config:clearphp artisan cache:clearphp artisan route:clearphp artisan view:clear
# 5. Zbuduj cache (produkcja)php artisan config:cachephp artisan route:cachephp artisan view:cache
# 6. Restart PHP-FPMsudo systemctl restart php8.4-fpm
# 7. Restart queue workerdocker restart readynextos-queueTylko kod (bez migracji)
Dział zatytułowany „Tylko kod (bez migracji)”cd /home/ready4docs/public_html/backend
git pull origin mainphp artisan config:clearphp artisan cache:clearsudo systemctl restart php8.4-fpmAktualizacja zależności Composer
Dział zatytułowany „Aktualizacja zależności Composer”cd /home/ready4docs/public_html/backend
# Aktualizuj wszystkie pakietycomposer update --no-dev
# Aktualizuj konkretny pakietcomposer update laravel/framework
# Po aktualizacjiphp artisan config:clearsudo systemctl restart php8.4-fpmAktualizacja frontendu (React)
Dział zatytułowany „Aktualizacja frontendu (React)”Pełna aktualizacja
Dział zatytułowany „Pełna aktualizacja”cd /home/ready4docs/public_html/frontend
# 1. Pobierz zmianygit pull origin main
# 2. Zainstaluj zależnościnpm ci
# 3. Zbuduj produkcyjną wersjęnpm run build
# 4. Sprawdź czy build się powiódłls -la dist/Tylko rebuild (bez git pull)
Dział zatytułowany „Tylko rebuild (bez git pull)”cd /home/ready4docs/public_html/frontendnpm run buildAktualizacja zależności npm
Dział zatytułowany „Aktualizacja zależności npm”cd /home/ready4docs/public_html/frontend
# Sprawdź przestarzałe pakietynpm outdated
# Aktualizuj wszystkienpm update
# Aktualizuj konkretny pakietnpm update @tanstack/react-query
# Po aktualizacji - rebuildnpm run buildWeryfikacja wersji
Dział zatytułowany „Weryfikacja wersji”# Sprawdź wersję aplikacjigrep -A5 "VERSION" /home/ready4docs/public_html/frontend/src/lib/version.tsAktualizacja kontenerów Docker
Dział zatytułowany „Aktualizacja kontenerów Docker”Automatyczna aktualizacja (Watchtower)
Dział zatytułowany „Automatyczna aktualizacja (Watchtower)”Watchtower automatycznie aktualizuje kontenery z GHCR co 6 godzin.
# Sprawdź status Watchtowerdocker logs readynextos-watchtower --tail 20
# Wymuś natychmiastowe sprawdzeniedocker exec readynextos-watchtower /watchtower --run-onceRęczna aktualizacja wszystkich kontenerów
Dział zatytułowany „Ręczna aktualizacja wszystkich kontenerów”cd /home/ready4docs
# 1. Pobierz nowe obrazydocker compose pull
# 2. Uruchom z nowymi obrazamidocker compose up -d
# 3. Usuń stare obrazydocker image prune -fAktualizacja konkretnego kontenera
Dział zatytułowany „Aktualizacja konkretnego kontenera”cd /home/ready4docs
# Przykład: aktualizacja Redisdocker compose pull redisdocker compose up -d redisAktualizacja obrazów GHCR (PHP, Donut-OCR)
Dział zatytułowany „Aktualizacja obrazów GHCR (PHP, Donut-OCR)”# 1. Zaloguj się do GHCR (jeśli nie zalogowany)echo $GITHUB_TOKEN | docker login ghcr.io -u USERNAME --password-stdin
# 2. Pobierz najnowsze obrazydocker pull ghcr.io/milocha/ready4docs-php:latestdocker pull ghcr.io/milocha/ready4docs-donut-ocr:latest
# 3. Restart kontenerówdocker compose up -d reverb queue-worker donut-ocrMigracje bazy danych
Dział zatytułowany „Migracje bazy danych”Uruchomienie migracji
Dział zatytułowany „Uruchomienie migracji”cd /home/ready4docs/public_html/backend
# Sprawdź status migracjiphp artisan migrate:status
# Uruchom nowe migracjephp artisan migrate --force
# Uruchom z verbosephp artisan migrate --force -vSprawdzenie przed migracją
Dział zatytułowany „Sprawdzenie przed migracją”# Co zostanie wykonane (dry-run)php artisan migrate --pretendRollback ostatniej migracji
Dział zatytułowany „Rollback ostatniej migracji”# Cofnij ostatnią partię migracjiphp artisan migrate:rollback
# Cofnij konkretną liczbę krokówphp artisan migrate:rollback --step=3Migracja z seedami
Dział zatytułowany „Migracja z seedami”# Migracja + seedy (tylko dev!)php artisan migrate:fresh --seedRollback - cofanie zmian
Dział zatytułowany „Rollback - cofanie zmian”Rollback kodu (Git)
Dział zatytułowany „Rollback kodu (Git)”cd /home/ready4docs/public_html
# Sprawdź historięgit log --oneline -10
# Cofnij do konkretnego commitagit checkout <commit-hash>
# LUB przywróć poprzednią wersjęgit revert HEAD
# Po rollback - przebudujcd backend && composer install --no-devcd ../frontend && npm ci && npm run buildRollback frontendu
Dział zatytułowany „Rollback frontendu”cd /home/ready4docs/public_html/frontend
# Sprawdź poprzednie buildy (jeśli były archiwizowane)ls -la /home/ready4docs/backups/frontend/
# Przywróć poprzedni buildrm -rf dist/cp -r /home/ready4docs/backups/frontend/dist-YYYYMMDD dist/Rollback bazy danych
Dział zatytułowany „Rollback bazy danych”# 1. Zatrzymaj aplikacjęsudo systemctl stop php8.4-fpmdocker stop readynextos-queue readynextos-reverb
# 2. Przywróć z backupugunzip -c /home/ready4docs/backup/db/ready4docs_YYYYMMDD_030000.sql.gz | \ docker exec -i ready4docs-db psql -U ready4docs ready4docs
# 3. Uruchom aplikacjęsudo systemctl start php8.4-fpmdocker start readynextos-queue readynextos-reverb
# 4. Wyczyść cachecd /home/ready4docs/public_html/backendphp artisan cache:clearChecklist aktualizacji
Dział zatytułowany „Checklist aktualizacji”Przed aktualizacją
Dział zatytułowany „Przed aktualizacją”- Backup bazy danych wykonany
- Sprawdzono status git (
git status- brak lokalnych zmian) - Poinformowano użytkowników o planowanym maintenance
- Sprawdzono wolne miejsce na dysku (
df -h)
Podczas aktualizacji
Dział zatytułowany „Podczas aktualizacji”-
git pull origin main- bez konfliktów -
composer install- bez błędów -
npm ci && npm run build- build OK -
php artisan migrate- migracje OK - Cache wyczyszczony
- PHP-FPM zrestartowany
- Queue worker zrestartowany
Po aktualizacji
Dział zatytułowany „Po aktualizacji”- Strona ładuje się poprawnie
- Logowanie działa
- API odpowiada (sprawdź
/backend/api/health) - WebSocket działa (sprawdź powiadomienia)
- Sprawdź logi błędów
# Szybka weryfikacjacurl -s https://your-domain.com/backend/api/health | jq
# Sprawdź logi błędówtail -20 /home/ready4docs/public_html/backend/storage/logs/laravel.logSkrypt automatycznej aktualizacji
Dział zatytułowany „Skrypt automatycznej aktualizacji”Zapisz jako /home/ready4docs/scripts/update.sh:
#!/bin/bashset -e
echo "=== ReadyNextOS Update Script ==="echo "Started at: $(date)"
cd /home/ready4docs/public_html
# 1. Backupecho "[1/8] Creating backup..."sudo systemctl start ready4docs-backup.service
# 2. Pullecho "[2/8] Pulling latest changes..."git pull origin main
# 3. Backend dependenciesecho "[3/8] Installing PHP dependencies..."cd backendcomposer install --no-dev --optimize-autoloader
# 4. Migrationsecho "[4/8] Running migrations..."php artisan migrate --force
# 5. Clear cacheecho "[5/8] Clearing cache..."php artisan config:clearphp artisan cache:clearphp artisan route:clearphp artisan view:clear
# 6. Build cacheecho "[6/8] Building cache..."php artisan config:cachephp artisan route:cache
# 7. Frontendecho "[7/8] Building frontend..."cd ../frontendnpm cinpm run build
# 8. Restart servicesecho "[8/8] Restarting services..."sudo systemctl restart php8.4-fpmdocker restart readynextos-queue readynextos-reverb
echo "=== Update completed at: $(date) ==="Użycie:
chmod +x /home/ready4docs/scripts/update.shsudo /home/ready4docs/scripts/update.shKontakt
Dział zatytułowany „Kontakt”W przypadku problemów z aktualizacją:
- Sprawdź logi:
tail -100 /home/ready4docs/public_html/backend/storage/logs/laravel.log - Sprawdź status serwisów:
docker psisudo systemctl status php8.4-fpm - Przywróć z backupu jeśli konieczne