f7d3df128f
Compose services, Dockerfile, and deploy notes for pi.schwenk.online with OpenRouter and external Authelia middleware. Co-authored-by: Cursor <cursoragent@cursor.com>
121 lines
3.8 KiB
Markdown
121 lines
3.8 KiB
Markdown
# 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 | **Gitea** — `ssh://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 |
|
|
| Push notify | **`ntfyschwenkonline`** on each machine (`/usr/local/bin`) → `ntfy.schwenk.online`, topic = hostname |
|
|
|
|
---
|
|
|
|
## 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
|
|
|
|
```bash
|
|
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:
|
|
|
|
```yaml
|
|
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`:
|
|
|
|
```markdown
|
|
## Infrastructure (project-local)
|
|
- Workdir: …
|
|
- Mounts: …
|
|
- Local services: …
|
|
- Repo layout: …
|
|
```
|
|
|
|
Agent: read this SOUL section on Tier 1/2 startup when present.
|