Jak zacząć pracę z Open Mercato

Uruchom Open Mercato na swoim komputerze, zaloguj się do panelu i dodaj pierwszą stronę we własnym module.

Open Mercato 0.7.0 · instalacja lokalna · macOS / Linux / WSL2

Przygotuj narzędzia

Zainstaluj Node.js 24.x oraz Docker z Compose. Uruchom Docker Desktop, jeśli z niego korzystasz. Na Windowsie wykonuj polecenia w terminalu WSL2 z włączoną integracją Dockera.

Terminal
node --version
docker compose version
corepack enable

Node powinien zwrócić v24.x.x, a Compose swój numer wersji. corepack enable udostępnia polecenie Yarn; projekt wybierze wersję 4.17.1.

Utwórz aplikację

W katalogu, w którym trzymasz projekty, uruchom poniższe polecenia. Powstanie nowy folder mercato-demo.

Terminal
npx create-mercato-app@0.7.0 \
  mercato-demo \
  --preset classic \
  --agents none \
  --no-init-git
cd mercato-demo
yarn --version

classic wybiera standardowy zestaw modułów. --agents none pomija konfigurację asystentów AI, a --no-init-git pomija tworzenie repozytorium Git. Na pytanie npm o pobranie pakietu odpowiedz y.

Jesteś teraz w katalogu aplikacji. yarn --version powinno zwrócić 4.17.1. Wszystkie kolejne polecenia wykonuj tutaj.

Uruchom bazę i usługi

Skopiuj konfigurację lokalną i uruchom usługi z dołączonego pliku Compose. PostgreSQL przechowuje dane, Redis obsługuje m.in. pamięć podręczną i kolejki, a Meilisearch służy do wyszukiwania.

Terminal
cp .env.example .env
docker compose up -d
docker compose ps

W nowym projekcie ustawienia w .env pasują do tych kontenerów. Baza działa pod adresem:

.env
DATABASE_URL=postgres://postgres:postgres@localhost:5432/open-mercato

Poczekaj, aż docker compose ps pokaże trzy działające usługi, a PostgreSQL status healthy. To konfiguracja do pracy na własnym komputerze; zawiera przykładowe hasła.

Uruchom aplikację i zaloguj się

Terminal
yarn install
yarn setup

yarn install pobiera zależności. yarn setup generuje pliki aplikacji, tworzy strukturę bazy, dodaje dane początkowe i uruchamia serwer. Zostaw ten terminal otwarty.

Otwórz localhost:3000/backend. W tej lokalnej instalacji konto administratora to superadmin@acme.com, a hasło to secret. Po zalogowaniu zobaczysz panel aplikacji.

Dodaj własną stronę

Zatrzymaj serwer skrótem Ctrl+C. W edytorze utwórz poniższe trzy pliki wraz z katalogami. Moduł hello doda prostą stronę dostępną po zalogowaniu.

src/modules/hello/index.ts
export const metadata = {
  name: 'hello',
  title: 'Hello',
  version: '0.1.0',
}
src/modules/hello/backend/page.meta.ts
export const metadata = {
  requireAuth: true,
  pageTitle: 'Hello',
}
src/modules/hello/backend/page.tsx
import { Page, PageHeader, PageBody } from '@open-mercato/ui/backend/Page'

export default function HelloPage() {
  return (
    <Page>
      <PageHeader title="Hello, Mercato" />
      <PageBody>
        <p>My first Open Mercato page.</p>
      </PageBody>
    </Page>
  )
}

W src/modules.ts dodaj poniższy wpis wewnątrz tablicy enabledModules, obok istniejących modułów:

src/modules.ts · enabledModules
{ id: 'hello', from: '@app' },

Teraz wygeneruj rejestr modułów i ponownie uruchom aplikację:

Terminal
yarn generate
yarn dev

Wejdź na localhost:3000/backend/hello. Powinien pojawić się nagłówek Hello, Mercato. Zmień tekst akapitu w page.tsx i zapisz plik, żeby zobaczyć zmianę w przeglądarce.

Wróć do pracy następnego dnia

Kolejnego dnia otwórz terminal w katalogu mercato-demo i uruchom:

Terminal
docker compose start
yarn dev

Po pracy zatrzymaj serwer przez Ctrl+C, a usługi poleceniem poniżej. Dane pozostaną na dysku. Zwykłe wznowienie pracy nie wymaga ponownego yarn setup.

Terminal
docker compose stop

Jeśli coś nie działa

Brakuje Corepack lub Yarn ma wersję 1.x

Jeśli brakuje Corepack, zainstaluj go poniższym poleceniem. Następnie włącz Yarn i sprawdź jego wersję w katalogu aplikacji.

Terminal
npm install --global corepack
corepack enable
yarn --version

Jeśli instalacja zgłasza konflikt z istniejącym poleceniem Yarn, usuń jego poprzednią globalną instalację, np. npm uninstall --global yarn, i ponów instalację Corepack.

Baza nie odpowiada lub port 5432 jest zajęty

Najpierw sprawdź docker compose ps i docker compose logs postgres. Przy zajętym porcie zmień w .env oba poniższe ustawienia, po czym wykonaj docker compose up -d i ponów yarn setup.

.env
POSTGRES_PORT=5433
DATABASE_URL=postgres://postgres:postgres@localhost:5433/open-mercato
Własna strona zwraca 404

Sprawdź nazwę folderu src/modules/hello, wpis hello w enabledModules oraz domyślny eksport funkcji w backend/page.tsx. Zatrzymaj serwer, uruchom yarn generate, następnie yarn dev. Adres tej strony to /backend/hello.

Co dodać do własnego modułu?

Kod i dokumentacja