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>
25 lines
809 B
YAML
25 lines
809 B
YAML
# Produkční nasazení: image se STAHUJE z Gitea registry (nestaví se lokálně).
|
||
# Server nepotřebuje zdrojové kódy – stačí tento soubor a .env.
|
||
#
|
||
# Na serveru (jednorázově): docker login gitea.doubynet.eu
|
||
# Nasazení / aktualizace:
|
||
# docker compose -f docker-compose.prod.yml pull
|
||
# docker compose -f docker-compose.prod.yml up -d
|
||
name: ${PROJECT:-reiner-zbrane}
|
||
|
||
services:
|
||
app:
|
||
image: gitea.doubynet.eu/honza/zbrane-reiner-web:${IMAGE_TAG:-latest}
|
||
ports:
|
||
# Pokud Caddy běží na tomtéž stroji, předsaď 127.0.0.1: a nic není venku.
|
||
- "${APP_PORT:-3000}:3000"
|
||
env_file: .env
|
||
volumes:
|
||
- data:/app/data # databázový soubor
|
||
- media:/app/media # nahrané obrázky přežijí redeploy
|
||
restart: unless-stopped
|
||
|
||
volumes:
|
||
data:
|
||
media:
|