No description
Find a file
Thomas Reitz 90a0388b22 feat(core+frontend): Anhänge im Export + neues 3-Spalten-Layout im Profil-Reiter
- PDF-Export: alle Anhänge als zusätzliche Seiten (Bilder als Vorschau, andere mit Hinweis)
- DOCX-Export: Bild-Anhänge als zusätzliche Sections (je eine Seite pro Bild)
- ExpertProfileTab: Skills/Sprachen/Erfahrungen nebeneinander (3 Spalten)
- ExpertProfileTab: Zertifizierungen und Profilanlagen nebeneinander (2 Spalten)
- threeColumnRow CSS-Klasse hinzugefügt (responsive auf 1 Spalte bei <900px)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 10:59:04 +01:00
.forgejo/workflows Update 2026-03-09 22:51:42 +01:00
.keys chore: add CI/CD SSH key and update ACCESS.md with both keys 2026-03-08 10:34:01 +01:00
config Update 2026-03-11 10:21:14 +01:00
docs feat(crm): Phase 2.2-2.4 backend + contract files — vollständige CRM-Service Implementierung 2026-03-12 22:06:58 +01:00
Icons feat: use PNG contact icons in PDF export instead of vector drawing 2026-03-09 20:11:40 +01:00
packages feat(core+frontend): Anhänge im Export + neues 3-Spalten-Layout im Profil-Reiter 2026-03-14 10:59:04 +01:00
templates/cv/default feat: use PNG contact icons in PDF export instead of vector drawing 2026-03-09 20:11:40 +01:00
.env.example fix(crm): use direct postgres connection instead of pgbouncer 2026-03-10 16:34:56 +01:00
.gitignore chore: project initialization with infrastructure definition and structure 2026-03-08 10:22:55 +01:00
CLAUDE_BRIEFING.docx docs: update INSIGHT-CRM.md with architect requirements from Konzept v1.0 2026-03-12 14:39:18 +01:00
docker-compose.crm.yml feat(crm): Microsoft 365 Graph-API Proxy (Phase 3.2) 2026-03-12 22:40:31 +01:00
docker-compose.observability.yml feat: implement Sprint 1 Alpha - full stack with Docker, NestJS, React 2026-03-08 15:33:36 +01:00
docker-compose.yml feat: add SSL/Domain admin page for custom HTTPS configuration 2026-03-12 17:13:49 +01:00
INSIGHT_Konzept_v1.0.docx docs: update INSIGHT-CRM.md with architect requirements from Konzept v1.0 2026-03-12 14:39:18 +01:00
README.md feat: adapt codebase for IP-based HTTP deployment on 172.20.10.59 2026-03-08 16:21:45 +01:00
Summarize.md fix(core): PDF-Export — Bullets, Zertifizierungen, Bild-Anhaenge 2026-03-13 21:33:01 +01:00

INSIGHT MVP

Erweiterbare, mandantenfaehige SaaS-Business-Plattform der Xinion IT GmbH.


Inhaltsverzeichnis


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

git clone ssh://git@git.xinion.lan/gitadmin/INSIGHT-MVP.git
cd INSIGHT-MVP

2. Environment konfigurieren

cp .env.example .env
# .env oeffnen und alle Werte befuellen (Passwoerter, Keys, etc.)

3. JWT-Schluessel generieren

# RS256 Schluessel fuer JWT-Signierung
mkdir -p keys
openssl genpkey -algorithm RSA -out keys/jwt-private.pem -pkeyopt rsa_keygen_bits:2048
openssl rsa -pubout -in keys/jwt-private.pem -out keys/jwt-public.pem

4. Services starten

# 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 + Seed

# Core-Schema migrieren
docker compose run --rm core npx prisma migrate deploy --schema=./prisma/core.schema.prisma

# Admin-User anlegen
docker compose run --rm core npx ts-node prisma/seed.ts

6. Health-Checks pruefen

curl http://172.20.10.59/health

7. Erster Login

  • URL: http://172.20.10.59
  • Admin: admin@xinion.de / ChangeMe123!
  • Passwort nach erstem Login aendern!

Services & Ports

Service Port (intern) URL (extern via Traefik) Beschreibung
Traefik 80 http://172.20.10.59 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)