feat: manual deploy-app workflow for apps/ with build support

Add workflow_dispatch-only deploy-app action, deploy-app.sh script,
apps/_template for Cursor, and SOUL/README split between static
webhook deploy and app compose profiles.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Frank Schwenk
2026-07-05 16:47:59 +02:00
parent 3c418e6ad1
commit deac59d55a
8 changed files with 197 additions and 8 deletions
+19 -3
View File
@@ -42,14 +42,30 @@ Fränky — und ggf. Gäste mit Link zu einem konkreten Pfad (`/thema-xy/`).
- **Workdir (boka):** `/home/frank/playground.schwenk.online` — Git-Clone dieses Repos
- **Webroot:** `public/` → nginx
- **Deploy:** Gitea Push-Webhook → `https://playground.schwenk.online/hooks/deploy`
- **Deploy static:** Push-Webhook → `hooks/deploy``git pull` only
- **Deploy apps:** `.gitea/workflows/deploy-app.yml` → manual `workflow_dispatch`
- **Cursor workflow:** `.gitea/workflows/cursor.yml` mit `push_to_default_branch: "true"`
## Project-Specific Rules
### Static content (`public/`)
- Content lebt **verzeichnisbasiert** unter `public/<kebab-slug>/` — typisch `index.html`, keine feste Dateiliste.
- Cursor entscheidet selbst: neues Verzeichnis vs. `index2.html` / Assets im bestehenden Ordner.
- Plain HTML/CSS only — kein npm, kein Bundler.
- **Kein** `public/index.html` und keine Pflege einer Übersichtsseite, außer Fränky fordert es explizit.
- Bot-Commits nur unter `public/` und nur was zum Issue passt — keine Drive-by-Änderungen an Infra-Dateien.
- `@cursor` in Issue-Kommentaren: Aufgabe erledigen, kurz im Issue kommentieren, auf `main` pushen.
- Push auf `main` → Webhook deployt **nur** `git pull` (kein Build).
### Apps (`apps/<slug>/`)
- Für Web-Apps, npm, Docker, Datenbank: Code unter `apps/<kebab-slug>/`.
- `compose.yml` um Service mit `profiles: ["<slug>"]` ergänzen (Vorlage: `apps/_template/README.md`).
- **Deploy:** `.gitea/workflows/deploy-app.yml`**nur** `workflow_dispatch` (manuell in Gitea). Optional eigene `.gitea/workflows/deploy-<slug>.yml` aus `apps/_template/workflow-deploy.yml.template`.
- Push-Webhook und `deploy-app` nicht vermischen: Webhook = statisch; App-Workflow = Build + `docker compose --profile <slug> up -d --build`.
- Nach Implementierung im Issue kommentieren: Workflow manuell starten.
### Allgemein
- `@cursor` in Issue-Kommentaren: Aufgabe erledigen, kurz kommentieren, auf `main` pushen.
- Neue Workflows nur unter `.gitea/workflows/`; App-Deploy-Workflows **nur** mit `workflow_dispatch` (kein `push`-Trigger), außer Fränky sagt es explizit.
- Keine Drive-by-Änderungen an Infra ohne Bezug zum Issue.