Scaffold webu na Payload CMS 3 + Next.js nad SQLite
CI / test (push) Failing after 1m42s
CI / build-and-push (push) Has been skipped

Kostra prezentace s vlastní administrací pro Martina Reinera.

Obsah:
- kolekce Products (obrázky, volné parametry, cena, dostupnost, skrytí),
  Media se zmenšeninami, Pages, Users bez veřejné registrace
- veřejná část: výpis nabídky, detail položky, statické stránky
- /api/health pro Docker HEALTHCHECK

Provoz:
- Dockerfile, docker-compose.yml (vývoj) a docker-compose.prod.yml
  (nasazení z Gitea registry)
- CI v Gitea Actions: lint -> testy -> build -> push image
- úvodní migrace databáze

Stránky jsou force-dynamic, aby se úprava položky projevila hned;
schéma se za běhu nedomýšlí (push: false), migrace se commitují.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-30 13:13:23 +02:00
co-authored by Claude Opus 5
parent fedccbee93
commit c8e435139e
49 changed files with 13152 additions and 49 deletions
+25
View File
@@ -0,0 +1,25 @@
# Vzor konfigurace. Zkopíruj do `.env` a vyplň. `.env` NIKDY necommituj.
# Jméno Compose projektu odlišuje produkci od stagingu (vlastní volumes).
PROJECT=reiner-zbrane
APP_PORT=3000
# Která verze image má běžet. Rollback = přepsat na starší SHA a `pull` + `up -d`.
IMAGE_TAG=latest
# SQLite soubor. V kontejneru leží ve volume /app/data, takže přežije redeploy.
DATABASE_URI=file:./data/reiner.db
# Klíč pro podpis session cookie v produkci náhodný řetězec min. 32 znaků!
# Vygeneruj: openssl rand -base64 32
PAYLOAD_SECRET=zmen-me-na-nahodny-retezec
# Veřejná adresa webu Payload z ní skládá odkazy na obrázky a admin.
# Zápisy z jiné adresy Payload odmítá (CSRF), takže tohle musí sedět s tím,
# co máš v prohlížeči v adresním řádku.
NEXT_PUBLIC_SERVER_URL=http://localhost:3000
# Další adresy, ze kterých smí admin zapisovat oddělené čárkou.
# Nech prázdné, pokud web otevíráš jen přes adresu výše.
# Např. při přístupu z jiného stroje v LAN: CSRF_ORIGINS=http://10.0.0.110:3000
CSRF_ORIGINS=