## Summary
- **Removes the seed step entirely** — fresh deploys no longer need `RUN_DB_SEED=true` or any CLI command
- **Deletes static JSON files** (`data/recipes.json`, `data/site.json`) — Postgres is now the single source of truth for all content
- **`load_site_settings()` no longer throws** when `site_settings` table is empty; returns `default_site_settings()` placeholders instead of a 503
- Removes legacy JSONB migration path from `helpers.php`
- Drops `RUN_DB_SEED` env var from `docker-compose.yml` and the seed block from `docker/entrypoint.sh`
- Updates `docs/COOLIFY.md` to reflect the new seedless deployment workflow
- Adds `.claude/launch.json` with dev server launch configurations
## New deployment flow
1. Deploy with `DATABASE_URL` + `FLIXCOOKS_ADMIN_KEY`
2. Container starts → schema auto-applied → site runs immediately
3. Admin fills in recipes + legal settings via `/admin.php` — no CLI step needed
## Behaviour with empty DB (tested locally)
| Before | After |
|--------|-------|
| HTTP 503 „Datenbank nicht verfügbar" | Site renders normally — 0 recipes, placeholder imprint/privacy |
## Test plan
- [x] Verified 4 recipes + 40 site_settings rows in local DB before removing seed files
- [x] Truncated local DB → confirmed site loads without 503
- [x] Re-seeded via `docker exec` to restore dev state
- [x] `docker compose up --build` starts cleanly without `RUN_DB_SEED`
## Prod migration note
Before merging, export local DB content and restore to prod:
```bash
docker exec flixcooks-website-postgres-1 pg_dump \
-U flixcooks -d flixcooks --data-only --disable-triggers \
-t recipes -t recipe_translations -t recipe_tags \
-t recipe_ingredients -t recipe_utensils -t recipe_steps \
-t site_settings > prod-seed.sql
# then: psql <PROD_DATABASE_URL> < prod-seed.sql
```
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
RUN_DB_SEED=trueor any CLI commanddata/recipes.json,data/site.json) — Postgres is now the single source of truth for all contentload_site_settings()no longer throws whensite_settingstable is empty; returnsdefault_site_settings()placeholders instead of a 503helpers.phpRUN_DB_SEEDenv var fromdocker-compose.ymland the seed block fromdocker/entrypoint.shdocs/COOLIFY.mdto reflect the new seedless deployment workflow.claude/launch.jsonwith dev server launch configurationsNew deployment flow
DATABASE_URL+FLIXCOOKS_ADMIN_KEY/admin.php— no CLI step neededBehaviour with empty DB (tested locally)
Test plan
docker execto restore dev statedocker compose up --buildstarts cleanly withoutRUN_DB_SEEDProd migration note
Before merging, export local DB content and restore to prod:
🤖 Generated with Claude Code