# INSIGHT-Infra — Developer Briefing

> Dieses Dokument ist der Einstiegspunkt für jede neue Claude Code Session in diesem Repo.
> Lies es vollständig bevor du Code schreibst.

## Was ist dieses Repo?

**INSIGHT-Infra** enthält alle Infrastruktur-Definitionen für die INSIGHT-Plattform:
Ansible Playbooks zur Server-Provisionierung und Docker Compose Konfigurationen.

## Struktur

```
ansible/
├── inventory/
│   ├── hosts.yml              # DBS01, APS01, WEB01
│   └── group_vars/
│       ├── all.yml
│       ├── insight_dbs.yml
│       ├── insight_aps.yml
│       └── insight_web.yml
├── playbooks/
│   ├── site.yml               # Master (alle Server)
│   ├── dbs01.yml
│   ├── aps01.yml
│   └── web01.yml
└── roles/
    ├── common/                # Hardening, NTP, SSH, unattended-upgrades
    ├── docker/                # Docker CE + Compose Plugin
    ├── postgresql/            # PostgreSQL 16 + PgBouncer
    ├── redis/                 # Redis 7
    ├── nginx/                 # Nginx + TLS
    └── zabbix_agent/          # Zabbix Agent 2
```

## Server

| Server | Hostname | Rolle |
|--------|----------|-------|
| INSIGHT-DBS01 | insight-dbs01.xinion.lan | PostgreSQL 16 + PgBouncer + Redis 7 |
| INSIGHT-APS01 | insight-aps01.xinion.lan | Docker: core-service, crm-service |
| INSIGHT-WEB01 | insight-web01.xinion.lan | Nginx + React Build |

IPs und Details: https://xinion.atlassian.net/wiki/x/FYCVEw

## SSH Keys (Ansible → Server)

| Server | Key |
|--------|-----|
| DBS01 | `.keys/ansible_dbs01_ed25519` |
| APS01 | `.keys/ansible_aps01_ed25519` |
| WEB01 | `.keys/ansible_web01_ed25519` |

Öffentliche Keys sind via Cloud-Init bereits auf den Servern hinterlegt.

## Confluence Dokumentation

- **Phase 1 — Infrastruktur:** https://xinion.atlassian.net/wiki/x/PACVEw
- **Hardware-Anforderungen:** https://xinion.atlassian.net/wiki/x/tYKSEw
- **Cloud-Init Konfiguration:** https://xinion.atlassian.net/wiki/x/BgCREw
- **SSH Keys & Zugangsverwaltung:** https://xinion.atlassian.net/wiki/x/UACVEw

## Wichtige Regeln

- Secrets ausschließlich in **Ansible Vault** (kein Klartext in Git)
- Alle Tasks mit `become: true` wenn Root-Rechte nötig
- Idempotenz: Playbooks müssen mehrfach ausführbar sein ohne Fehler
- Nach jeder Infrastruktur-Änderung `dev-status/infra.md` in INSIGHT-Shared aktualisieren

## Deploy Key (dieses Repo)

```
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILKnKLskXQH6p9Wb+UuzPekLremPJCDxFzE1dchqkXkt deploy@insight-infra
```

Privater Key: `.keys/deploy_infra_ed25519`

## Aktueller Status

- **Phase:** 1 — Infrastruktur
- **Stand:** VMs angelegt (DBS01 VM 1020), SSH-Zugang funktioniert
- **Nächster Schritt:** IPs eintragen → Ansible Inventory befüllen → Playbooks schreiben
