Files
wtr/docs/deployment.md

2.3 KiB

Wdrożenie i Uruchamianie

Lokalnie

Wymagany jest Node.js 20.9 lub nowszy.

npm install
npm run dev

Domyślny adres lokalny:

http://localhost:3000

Build Produkcyjny

npm run build
npm run start

npm run build uruchamia build Next.js oraz kontrolę TypeScript wykonywaną przez Next.js.

Self-Hosting z Workerem Powiadomień

Worker powiadomień musi działać obok uruchomionej aplikacji:

npm run start
npm run notifications:worker

Jeśli aplikacja działa na innym porcie, ustaw WTR_APP_URL:

WTR_APP_URL=http://127.0.0.1:4000 npm run notifications:worker

Worker sam wczytuje .env i .env.local, ale zmienne ustawione w shellu mają pierwszeństwo.

Vercel

  1. Umieść repozytorium w serwisie Git.
  2. Importuj projekt do Vercel jako aplikację Next.js.
  3. Nie dodawaj kluczy API dla danych pogodowych: publiczne endpointy IMGW, Open-Meteo i Nominatim nie wymagają ich w obecnej integracji.
  4. Wdróż standardowym buildem npm run build.

Proxy IMGW działa jako route handler Next.js i jest zgodne z hostingiem Vercel.

Jeśli używasz powiadomień na Vercel, endpointy harmonogramu muszą być wywoływane zewnętrznym cronem albo innym schedulerem. Sam route handler nie uruchamia się cyklicznie bez zewnętrznego wywołania.

Zmienne Środowiskowe

WEB_PUSH_VAPID_PUBLIC_KEY=
WEB_PUSH_VAPID_PRIVATE_KEY=
WEB_PUSH_VAPID_SUBJECT=mailto:admin@example.com
NOTIFICATIONS_CRON_SECRET=
WTR_APP_URL=http://127.0.0.1:3000
NOTIFICATIONS_WARNING_INTERVAL_MINUTES=5
NOTIFICATIONS_MORNING_BRIEF_TIME=07:00
NOTIFICATIONS_TOMORROW_BRIEF_TIME=18:00

Do zwykłego uruchomienia aplikacji pogodowej zmienne Web Push nie są wymagane. Są potrzebne dopiero dla powiadomień.

Jakość

Przed zakończeniem zmian uruchamiaj:

npm run lint
npm run build

Repozytorium nie ma obecnie osobnego skryptu testów, osobnego skryptu type-check ani formattera.

Bezpieczeństwo Zależności

Projekt używa Next.js 16.2.6. Znany status zależności obejmuje umiarkowane zgłoszenie GHSA-qx2v-qp2m-jg93 dla PostCSS 8.4.31 bundlowanego bezpośrednio przez Next.js. Główna konfiguracja projektu korzysta z PostCSS 8.4.49. Po publikacji poprawki upstream należy zaktualizować Next.js i ponownie uruchomić audyt.