Wiki »
Build Deployment & Laufzeit¶
Seitenregeln¶
- Single Source of Truth für Artefakte, Orchestrierung und das Prozessmodell der laufenden Anwendung (inkl. UI‑Build).
- Konfiguration nur als Quelle/Schalter (ENV, Files, Admin‑UI), keine Geheimniswerte.
- Release‑, Update‑ und Rollback‑Verfahren gehören hier; keine Host‑/Edge‑Details.
- Frontend gehört hier (Build, Theming, i18n, A11y), nicht zu Edge.
- Aktualisieren bei: Release‑Prozessänderung, neue Services/Worker, ENV‑Schema‑Änderung.
- Verweise auf: „Architektur & Entscheidungen“ (Warum), „Plattform, Netzwerk & Edge“ (Ingress/TLS), „Betrieb, Observability & Notfälle“ (Runbooks).
- Benenne betroffene Dateien inkl. Pfad als Unterpunkte, wenn diese für zukünftige Änderungen relevant.
Zweck und Abgrenzung¶
- Beschreibt, wie „n8n aktien“ gebaut, ausgeliefert und zur Laufzeit betrieben wird (Container/Images, Workflows, Start/Stop/Update).
- Umfasst aktuell: n8n (App/ETL), PostgreSQL (Datenhaltung). Metabase ist noch nicht ausgerollt.
- Keine Edge/Ingress‑Details (siehe „Plattform, Netzwerk & Edge“). Keine Geheimnisse/Secrets.
Repositories/Branching/Versionierung¶
- Workflows liegen in der n8n‑Datenbank (internes Persistenzmodell).
- Externes Git‑Repository für Workflows/Infra ist derzeit nicht angebunden.
- Export/Import von Workflows erfolgt ad hoc über die n8n‑UI (JSON‑Export) bei Bedarf.
Build/Artefakte/Container‑Images¶
- Laufende Container/Images:
- n8n: Image n8nio/n8n:latest, Container: n8n-n8n-1
- PostgreSQL: Image postgres:16-alpine, Container: n8n-n8n-postgres-1
- Persistenz:
- Docker‑Volume für Postgres: n8n_n8n_pg_data (Mount: /var/lib/postgresql/data)
- Netzwerk:
- Gemeinsames Docker‑Netz: deploy_internal
- Postgres DNS/Alias im Netz: n8n-postgres (Alias zusätzlich: n8n-n8n-postgres-1)
Orchestrierung/Topologie (Services/Dependencies)¶
- Services:
- n8n (App/ETL/Orchestrierung)
- PostgreSQL (DB für n8n‑Systemtabellen und Projekt‑DB „mf_app“)
- Abhängigkeiten:
- n8n → PostgreSQL (Host: n8n-postgres, Port 5432)
- Datenbank(en):
- n8n‑System-DB: n8n (Schema durch n8n Migrationen)
- Projekt‑DB: mf_app (Schema core, Tabellen: securities, listings, prices_daily, fx_rates, corporate_actions, liquidity, fundamentals, mf_rank, signals, alerts_log, market_state, news_cache, ai_evaluations, config, job_runs, data_quality)
- Workflows (UI‑Namen):
- Haupt: „mf_workflow - Add Security (ISIN → Listing → Prices)“
- Marktstatus: „Market State Update“
Konfigurationsquellen (ohne Werte)¶
- n8n (ENV):
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=n8n-postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=…
- PostgreSQL (mf_app):
- Datenbank: mf_app, Schema: core, search_path: core, public
- n8n‑Credentials (UI, gespeichert verschlüsselt):
- Postgres Credential „mf_app“ (Host n8n-postgres, DB mf_app, User mf_app)
- Header Auth „openfigi_api“ (Header X-OPENFIGI-APIKEY, Domain: api.openfigi.com)
- Query Auth „alpha_vantage“ (Query apikey=…, Domain: www.alphavantage.co)
- Query Auth „simfin“ (Query api-key=…, Domain: api.simfin.com)
- Query Auth „fmp“ (Query apikey=…, Domain: financialmodelingprep.com)
Start/Stop/Update/Rollback¶
- Start/Stop (Container‑Ebene):
- docker compose up -d (Start/Deploy)
- docker compose restart n8n (n8n neu starten)
- docker compose restart n8n-postgres (Postgres neu starten)
- docker compose down (Stop, Volumes bleiben erhalten)
- Update:
- docker compose pull n8n && docker compose up -d n8n (n8n aktualisieren)
- docker compose pull postgres && docker compose up -d n8n-postgres (DB‑Image aktualisieren; vorher Backup)
- Rollback:
- Vorhalte der vorherigen Image‑Tags; Start via docker compose up -d mit altem Tag
- Daten: Wiederherstellung via pg_dump/pg_restore (siehe „Daten, Suche, Backups & Integrationen“)
Prozessmodell (App‑Server, Worker/Jobs, Scheduler)¶
- App‑Server:
- n8n läuft als einzelner Service (HTTP‑UI + Workflow‑Engine).
- Jobs/Workflows (derzeit manuell/On‑Demand):
- „mf_workflow - Add Security (ISIN → Listing → Prices)“
- Form: Add ISIN (n8n form)
- OpenFIGI: ISIN → XETR mapping (HTTP)
- Set: ISIN+Name+Ticker+MIC
- PG: Upsert security
- PG: Upsert listing (XETR)
- AlphaVantage: Daily (compact, JSON) → Code: Parse AV JSON → rows → PG: Upsert prices (AV, last 100)
- Stooq: Daily CSV (full) → Code: Parse Stooq CSV → rows → PG: Upsert prices (Stooq, full)
- PG: Update indicators (SMA200/52W/3D)
- PG: Compute signal (price-only test)
- PG: Inspect last signal (Ad‑hoc)
- „Market State Update“
- VIX Fetch (Stooq vi.c CSV)
- VIX Parse (Code, F&G‑Proxy + 5‑Tage‑Delta)
- Market State Upsert (Postgres)
- Scheduler:
- Aktuell keine Cron‑Trigger aktiv; Ausführung manuell über UI.
Frontend & UX (Technologie, Theming, IA, Performance, i18n, A11y)¶
- Frontend (aktuell):
- n8n Form („Form: Add ISIN“) als minimaler UI‑Einstiegspunkt zur Datenerfassung.
- Formularfelder: 1× Textfeld „ISIN“ (Validierung erfolgt im Workflow).
- Dashboards:
- Metabase ist noch nicht installiert/angebunden (keine Artefakte vorhanden).
- i18n/A11y/Theming:
- n8n Standard‑UI; keine eigenen Themes/Sprachen konfiguriert.
Loading...