Infrastructure as Code — docker-compose Stacks, Configs, Architektur-Docs und ADRs für die Electric Horses / Richter & Zech Hetzner-Cloud-Infrastruktur.
Find a file
Benjamin Weinlich b3813ed6ac feat(stacks/eh-search): add site-search FastAPI service
Mirrors /opt/ai-apps/eh-search/ on the server, including the full
FastAPI app (intent routing, FTS+fuzzy+substring hybrid, multi-source
federation across vehicles + blog + brands + pages + static + tag
bridge), SQL schema (Postgres materialized view with german_unaccent
text search, pg_trgm for fuzzy), Dockerfile and compose.

Sanitized the hardcoded password in sql/01_init.sql — replaced with
REPLACE_ME_BEFORE_APPLYING placeholder since this repo is public.

The eh-search service binds only on the private network (10.0.0.8:8200)
and is reachable only via Pegasus nginx proxy at /api/search.

Refs OP#1094 OP#1105 OP#1112 OP#1116 OP#1117
2026-04-11 22:19:39 +02:00
docs/architecture docs(architecture): add ai-apps stack inventory snapshot 2026-04-11 22:19:25 +02:00
stacks feat(stacks/eh-search): add site-search FastAPI service 2026-04-11 22:19:39 +02:00
.gitignore chore(repo): initialize infrastructure-as-code repository 2026-04-11 22:19:10 +02:00
Agent.md chore(repo): initialize infrastructure-as-code repository 2026-04-11 22:19:10 +02:00
README.md chore(repo): initialize infrastructure-as-code repository 2026-04-11 22:19:10 +02:00

electric-horses-infra

Infrastructure as Code für Electric Horses / Richter & Zech.

Dieses Repository enthält die versionierten Docker-Compose-Stacks, Reverse-Proxy-Configs, Architektur-Dokumentation und Architecture Decision Records (ADRs) für unsere Hetzner-Cloud-Infrastruktur.

Was lebt hier?

electric-horses-infra/
├── Agent.md                   # AI-Briefing für jede Session
├── README.md                  # diese Datei
├── .gitignore                 # was NICHT commitet wird
│
├── stacks/                    # Docker-Compose Stacks (1:1 was auf den Servern läuft)
│   ├── forgejo/               # code.sdda.eu — dieses Git-Hosting
│   └── eh-search/             # electric-horses.de Site-Search
│
└── docs/                      # Dokumentation
    └── architecture/          # Topologie-Snapshots, Stack-Inventories

Konvention: Jeder Stack-Ordner spiegelt den Stack auf dem tatsächlichen Server — aber ohne Secrets. Die .env mit echten Werten lebt auf dem Server (mode 600), hier ist nur die .env.example als Template.

Was gehört hier REIN

  • docker-compose.yml Dateien
  • Dockerfiles
  • Nginx-Configs
  • Python / Shell Scripts die Teil der Infra sind
  • SQL-Migrationen / Schema-Dumps (nicht Datenbank-Inhalte!)
  • .env.example mit Platzhaltern
  • Markdown-Dokumentation, Diagramme (Mermaid), ADRs, Runbooks

Was gehört hier NICHT REIN

  • Niemals echte .env Dateien, Passwörter, API-Keys, Zertifikate
  • Runtime-Daten (Datenbank-Inhalte, Git-Repos im Git-Repo, uploaded files)
  • Build-Artefakte (node_modules/, dist/, __pycache__/)
  • Logs
  • Backup-Dumps mit Nutzerdaten (DSGVO)

Wenn du unsicher bist: Lass es lieber raus. Es ist einfacher eine fehlende Datei nachzureichen als ein Secret aus der Git-History zu entfernen.

Mitarbeit

Du als Human: Du schreibst Wünsche und Feedback in Claude-Code / OpenProject, reviewst Commits im Web-UI (code.sdda.eu).

Die AI: Liest Agent.md am Sessionstart, macht Änderungen in bestehenden Stacks, committet mit Referenzen auf OpenProject-Work-Packages (Refs OP#1234).

OpenProject Referenz