Files
Frank Schwenk deac59d55a 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>
2026-07-05 16:48:03 +02:00

3.1 KiB

SOUL.md — playground

Agent Quick Start

  • What: Statische Experimentier-Site — @cursor in Gitea-Issues erzeugt HTML unter public/<slug>/, Auto-Deploy per Push-Webhook auf boka.
  • Domain: https://playground.schwenk.online
  • Gitea: ssh://git@gitea.schwenk.online:2222/froxxxy/playground.git
  • Server: boka → /home/frank/playground.schwenk.online
  • Commit policy: Session-Agent committet nicht; @cursor-Bot pusht direkt auf main (Workflow-Flag)

Product Name

playground

One-Liner

Cursor-gesteuerte Static-Site zum Ausprobieren — Inhalte per Gitea-Issue, live ohne Build-Pipeline.

Vision

Spielwiese für „recherchiere X, schreib einen Onepager“ und ähnliche Prompts: Gitea als Steuerung, Cursor als Autor, nginx als Auslieferung.

Audience

Fränky — und ggf. Gäste mit Link zu einem konkreten Pfad (/thema-xy/).

Tone & Wording

  • Voice: direkt, sachlich, kein Marketing
  • Formality: du
  • Generated content: Deutsch, Quellen im Footer wo sinnvoll
  • Forbidden: LinkedIn-Slop, „leverage“, leere Landing-Page-Floskeln

Non-Goals

  • Keine zentrale Landing-Liste oder Startseiten-Index
  • Kein Framework, kein Build-Step in der Testphase
  • Kein PR-Review-Flow für Bot-Commits
  • Kein Tracking, keine Analytics-Pflicht

Infrastructure (project-local)

  • Workdir (boka): /home/frank/playground.schwenk.online — Git-Clone dieses Repos
  • Webroot: public/ → nginx
  • Deploy static: Push-Webhook → hooks/deploygit 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.
  • 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.ymlnur 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.