From 5f54bde55e7cfefb625f2dd578e31f38234963d2 Mon Sep 17 00:00:00 2001 From: Thomas Reitz Date: Sun, 8 Mar 2026 10:22:55 +0100 Subject: [PATCH] chore: project initialization with infrastructure definition and structure - Generate SSH deployment key (Ed25519) for server access - Define complete server infrastructure (ProxmoxVE VM, Docker, networking) - Create ACCESS.md with all connection details and SSH instructions - Create INFRASTRUCTURE.md with VM setup guide and service architecture - Set up project directory structure per briefing specification - Add .env.example with all required environment variables - Add .gitignore for Node.js/Docker/TypeScript project - Create comprehensive README.md for developer onboarding - Add Summarize.md changelog - Include concept and briefing documents Co-Authored-By: Claude Opus 4.6 --- .env.example | 77 ++++++ .forgejo/workflows/.gitkeep | 0 .gitignore | 63 +++++ .keys/deploy_ed25519 | 7 + .keys/deploy_ed25519.pub | 1 + CLAUDE_BRIEFING.docx | Bin 0 -> 32836 bytes INSIGHT_Konzept_v1.0.docx | Bin 0 -> 141557 bytes README.md | 206 +++++++++++++- Summarize.md | 66 +++++ config/prometheus/.gitkeep | 0 config/step-ca/.gitkeep | 0 config/traefik/.gitkeep | 0 docs/ACCESS.md | 202 ++++++++++++++ docs/INFRASTRUCTURE.md | 257 ++++++++++++++++++ packages/core-service/prisma/.gitkeep | 0 .../src/common/decorators/.gitkeep | 0 .../core-service/src/common/filters/.gitkeep | 0 .../core-service/src/common/guards/.gitkeep | 0 .../src/common/interceptors/.gitkeep | 0 packages/core-service/src/config/.gitkeep | 0 packages/core-service/src/core/auth/.gitkeep | 0 .../core-service/src/core/modules/.gitkeep | 0 .../core-service/src/core/tenants/.gitkeep | 0 packages/core-service/src/core/users/.gitkeep | 0 packages/core-service/src/prisma/.gitkeep | 0 packages/frontend/public/.gitkeep | 0 packages/frontend/src/admin/.gitkeep | 0 packages/frontend/src/auth/.gitkeep | 0 .../src/components/HelpPanel/.gitkeep | 0 .../src/components/HelpTooltip/.gitkeep | 0 packages/frontend/src/shell/.gitkeep | 0 templates/cv/default/.gitkeep | 0 32 files changed, 878 insertions(+), 1 deletion(-) create mode 100644 .env.example create mode 100644 .forgejo/workflows/.gitkeep create mode 100644 .gitignore create mode 100644 .keys/deploy_ed25519 create mode 100644 .keys/deploy_ed25519.pub create mode 100644 CLAUDE_BRIEFING.docx create mode 100644 INSIGHT_Konzept_v1.0.docx create mode 100644 Summarize.md create mode 100644 config/prometheus/.gitkeep create mode 100644 config/step-ca/.gitkeep create mode 100644 config/traefik/.gitkeep create mode 100644 docs/ACCESS.md create mode 100644 docs/INFRASTRUCTURE.md create mode 100644 packages/core-service/prisma/.gitkeep create mode 100644 packages/core-service/src/common/decorators/.gitkeep create mode 100644 packages/core-service/src/common/filters/.gitkeep create mode 100644 packages/core-service/src/common/guards/.gitkeep create mode 100644 packages/core-service/src/common/interceptors/.gitkeep create mode 100644 packages/core-service/src/config/.gitkeep create mode 100644 packages/core-service/src/core/auth/.gitkeep create mode 100644 packages/core-service/src/core/modules/.gitkeep create mode 100644 packages/core-service/src/core/tenants/.gitkeep create mode 100644 packages/core-service/src/core/users/.gitkeep create mode 100644 packages/core-service/src/prisma/.gitkeep create mode 100644 packages/frontend/public/.gitkeep create mode 100644 packages/frontend/src/admin/.gitkeep create mode 100644 packages/frontend/src/auth/.gitkeep create mode 100644 packages/frontend/src/components/HelpPanel/.gitkeep create mode 100644 packages/frontend/src/components/HelpTooltip/.gitkeep create mode 100644 packages/frontend/src/shell/.gitkeep create mode 100644 templates/cv/default/.gitkeep diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..4b5c5be --- /dev/null +++ b/.env.example @@ -0,0 +1,77 @@ +# ============================================================ +# INSIGHT MVP - Umgebungsvariablen +# ============================================================ +# Kopiere diese Datei nach .env und befuelle die Werte. +# .env wird NIEMALS in Git committed! +# ============================================================ + +# --- Allgemein --- +NODE_ENV=development +APP_PORT=3000 +APP_URL=https://insight-dev.xinion.lan +FRONTEND_URL=https://insight-dev.xinion.lan +LOG_LEVEL=info + +# --- PostgreSQL --- +DB_HOST=pgbouncer +DB_PORT=6432 +DB_USER=insight +DB_PASSWORD= # Sicheres Passwort setzen! +DB_NAME=platform_core +DATABASE_URL=postgresql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_NAME} + +# Direktverbindung (fuer Prisma Migrate, umgeht PgBouncer) +DB_DIRECT_HOST=postgres +DB_DIRECT_PORT=5432 +DATABASE_URL_DIRECT=postgresql://${DB_USER}:${DB_PASSWORD}@${DB_DIRECT_HOST}:${DB_DIRECT_PORT}/${DB_NAME} + +# --- Redis --- +REDIS_HOST=redis +REDIS_PORT=6379 +REDIS_PASSWORD= # Optional, aber empfohlen + +# --- JWT (RS256) --- +JWT_PRIVATE_KEY_PATH=/app/keys/jwt-private.pem +JWT_PUBLIC_KEY_PATH=/app/keys/jwt-public.pem +JWT_ACCESS_TOKEN_EXPIRY=15m +JWT_REFRESH_TOKEN_EXPIRY=7d +JWT_ISSUER=insight-platform + +# --- Bcrypt --- +BCRYPT_COST=12 + +# --- CORS --- +CORS_ORIGINS=https://insight-dev.xinion.lan + +# --- Rate Limiting --- +THROTTLE_TTL=60000 +THROTTLE_LIMIT=200 + +# --- Traefik --- +TRAEFIK_DASHBOARD_USER=admin +TRAEFIK_DASHBOARD_PASSWORD= # htpasswd Hash + +# --- step-ca (mTLS) --- +STEP_CA_URL=https://step-ca:9000 +STEP_CA_FINGERPRINT= # step-ca Root CA Fingerprint + +# --- SMTP (fuer Einladungs-E-Mails) --- +SMTP_HOST= +SMTP_PORT=587 +SMTP_USER= +SMTP_PASSWORD= +SMTP_FROM=noreply@xinion.de + +# --- Observability --- +GRAFANA_ADMIN_USER=admin +GRAFANA_ADMIN_PASSWORD= # Sicheres Passwort setzen! + +# --- MS SSO (Beta - noch nicht aktiv) --- +# MS_SSO_CLIENT_ENCRYPTION_KEY= # AES-256 Key fuer Client Secret Verschluesselung + +# --- KI-Hilfe-Chat (optional) --- +# ANTHROPIC_API_KEY= # Claude API Key +# AI_CHAT_ENABLED=false + +# --- DeepL (optional, fuer Hilfesystem-Uebersetzungen) --- +# DEEPL_API_KEY= diff --git a/.forgejo/workflows/.gitkeep b/.forgejo/workflows/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1017fdd --- /dev/null +++ b/.gitignore @@ -0,0 +1,63 @@ +# Dependencies +node_modules/ +.pnp +.pnp.js + +# Build output +dist/ +build/ +*.tsbuildinfo + +# Environment (NIEMALS committen!) +.env +.env.local +.env.*.local + +# IDE +.idea/ +.vscode/ +*.swp +*.swo +*~ + +# OS +.DS_Store +Thumbs.db + +# Docker volumes (lokal) +docker-data/ +postgres-data/ +redis-data/ +media-uploads/ + +# Logs +logs/ +*.log +npm-debug.log* + +# Test coverage +coverage/ + +# Prisma +packages/core-service/prisma/*.db +packages/core-service/prisma/*.db-journal + +# Generated Prisma Client +packages/core-service/node_modules/.prisma/ + +# Temporary files +tmp/ +temp/ +*.tmp + +# Certificates (generierte Zertifikate, nicht die CA-Config) +config/step-ca/secrets/ +config/step-ca/db/ +*.pem +*.key +*.crt +!config/step-ca/*.example + +# Backup files +*.bak +*.backup diff --git a/.keys/deploy_ed25519 b/.keys/deploy_ed25519 new file mode 100644 index 0000000..2e0d3f9 --- /dev/null +++ b/.keys/deploy_ed25519 @@ -0,0 +1,7 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW +QyNTUxOQAAACDLk6asy8o6kyAzCeG8BBOKNiXhx94pi/jXoqXrgX4k6AAAAKBprr69aa6+ +vQAAAAtzc2gtZWQyNTUxOQAAACDLk6asy8o6kyAzCeG8BBOKNiXhx94pi/jXoqXrgX4k6A +AAAECki73xblIq6Dx917rd90A5YrQwWVvp4RBMkU+RHsxNncuTpqzLyjqTIDMJ4bwEE4o2 +JeHH3imL+NeipeuBfiToAAAAGWluc2lnaHQtZGVwbG95QHhpbmlvbi5sYW4BAgME +-----END OPENSSH PRIVATE KEY----- diff --git a/.keys/deploy_ed25519.pub b/.keys/deploy_ed25519.pub new file mode 100644 index 0000000..1356590 --- /dev/null +++ b/.keys/deploy_ed25519.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMuTpqzLyjqTIDMJ4bwEE4o2JeHH3imL+NeipeuBfiTo insight-deploy@xinion.lan diff --git a/CLAUDE_BRIEFING.docx b/CLAUDE_BRIEFING.docx new file mode 100644 index 0000000000000000000000000000000000000000..bb4b3a7c713c19ad27cd4e8cd99b5f5a68ade0e0 GIT binary patch literal 32836 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 AmH+?% literal 0 HcmV?d00001 diff --git a/INSIGHT_Konzept_v1.0.docx b/INSIGHT_Konzept_v1.0.docx new file mode 100644 index 0000000000000000000000000000000000000000..71b2ebf8e1d8ff239c80e95ad1ff425d5456da32 GIT binary patch literal 141557 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≧Q6zP(N{Np0;gL-#Y;* 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 6aa298a..a48c4ac 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,206 @@ -# INSIGHT-MVP +# INSIGHT MVP +Erweiterbare, mandantenfaehige SaaS-Business-Plattform der Xinion IT GmbH. + +--- + +## Inhaltsverzeichnis + +- [Projektuebersicht](#projektuebersicht) +- [Voraussetzungen](#voraussetzungen) +- [Setup (Entwicklungsumgebung)](#setup-entwicklungsumgebung) +- [Services & Ports](#services--ports) +- [Projektstruktur](#projektstruktur) +- [Branching & Commits](#branching--commits) +- [Dokumentation](#dokumentation) + +--- + +## Projektuebersicht + +INSIGHT ist eine Infrastruktur-Shell, auf die fachliche Module (erstes Modul: CRM) als isolierte Docker-Container aufgesetzt werden. Das System ist Cloud-Native und Kubernetes-ready. + +**Kernprinzipien:** +- Zero-Trust (mTLS intern) +- Stateless Backend-Services +- Separate Datenbank pro Mandant (Tenant-Isolation) +- Provider-Modell fuer Authentifizierung (lokal + MS SSO) + +**Tech Stack:** +TypeScript | NestJS | React + Vite | PostgreSQL | Prisma | Redis | Traefik | Docker + +--- + +## Voraussetzungen + +### Fuer lokale Entwicklung (MacBook) +- Git mit SSH-Zugang zu `git.xinion.lan` +- Docker Desktop oder Docker Engine +- Node.js >= 20 LTS +- npm oder yarn + +### Fuer den Server (ProxmoxVE VM) +- Ubuntu 24.04 LTS +- Docker Engine + Compose Plugin (kein Docker Desktop) +- SSH-Key aus `.keys/deploy_ed25519.pub` im `authorized_keys` des `deploy`-Users + +--- + +## Setup (Entwicklungsumgebung) + +### 1. Repository klonen +```bash +git clone ssh://git@git.xinion.lan/gitadmin/INSIGHT-MVP.git +cd INSIGHT-MVP +``` + +### 2. Environment konfigurieren +```bash +cp .env.example .env +# .env oeffnen und alle Werte befuellen (Passwoerter, Keys, etc.) +``` + +### 3. JWT-Schluessel generieren +```bash +# RS256 Schluessel fuer JWT-Signierung +mkdir -p packages/core-service/keys +openssl genpkey -algorithm RSA -out packages/core-service/keys/jwt-private.pem -pkeyopt rsa_keygen_bits:2048 +openssl rsa -pubout -in packages/core-service/keys/jwt-private.pem -out packages/core-service/keys/jwt-public.pem +``` + +### 4. Services starten +```bash +# Basis-Services +docker compose up -d + +# Mit Observability-Stack +docker compose -f docker-compose.yml -f docker-compose.observability.yml up -d +``` + +### 5. Datenbank-Migration +```bash +# Core-Schema +docker compose exec core npx prisma migrate deploy --schema=./prisma/core.schema.prisma + +# Tenant-Schema (wird beim Onboarding automatisch ausgefuehrt) +``` + +### 6. Health-Checks pruefen +```bash +curl http://localhost:3000/health # Core-Service +curl http://localhost:8080 # Frontend +``` + +### 7. Erster Login +- URL: https://insight-dev.xinion.lan (oder http://localhost) +- Initialer Admin-Account wird beim ersten Start via Seed-Script angelegt + +--- + +## Services & Ports + +| Service | Port (intern) | URL (extern via Traefik) | Beschreibung | +|---------------|---------------|----------------------------------|------------------------| +| Traefik | 80/443 | https://insight-dev.xinion.lan | API Gateway | +| Core-Service | 3000 | /api/v1/* | NestJS Backend | +| Frontend | 8080 | /* | React App | +| PostgreSQL | 5432 | - | Datenbank | +| PgBouncer | 6432 | - | Connection Pooler | +| Redis | 6379 | - | Cache & Event Bus | +| step-ca | 9000 | - | Interne CA (mTLS) | +| Grafana | 3001 | SSH-Tunnel | Monitoring Dashboards | + +--- + +## Projektstruktur + +``` +INSIGHT-MVP/ + docker-compose.yml # Basis-Services + docker-compose.observability.yml # Monitoring-Stack + .env.example # Alle Umgebungsvariablen (keine Werte!) + .gitignore + README.md # <- Du bist hier + + .keys/ # SSH Deployment Keys + deploy_ed25519 + deploy_ed25519.pub + + docs/ # Projektdokumentation + INFRASTRUCTURE.md # Server & VM Konfiguration + ACCESS.md # Zugangsdaten & SSH-Infos + + packages/ + core-service/ # NestJS Backend + src/ + core/ + auth/ # Auth-Service (Provider-Modell) + users/ # User-Verwaltung + tenants/ # Tenant-Verwaltung + modules/ # Module-Registry + common/ + guards/ # JwtGuard, RolesGuard, ScopeGuard + decorators/ # @Public(), @Roles(), @RequireScope() + filters/ # GlobalExceptionFilter + interceptors/ # Logging, Response-Transformation + config/ # Env-Validierung (class-validator) + prisma/ # PrismaService + TenantPrismaService + prisma/ + core.schema.prisma # platform_core Tabellen + tenant.schema.prisma # Tenant-DB Tabellen + + frontend/ # React + Vite + src/ + shell/ # App-Shell (Layout, Routing) + auth/ # Login, 2FA, Token-Management + admin/ # Admin-Bereich + components/ # Shared UI-Komponenten + + config/ # Service-Konfigurationen + traefik/ + prometheus/ + step-ca/ + + .forgejo/ + workflows/ # CI/CD Pipelines + ci.yml + develop.yml + release.yml +``` + +--- + +## Branching & Commits + +### Branching-Strategie: GitFlow + +| Branch | Zweck | +|------------- |------------------------------------------| +| `main` | Produktion (nur via Merge, geschuetzt) | +| `develop` | Integration (nur via Merge, geschuetzt) | +| `feature/*` | Neue Features | +| `fix/*` | Bugfixes | +| `hotfix/*` | Kritische Fixes auf main | + +### Commit-Format: Conventional Commits +``` +feat: Neues Feature +fix: Bugfix +chore: Tooling, Dependencies +docs: Dokumentation +refactor: Refactoring ohne Funktionsaenderung +``` + +--- + +## Dokumentation + +| Dokument | Beschreibung | +|---------------------------------|-------------------------------------------| +| `README.md` | Dieses Dokument (Onboarding) | +| `docs/INFRASTRUCTURE.md` | Server-Infrastruktur & VM-Setup | +| `docs/ACCESS.md` | Zugangsdaten & SSH-Verbindungen | +| `INSIGHT_Konzept_v1.0.docx` | Vollstaendiges Konzeptdokument (23 Kap.) | +| `CLAUDE_BRIEFING.docx` | Entwickler-Briefing (Kurzreferenz) | +| `Summarize.md` | Aenderungsprotokoll (aktueller Stand) | +| `RUNBOOK.md` | Disaster Recovery Anleitung (folgt) | diff --git a/Summarize.md b/Summarize.md new file mode 100644 index 0000000..ccab691 --- /dev/null +++ b/Summarize.md @@ -0,0 +1,66 @@ +# INSIGHT MVP - Aenderungsprotokoll + +## Stand: 2026-03-08 + +### Aktueller Sprint: Sprint 1 (Alpha) + +--- + +### Aenderungen in dieser Session + +#### Projektinitialisierung & Infrastruktur-Definition + +**Was wurde gemacht:** + +1. **SSH Deployment Key erstellt** + - Ed25519-Schluessel unter `.keys/deploy_ed25519` generiert + - Public Key muss auf dem Entwicklungsserver und in Forgejo hinterlegt werden + - Key-Kommentar: `insight-deploy@xinion.lan` + +2. **Infrastruktur-Definition erstellt** (`docs/INFRASTRUCTURE.md`) + - ProxmoxVE VM-Spezifikation: Ubuntu 24.04 LTS, 4 vCPU, 8 GB RAM, 60 GB SSD + - Docker-Netzwerk-Architektur mit 3 isolierten Netzwerken + - Komplette Service-Landschaft definiert (Traefik, Core, Frontend, PostgreSQL, PgBouncer, Redis, step-ca) + - Observability-Stack definiert (Prometheus, Grafana, Loki, Tempo, Promtail, cAdvisor) + - Schritt-fuer-Schritt VM-Setup Anleitung + +3. **Zugangsdaten-Dokument erstellt** (`docs/ACCESS.md`) + - Git Repository Zugangsdaten + - SSH-Key Dokumentation und Verwendung + - Server-Zugangsdaten (Platzhalter fuer IP) + - Alle Service-Ports dokumentiert + - Deployment-Pfad dokumentiert + - Wichtige Befehle (MacBook & Server) + +4. **Projektstruktur aufgesetzt** + - Verzeichnisstruktur gemaess Briefing angelegt + - packages/core-service/ (NestJS Backend) + - packages/frontend/ (React + Vite) + - config/ (Traefik, Prometheus, step-ca) + - .forgejo/workflows/ (CI/CD) + +5. **Basis-Konfigurationsdateien erstellt** + - `.gitignore` - alle relevanten Ausschluesse + - `.env.example` - alle Umgebungsvariablen dokumentiert (ohne Werte) + - `README.md` - vollstaendiges Onboarding-Dokument + +--- + +### Naechste Schritte + +- [ ] VM in ProxmoxVE erstellen und konfigurieren +- [ ] SSH Deploy Key auf Server und in Forgejo hinterlegen +- [ ] `docker-compose.yml` erstellen (alle Basis-Services) +- [ ] `docker-compose.observability.yml` erstellen +- [ ] NestJS Core-Service implementieren (Auth, Users, Tenants) +- [ ] Prisma-Schemas erstellen (core + tenant) +- [ ] React Frontend-Shell implementieren +- [ ] CI/CD Pipelines in Forgejo Actions definieren + +--- + +### Offene Fragen / Abhaengigkeiten + +- Server-IP wird erst bei VM-Erstellung vergeben +- DNS-Eintraege (insight-dev.xinion.lan) muessen konfiguriert werden +- Forgejo Deploy Key muss manuell hinterlegt werden diff --git a/config/prometheus/.gitkeep b/config/prometheus/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/config/step-ca/.gitkeep b/config/step-ca/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/config/traefik/.gitkeep b/config/traefik/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/docs/ACCESS.md b/docs/ACCESS.md new file mode 100644 index 0000000..69b8998 --- /dev/null +++ b/docs/ACCESS.md @@ -0,0 +1,202 @@ +# INSIGHT MVP - Zugangsdaten & Server-Zugriff + +> **Dieses Dokument wird laufend aktualisiert und enthaelt alle relevanten +> Zugangsinformationen fuer das Projekt.** + +--- + +## 1. Git Repository + +| Parameter | Wert | +|------------------|-----------------------------------------------------| +| Git-Server | Forgejo (self-hosted) | +| URL | `git.xinion.lan` | +| Repository (SSH) | `ssh://git@git.xinion.lan/gitadmin/INSIGHT-MVP.git` | +| Repository (HTTP)| `https://git.xinion.lan/gitadmin/INSIGHT-MVP` | +| Organisation | `gitadmin` | +| Zugriff | SSH Key-basiert | +| CI/CD | Forgejo Actions (GitHub Actions kompatibel) | +| Container Registry | `git.xinion.lan` (Forgejo built-in) | + +--- + +## 2. SSH Deployment Key + +Der Deployment Key liegt im Repository unter `.keys/`: + +| Datei | Beschreibung | +|------------------------------|-----------------------| +| `.keys/deploy_ed25519` | Private Key (Ed25519) | +| `.keys/deploy_ed25519.pub` | Public Key | + +### Public Key (zur Hinterlegung auf Servern) +``` +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMuTpqzLyjqTIDMJ4bwEE4o2JeHH3imL+NeipeuBfiTo insight-deploy@xinion.lan +``` + +### SSH-Verbindung zum Server +```bash +# Verbindung zum Entwicklungsserver: +ssh -i .keys/deploy_ed25519 deploy@ + +# Mit SSH-Config (empfohlen): +# Eintrag in ~/.ssh/config: +Host insight-dev + HostName + User deploy + IdentityFile ~/git.xinion.lan/INSIGHT-MVP/.keys/deploy_ed25519 + StrictHostKeyChecking accept-new +``` + +### Wo der Public Key hinterlegt werden muss +1. **Entwicklungsserver (VM)**: `/home/deploy/.ssh/authorized_keys` +2. **Forgejo**: Repository Settings > Deploy Keys (fuer CI/CD) + +--- + +## 3. Entwicklungsserver (ProxmoxVE VM) + +| Parameter | Wert | +|------------------|-----------------------------------------| +| **Hostname** | `insight-dev-01` | +| **OS** | Ubuntu 24.04 LTS | +| **IP** | _wird bei VM-Erstellung vergeben_ | +| **SSH-Port** | 22 | +| **SSH-User** | `deploy` | +| **SSH-Key** | `.keys/deploy_ed25519` | +| **Docker** | Docker Engine + Compose Plugin | +| **Projekt-Pfad** | `/home/deploy/insight/` | + +### Schnellzugriff nach VM-Setup +```bash +# SSH auf den Server +ssh -i .keys/deploy_ed25519 deploy@ + +# Status aller Container pruefen +docker compose ps + +# Logs eines Services +docker compose logs -f core + +# Neustart aller Services +docker compose restart + +# Nur Backend neustarten +docker compose restart core +``` + +--- + +## 4. Service-Ports (auf der VM) + +| Service | Interner Port | Externer Port | URL | +|-----------------|---------------|---------------|----------------------------------| +| Traefik (HTTP) | 80 | 80 | http://insight-dev.xinion.lan | +| Traefik (HTTPS) | 443 | 443 | https://insight-dev.xinion.lan | +| Traefik Dashboard | 8080 | - | Nur intern | +| Core-Service | 3000 | - | Via Traefik: /api/v1/* | +| Frontend | 8080 | - | Via Traefik: /* | +| PostgreSQL | 5432 | - | Nur intern (Docker-Netzwerk) | +| PgBouncer | 6432 | - | Nur intern (Docker-Netzwerk) | +| Redis | 6379 | - | Nur intern (Docker-Netzwerk) | +| step-ca | 9000 | - | Nur intern (Docker-Netzwerk) | + +### Observability (nur intern, kein oeffentlicher Zugriff) + +| Service | Port | Zugriff | +|-----------------|-------|----------------------------------| +| Grafana | 3001 | SSH-Tunnel: `ssh -L 3001:localhost:3001 deploy@` | +| Prometheus | 9090 | Nur intern | +| Loki | 3100 | Nur intern | +| Tempo | 3200 | Nur intern | + +--- + +## 5. Datenbank-Zugangsdaten + +> **Echte Passwoerter stehen in der `.env`-Datei auf dem Server. +> Niemals in Git committen!** + +| Parameter | Wert (Platzhalter) | +|-------------------|---------------------------------| +| DB-Host | `pgbouncer` (via Docker-Netzwerk) | +| DB-Port | `6432` | +| Core-DB-Name | `platform_core` | +| Tenant-DB-Schema | `tenant_{slug}` | +| DB-User | Siehe `.env` -> `DB_USER` | +| DB-Passwort | Siehe `.env` -> `DB_PASSWORD` | + +--- + +## 6. Container Registry + +| Parameter | Wert | +|------------------|-----------------------------------------------------| +| Registry-URL | `git.xinion.lan` | +| Image-Prefix | `git.xinion.lan/gitadmin/insight-{service}` | +| Authentifizierung| Forgejo Login-Credentials | + +### Image-Namen +``` +git.xinion.lan/gitadmin/insight-core:latest +git.xinion.lan/gitadmin/insight-core:develop +git.xinion.lan/gitadmin/insight-core:v0.1.0 +git.xinion.lan/gitadmin/insight-frontend:latest +``` + +--- + +## 7. Deployment-Pfad + +``` +MacBook (Entwicklung) + | + | git push + v +Forgejo (git.xinion.lan) + | + | Forgejo Actions CI/CD + | - Lint, Type-Check, Tests, Build + | - Docker Image bauen & pushen + v +Server (insight-dev-01) + | + | docker compose pull && docker compose up -d + v +Laufende Anwendung +``` + +--- + +## 8. Wichtige Befehle + +### Vom MacBook aus +```bash +# Code pushen +git push origin develop + +# SSH auf Server +ssh -i .keys/deploy_ed25519 deploy@ + +# Grafana oeffnen (SSH-Tunnel) +ssh -L 3001:localhost:3001 -i .keys/deploy_ed25519 deploy@ +# Dann im Browser: http://localhost:3001 +``` + +### Auf dem Server +```bash +# Alle Services starten +docker compose up -d + +# Mit Observability +docker compose -f docker-compose.yml -f docker-compose.observability.yml up -d + +# Health-Check +curl http://localhost:3000/health + +# Datenbank-Migration +docker compose exec core npx prisma migrate deploy + +# Logs folgen +docker compose logs -f --tail=100 +``` diff --git a/docs/INFRASTRUCTURE.md b/docs/INFRASTRUCTURE.md new file mode 100644 index 0000000..71d2c44 --- /dev/null +++ b/docs/INFRASTRUCTURE.md @@ -0,0 +1,257 @@ +# INSIGHT MVP - Infrastruktur-Definition + +## 1. Uebersicht + +Die gesamte INSIGHT-Plattform laeuft auf einer ProxmoxVE-VM im internen Netzwerk. +Alle Services werden als Docker-Container betrieben. + +--- + +## 2. VM-Konfiguration (ProxmoxVE) + +| Komponente | Spezifikation | +|-----------------|----------------------------------------| +| **Hostname** | `insight-dev-01` | +| **OS** | Ubuntu 24.04 LTS (Server) | +| **CPU** | 4 vCPUs | +| **RAM** | 8 GB (16 GB empfohlen) | +| **Storage** | 60 GB SSD | +| **Netzwerk** | Feste interne IP (wird bei Setup vergeben) | +| **SSH-Zugang** | Key-basiert (Ed25519), kein Passwort-Login | +| **User** | `deploy` (non-root, Mitglied der `docker`-Gruppe) | + +### Betriebssystem-Hardening + +- SSH: nur Key-basiert (`PasswordAuthentication no`) +- Firewall (ufw): + - Port 22 (SSH) - nur internes Netzwerk + - Port 80 (HTTP -> Redirect auf HTTPS) + - Port 443 (HTTPS) + - Alle anderen Ports: DENY +- Automatische Sicherheitsupdates: `unattended-upgrades` aktiviert +- Fail2ban fuer SSH-Brute-Force-Schutz + +--- + +## 3. Software auf der VM + +| Software | Version | Installationsmethode | +|---------------------|-------------|--------------------------------| +| Docker Engine | >= 27.x | Official Docker APT Repository | +| Docker Compose | Plugin | Mitgeliefert mit Docker Engine | +| Git | >= 2.x | APT | +| ufw | Aktuell | APT (vorinstalliert) | +| fail2ban | Aktuell | APT | +| unattended-upgrades | Aktuell | APT (vorinstalliert) | + +**Kein** Docker Desktop, kein Node.js, kein npm auf der VM. +Alles laeuft in Containern. + +--- + +## 4. Docker-Netzwerk-Architektur + +``` + Internet / Internes Netz + | + [ Port 80/443 ] + | + +-------v--------+ + | Traefik | API Gateway, SSL-Terminierung, + | (Gateway) | Rate Limiting, mTLS-Terminierung + +---+-------+----+ + | | + +---------+ +---------+ + | | + +-------v--------+ +-------v--------+ + | Core-Service | | Frontend | + | (NestJS) | | (React/Vite) | + | Port: 3000 | | Port: 8080 | + +---+--------+----+ +----------------+ + | | + +-----v--+ +--v------+ + | Redis | | PgBouncer| + | :6379 | | :6432 | + +----+----+ +----+-----+ + | | + | +----v------+ + | | PostgreSQL | + | | :5432 | + +-------+------------+ +``` + +### Docker-Netzwerke + +| Netzwerk | Zweck | +|---------------|-------------------------------------------------| +| `insight-web` | Traefik <-> Core-Service, Frontend (extern erreichbar) | +| `insight-db` | Core-Service <-> PgBouncer <-> PostgreSQL (intern) | +| `insight-cache`| Core-Service <-> Redis (intern) | + +### mTLS (step-ca) + +Alle interne Kommunikation zwischen Containern wird ueber mTLS abgesichert. +step-ca (Smallstep) fungiert als interne Certificate Authority. + +| Komponente | Zertifikat | +|---------------|-------------------------------| +| Traefik | Wildcard fuer externe Domain | +| Core-Service | `core-service.insight.local` | +| Frontend | `frontend.insight.local` | +| PostgreSQL | `postgres.insight.local` | +| Redis | `redis.insight.local` | +| PgBouncer | `pgbouncer.insight.local` | + +--- + +## 5. Container-Services (docker-compose.yml) + +| Service | Image | Port (intern) | Port (extern) | Beschreibung | +|---------------|--------------------------------|---------------|---------------|-------------------------------| +| `traefik` | traefik:3 | 80, 443, 8080 | 80, 443 | API Gateway, Reverse Proxy | +| `core` | insight-core:latest | 3000 | - | NestJS Backend | +| `frontend` | insight-frontend:latest | 8080 | - | React App (Nginx served) | +| `postgres` | postgres:16-alpine | 5432 | - | Datenbank | +| `pgbouncer` | edoburu/pgbouncer:latest | 6432 | - | Connection Pooler | +| `redis` | redis:7-alpine | 6379 | - | Cache, Sessions, Event Bus | +| `step-ca` | smallstep/step-ca:latest | 9000 | - | Interne Certificate Authority | + +--- + +## 6. Observability-Stack (docker-compose.observability.yml) + +| Service | Image | Port (intern) | Beschreibung | +|------------------|---------------------------------|---------------|-----------------------------| +| `prometheus` | prom/prometheus:latest | 9090 | Metrics-Storage | +| `grafana` | grafana/grafana:latest | 3001 | Dashboards & Alerting | +| `loki` | grafana/loki:latest | 3100 | Log-Storage | +| `tempo` | grafana/tempo:latest | 3200, 4317 | Tracing-Backend | +| `promtail` | grafana/promtail:latest | - | Log-Collector | +| `cadvisor` | gcr.io/cadvisor/cadvisor:latest | 8081 | Container-Metrics | +| `postgres-exp` | prometheuscommunity/postgres-exporter | 9187 | DB-Metrics | + +**Grafana ist NICHT oeffentlich erreichbar** - nur ueber SSH-Tunnel oder internes Netz. + +--- + +## 7. Datenbank-Struktur + +``` +PostgreSQL-Server + platform_core <- Einmalig: Tenants, Users, Roles, Modules, Help + tenant_{slug} <- Pro Mandant (z.B. tenant_acme_corp) +``` + +| Datenbank | Zweck | +|-----------------|-----------------------------------------------------| +| `platform_core` | Plattform-Verwaltung (Users, Tenants, Roles, Modules) | +| `tenant_{slug}` | Mandant-Daten (Profile, Stammdaten, Moduldaten) | + +--- + +## 8. DNS / Domains + +| Eintrag | Ziel | Zweck | +|----------------------------|--------------------|-------------------------------| +| `insight-dev.xinion.lan` | VM-IP | Entwicklungs-Frontend | +| `api.insight-dev.xinion.lan` | VM-IP | API-Endpunkt | +| `git.xinion.lan` | Forgejo-Server | Git Repository & CI/CD | + +--- + +## 9. Backup (Alpha/Dev) + +| Was | Wohin | Frequenz | +|----------------------|----------------------------------------|-----------| +| PostgreSQL (alle DBs)| Separates ProxmoxVE Volume | Taeglich | +| Media-Dateien | Separates ProxmoxVE Volume | Taeglich | +| Konfiguration | Git Repository (ohne .env) | Per Commit| + +--- + +## 10. VM-Setup Anleitung (Schritt fuer Schritt) + +### 10.1 VM in ProxmoxVE erstellen +```bash +# ProxmoxVE Web-UI oder CLI: +# - Template: Ubuntu 24.04 LTS Cloud-Init +# - CPU: 4 Cores +# - RAM: 8192 MB +# - Disk: 60 GB (SCSI, SSD-backed) +# - Network: vmbr0, DHCP oder feste IP +``` + +### 10.2 Basis-Setup nach Erstinstallation +```bash +# System aktualisieren +sudo apt update && sudo apt upgrade -y + +# Deploy-User anlegen +sudo adduser --disabled-password deploy +sudo usermod -aG sudo deploy + +# SSH-Key fuer Deploy-User hinterlegen +sudo mkdir -p /home/deploy/.ssh +sudo cp /path/to/deploy_ed25519.pub /home/deploy/.ssh/authorized_keys +sudo chown -R deploy:deploy /home/deploy/.ssh +sudo chmod 700 /home/deploy/.ssh +sudo chmod 600 /home/deploy/.ssh/authorized_keys + +# SSH haerten +sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config +sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config +sudo systemctl restart sshd +``` + +### 10.3 Firewall +```bash +sudo ufw default deny incoming +sudo ufw default allow outgoing +sudo ufw allow 22/tcp # SSH +sudo ufw allow 80/tcp # HTTP +sudo ufw allow 443/tcp # HTTPS +sudo ufw enable +``` + +### 10.4 Docker installieren +```bash +# Docker Official GPG Key +sudo apt install -y ca-certificates curl +sudo install -m 0755 -d /etc/apt/keyrings +sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \ + -o /etc/apt/keyrings/docker.asc +sudo chmod a+r /etc/apt/keyrings/docker.asc + +# Docker Repo hinzufuegen +echo "deb [arch=$(dpkg --print-architecture) \ + signed-by=/etc/apt/keyrings/docker.asc] \ + https://download.docker.com/linux/ubuntu \ + $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ + sudo tee /etc/apt/sources.list.d/docker.list > /dev/null + +# Docker installieren +sudo apt update +sudo apt install -y docker-ce docker-ce-cli containerd.io \ + docker-buildx-plugin docker-compose-plugin + +# Deploy-User zur docker-Gruppe +sudo usermod -aG docker deploy +``` + +### 10.5 Fail2ban +```bash +sudo apt install -y fail2ban +sudo systemctl enable fail2ban +sudo systemctl start fail2ban +``` + +### 10.6 Projekt deployen +```bash +# Als deploy-User: +su - deploy +git clone git@git.xinion.lan:gitadmin/INSIGHT-MVP.git ~/insight +cd ~/insight +cp .env.example .env +# .env befuellen mit echten Werten +docker compose up -d +``` diff --git a/packages/core-service/prisma/.gitkeep b/packages/core-service/prisma/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/packages/core-service/src/common/decorators/.gitkeep b/packages/core-service/src/common/decorators/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/packages/core-service/src/common/filters/.gitkeep b/packages/core-service/src/common/filters/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/packages/core-service/src/common/guards/.gitkeep b/packages/core-service/src/common/guards/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/packages/core-service/src/common/interceptors/.gitkeep b/packages/core-service/src/common/interceptors/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/packages/core-service/src/config/.gitkeep b/packages/core-service/src/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/packages/core-service/src/core/auth/.gitkeep b/packages/core-service/src/core/auth/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/packages/core-service/src/core/modules/.gitkeep b/packages/core-service/src/core/modules/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/packages/core-service/src/core/tenants/.gitkeep b/packages/core-service/src/core/tenants/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/packages/core-service/src/core/users/.gitkeep b/packages/core-service/src/core/users/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/packages/core-service/src/prisma/.gitkeep b/packages/core-service/src/prisma/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/packages/frontend/public/.gitkeep b/packages/frontend/public/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/packages/frontend/src/admin/.gitkeep b/packages/frontend/src/admin/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/packages/frontend/src/auth/.gitkeep b/packages/frontend/src/auth/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/packages/frontend/src/components/HelpPanel/.gitkeep b/packages/frontend/src/components/HelpPanel/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/packages/frontend/src/components/HelpTooltip/.gitkeep b/packages/frontend/src/components/HelpTooltip/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/packages/frontend/src/shell/.gitkeep b/packages/frontend/src/shell/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/templates/cv/default/.gitkeep b/templates/cv/default/.gitkeep new file mode 100644 index 0000000..e69de29