Files
cursor-gitea-agent/INFRASTRUCTURE.md
T
Frank Schwenk 0c3f1ab86f feat: initial fork hardened for gitea.schwenk.online
Fork cursor-gitea-agent with jq event parsing, cached dependency install,
and composer-2.5 as the default agent runtime.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-05 15:28:55 +02:00

3.6 KiB

INFRASTRUCTURE.md — Hosts, Deploy, Git

Operational context for Fränky's environments. Read with AGENTS.md.


Overview

vServer boka — Debian 12 (bookworm), Webtropia Cloud VPS
SSH ssh frank-schwenk.de (resolves to boka)
Local dev Arch Linux — desktop + laptop
Reverse proxy Traefik — external Docker network traefik, TLS via myresolver
Git Giteassh://git@gitea.schwenk.online:2222/froxxxy/<repo>.git
Server app paths /home/frank/<domain>/ (e.g. /home/frank/schwenk.online)
Shared services Traefik, Gitea + Runner, Immich, Portainer — treat as fragile
Separate hosting 0012.de — Plesk webspace, FTP deploy — not boka Docker

Repo → Server Mapping

Local repo (~/git/froxxxy/) Server path Domain
schwenkonline /home/frank/schwenk.online schwenk.online
ytrecap /home/frank/ytrecap.schwenk.online ytrecap.schwenk.online
bringtake /home/frank/bringtake.schwenk.online bringtake.schwenk.online
vfbred /home/frank/vfb.red vfb.red
f12rocks /home/frank/f12.rocks f12.rocks
eselhoefede /home/frank/eselhoefe.de eselhoefe.de
mobea /home/frank/mobea.de mobea.de
fussballdeical /home/frank/fussballdeical.schwenk.online fussballdeical.schwenk.online
takeyourmeds /home/frank/medis.schwenk.online medis.schwenk.online
sboa /home/frank/affen.schwenk.online affen.schwenk.online

Paths follow the pattern: clone on server under /home/frank/, often named after the public domain.


Deploy (default)

Fränky deploys unless the project explicitly grants agent autonomy (project SOUL.md, README, or chat instruction).

Typical boka flow

ssh frank-schwenk.de
cd /home/frank/<project>
git pull
# build step if needed (npm run build, docker build, …)
docker compose up -d

Build-before-up varies by project (e.g. Astro: npm run build then nginx serves dist/).

0012.de (webspace)

  • FTP deploy via project scripts — see 0012 repo
  • External observer / monitoring of boka — do not assume same deploy path as VPS

Traefik Conventions

Standard labels on app containers:

traefik.enable=true
traefik.http.routers.<name>.rule=Host(`example.schwenk.online`)
traefik.http.routers.<name>.entrypoints=websecure
traefik.http.routers.<name>.tls.certresolver=myresolver

Networks: attach services to external network traefik for public ingress.


Gitea Actions / CI

Gitea runner is available on boka. Example workflow: schwenkonline/.gitea/workflows/deploy.yml (build, Playwright smoke, SSH deploy).

Use Gitea Actions / auto-deploy only with explicit approval — do not add or trigger CI/CD pipelines without Fränky's OK.


Shared Infrastructure — Hands Off

Do not casually change or restart:

  • Traefik (routes all public HTTPS)
  • Gitea (source of truth)
  • Immich (photo library)
  • Portainer

See BOUNDARIES.md for hard limits on docker compose down and config edits.


Project-local overrides

Global paths live here. Machine- and project-specific details belong in project SOUL.md:

  • App workdirs (~/.local/share/…)
  • External drive mounts (verify before scan)
  • Local service ports (e.g. local Immich vs. Immich on boka)
  • Multi-stack repo layout (CLI core vs. compose.yaml experiments)

Template for project SOUL.md:

## Infrastructure (project-local)
- Workdir: …
- Mounts: …
- Local services: …
- Repo layout: …

Agent: read this SOUL section on Tier 1/2 startup when present.