Monorepo dla stosu:
Astrona Cloudflare Workers wapps/frontAxum+sqlxwapps/server-axumPostgresjako zewnętrzna baza wskazywana przezDATABASE_URLTurborepojako warstwa DX i orkiestracji tasków
- Node.js
22+ pnpm9+- Rust toolchain z
cargo,rustfmticlippy - działający Postgres dostępny pod
DATABASE_URL
corepack enable pnpm
pnpm install
cp apps/front/.env.example apps/front/.env
cp apps/server-axum/.env.example apps/server-axum/.env
# Upewnij się, że DATABASE_URL wskazuje działający Postgres.
pnpm migrate
pnpm bootstrap-admin
pnpm devpnpm dev uruchamia równolegle:
front:astro dev --host --port 4321server-axum:cargo watch -x runjeślicargo-watchjest dostępny, inaczejcargo run --locked
pnpm dev
pnpm dev:front
pnpm dev:server
pnpm migrate
pnpm bootstrap-admin
pnpm lint
pnpm check-types
pnpm test
pnpm build
pnpm verify
pnpm deploy:frontapps/front: Astro SSR, shadcn, design wdesign.penapps/server-axum: backend Axum, auth, migracje i testy integracyjnepackages/eslint-config: współdzielony ESLint configpackages/typescript-config: współdzielony TypeScript configpackages/ui: eksperymentalna paczka UI, obecnie auth wfrontkorzysta z lokalnegosrc/components/ui
- Diagram C4 systemu znajdziesz w
docs/architecture/c4.md
Aktualny zakres auth:
POST /auth/loginPOST /auth/registerPOST /auth/logoutGET /auth/me- publiczne strony
/logini/register - redirect-only
/ - SSR-protected
/dashboard - backendowe sesje w Postgresie z
HttpOnlycookieauth_session
Design-to-code dla auth jest opisany w:
SITE_URL=http://localhost:4321
PUBLIC_API_BASE_URL=http://localhost:3000
API_SERVER_BASE_URL=http://localhost:3000
GEOCODER_BASE_URL=http://localhost:2322APP_HOST=0.0.0.0
APP_PORT=3000
DATABASE_URL=postgres://god:god@127.0.0.1:5432/god
FRONTEND_ORIGIN=http://localhost:4321
AUTH_COOKIE_SECURE=false
# AUTH_COOKIE_DOMAIN=.example.com
BOOTSTRAP_ADMIN_EMAIL=admin@example.com
BOOTSTRAP_ADMIN_PASSWORD=change-me-now
RUST_LOG=infoRepo ma minimalny workflow GitHub Actions w .github/workflows/ci.yml, który:
- instaluje Node, pnpm i Rust,
- uruchamia
pnpm lint, - uruchamia
pnpm check-types, - uruchamia
pnpm build, - uruchamia backendowe testy auth na Postgres service.
compose.yaml w tym repo uruchamia konsolę Autobase oraz opcjonalny geokoder Photon pod profilem geocoder. Nie zastępuje bazy aplikacyjnej dla server-axum, więc testy i migracje nadal wymagają działającego Postgresa pod DATABASE_URL.
Photon nie startuje przy zwykłym docker compose up. Aby uruchomić tylko geokoder lokalnie:
docker compose --profile geocoder up -d photonLokalny endpoint Photon będzie dostępny pod http://localhost:2322.
Praktyczna uwaga: REGION=europe oznacza duży indeks danych. Pierwszy start może pobierać i rozpakowywać dane przez długi czas oraz wymagać dziesiątek GB wolnego miejsca na dysku.