Grzybcio Wiki
Marketplace website

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=1

Wariant 1 — Node.js

Pobierz repozytorium

git clone https://github.com/Grzybcios/GrzybcioRynekWeb-strona.git
cd GrzybcioRynekWeb-strona

Utwórz plik .env.local

Skopiuj przykład:

cp .env.example .env.local

i uzupełnij dwie najważniejsze wartości:

.env.local
MARKET_API_URL=http://127.0.0.1:8765
MARKET_API_KEY=twoj-klucz-z-config-yml

Klucz bierzesz z plugins/GrzybcioRynekWeb/config.yml.

Zainstaluj zależności i zbuduj

npm install
npm run build

Uruchom

npm start

Strona 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 startup

albo usługi systemd na Linuksie.

Wariant 2 — Docker

Utwórz plik .env

cp .env.example .env

Adres 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:8765

docker-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 --build

Sprawdź

docker compose logs -f

Strona 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 --build

Zmienne 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

TestCzego dowodzi
Strona się otwieraNext.js działa
Widać ofertyPołączenie z mostem i klucz są poprawne
Oferta pojawia się bez odświeżania po wystawieniu w grzeSSE działa
Przełącznik PL/EN zmienia językInterfejs wczytał tłumaczenia

Jeśli strona się otwiera, ale ofert nie ma — patrz Problemy.

On this page