Betrieb auf dem Server und automatische Pruefungen (CI) #18

Open
opened 2026-10-08 10:23:25 +02:00 by lena · 2 comments
Collaborator

Ziel

Die App laeuft auf dem Server neben Checkly und wird bei jedem Push automatisch geprueft und als Image gebaut - nach dem Muster von Checkly (docker-compose.yml, .gitea/workflows/ci.yml).

Grundlage

PRD Kapitel 18 und 19; CLAUDE.md "Technik-Stapel" (Betrieb, CI). Aufgefallen beim Bau von #1.

Abhaengig von

#1

Akzeptanzkriterien

  • AK-1: Jeder Push auf master startet automatische Pruefungen: Server bauen und testen (inklusive der PostgreSQL-Tests per Testcontainers), Oberflaeche bauen, Lint und Tests. Das Ergebnis ist auf git.butzei.de unter "Actions" sichtbar.
  • AK-2: Sind die Pruefungen gruen, wird das Image git.butzei.de/robert/rezeptbuch gebaut und hochgeladen.
  • AK-3: Eine docker-compose.yml fuer den Server (App + PostgreSQL hinter Traefik, HTTPS) mit .env.example: Datenbank-Passwort, HOUSEHOLD_INITIAL_PASSWORD, DATA_PROTECTION_KEY (sonst sind nach jedem Update alle Geraete abgemeldet, vgl. #1 AK-3).
  • AK-4: Eine kurze Anleitung fuer den Admin: erstes Starten, Startpasswort setzen, Update einspielen.

Nicht in dieser Stufe

  • Datensicherung (MVP-2)

Offene Fragen

  1. Unter welcher Adresse soll das Kochbuch erreichbar sein? (Entscheidung Lena/Admin)
  2. Darf die CI auf dem Server Docker fuer die Datenbank-Tests nutzen (wie bei Checkly)? (Admin)
## Ziel Die App laeuft auf dem Server neben Checkly und wird bei jedem Push automatisch geprueft und als Image gebaut - nach dem Muster von Checkly (`docker-compose.yml`, `.gitea/workflows/ci.yml`). ## Grundlage PRD Kapitel 18 und 19; CLAUDE.md "Technik-Stapel" (Betrieb, CI). Aufgefallen beim Bau von #1. ## Abhaengig von #1 ## Akzeptanzkriterien - **AK-1:** Jeder Push auf `master` startet automatische Pruefungen: Server bauen und testen (inklusive der PostgreSQL-Tests per Testcontainers), Oberflaeche bauen, Lint und Tests. Das Ergebnis ist auf git.butzei.de unter "Actions" sichtbar. - **AK-2:** Sind die Pruefungen gruen, wird das Image `git.butzei.de/robert/rezeptbuch` gebaut und hochgeladen. - **AK-3:** Eine `docker-compose.yml` fuer den Server (App + PostgreSQL hinter Traefik, HTTPS) mit `.env.example`: Datenbank-Passwort, `HOUSEHOLD_INITIAL_PASSWORD`, `DATA_PROTECTION_KEY` (sonst sind nach jedem Update alle Geraete abgemeldet, vgl. #1 AK-3). - **AK-4:** Eine kurze Anleitung fuer den Admin: erstes Starten, Startpasswort setzen, Update einspielen. ## Nicht in dieser Stufe - Datensicherung (MVP-2) ## Offene Fragen 1. Unter welcher Adresse soll das Kochbuch erreichbar sein? (Entscheidung Lena/Admin) 2. Darf die CI auf dem Server Docker fuer die Datenbank-Tests nutzen (wie bei Checkly)? (Admin)
Author
Collaborator

Hinweis aus der Sicherheitspruefung von #4 (Session "Go [7041ff]"): In der docker-compose.yml fuer den Server dem Kochbuch-Container ein Speicherlimit geben (z. B. mem_limit: 1g). Die App liest fremde Seiten und Bilder; ist sie begrenzt, kann ein Fehler dort nie den Speicher fuer Checkly auf demselben Server aufbrauchen.

Hinweis aus der Sicherheitspruefung von #4 (Session "Go [7041ff]"): In der docker-compose.yml fuer den Server dem Kochbuch-Container ein Speicherlimit geben (z. B. `mem_limit: 1g`). Die App liest fremde Seiten und Bilder; ist sie begrenzt, kann ein Fehler dort nie den Speicher fuer Checkly auf demselben Server aufbrauchen.
Author
Collaborator

Hinweis aus #16 (Session "Go [7041ff]"): In der docker-compose.yml fuer den Server die Einstellung Forgejo__Token (z. B. aus FORGEJO_FEEDBACK_TOKEN) aufnehmen, sonst ist "Problem oder Idee melden" ausgeblendet. Der Token braucht nur das Recht write:issue fuer robert/rezeptbuch.

Hinweis aus #16 (Session "Go [7041ff]"): In der docker-compose.yml fuer den Server die Einstellung `Forgejo__Token` (z. B. aus FORGEJO_FEEDBACK_TOKEN) aufnehmen, sonst ist "Problem oder Idee melden" ausgeblendet. Der Token braucht nur das Recht `write:issue` fuer robert/rezeptbuch.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
robert/rezeptbuch#18
No description provided.