Instalacja
Uruchomienie strony przez Node.js albo Dockera, z podłączeniem do mostu REST.
Najpierw most
Strona sama z siebie nic nie wie o rynku — potrzebuje działającego GrzybcioRynekWeb. Zanim tu wejdziesz, sprawdź, że ta komenda zwraca JSON:
curl -H "X-API-Key: twoj-klucz" http://127.0.0.1:8765/api/v1/listings?limit=1Wariant 1 — Node.js
Pobierz repozytorium
git clone https://github.com/Grzybcios/GrzybcioRynekWeb-strona.git
cd GrzybcioRynekWeb-stronaUtwórz plik .env.local
Skopiuj przykład:
cp .env.example .env.locali uzupełnij dwie najważniejsze wartości:
MARKET_API_URL=http://127.0.0.1:8765
MARKET_API_KEY=twoj-klucz-z-config-ymlKlucz bierzesz z plugins/GrzybcioRynekWeb/config.yml.
Zainstaluj zależności i zbuduj
npm install
npm run buildUruchom
npm startStrona nasłuchuje na porcie 3000. Wejdź na http://localhost:3000 i sprawdź, czy
widzisz oferty.
Uruchamianie w tle
npm start zatrzyma się, gdy zamkniesz terminal. Na serwerze użyj menedżera procesów —
na przykład PM2:
npm install -g pm2
pm2 start npm --name rynek -- start
pm2 save
pm2 startupalbo usługi systemd na Linuksie.
Wariant 2 — Docker
Utwórz plik .env
cp .env.example .envAdres mostu w Dockerze jest inny
Kontener ma własną sieć — 127.0.0.1 wskazuje na kontener, nie na hosta. Do mostu
działającego na maszynie gospodarza użyj:
MARKET_API_URL=http://host.docker.internal:8765docker-compose.yml ma już wpisane extra_hosts z mapowaniem host.docker.internal,
więc działa to także na Linuksie.
Zbuduj i uruchom
docker compose up -d --buildSprawdź
docker compose logs -fStrona będzie dostępna na porcie 3000. Kontener ma restart: unless-stopped, więc
wstanie sam po restarcie maszyny.
Aktualizacja przy Dockerze
git pull
docker compose up -d --buildZmienne NEXT_PUBLIC_ są wmurowane w build
Wszystko z przedrostkiem NEXT_PUBLIC_ trafia do kodu w trakcie budowania, nie
przy starcie. Po zmianie takiej zmiennej musisz przebudować obraz
(--build), inaczej stara wartość zostanie.
MARKET_API_URL i MARKET_API_KEY są czytane przy starcie, więc dla nich wystarczy
restart kontenera.
Sprawdzenie, czy wszystko gra
| Test | Czego dowodzi |
|---|---|
| Strona się otwiera | Next.js działa |
| Widać oferty | Połączenie z mostem i klucz są poprawne |
| Oferta pojawia się bez odświeżania po wystawieniu w grze | SSE działa |
| Przełącznik PL/EN zmienia język | Interfejs wczytał tłumaczenia |
Jeśli strona się otwiera, ale ofert nie ma — patrz Problemy.