# Production Server Setup - Debian 12

## Netcup Panel Konfiguration

### 1. Fresh OS Installation
1. **Netcup Panel** → "Server" → Ihr Server
2. **"Betriebssystem"** → "Neu installieren"
3. **OS wählen**: `Debian 12 (Bookworm)` 64-bit
4. **Installation starten** und warten bis abgeschlossen

### 2. SSH-Key Konfiguration
1. **SSH-Key hinzufügen**:
   ```
   ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA3DqB1B4wa5Eo116bJ1HybFagK3fU0i+wJ6mAHI1L3i production@michaelschiemer.de
   ```

2. **Im Netcup Panel**:
   - "SSH-Keys" → "Neuen SSH-Key hinzufügen"
   - Name: `production-michaelschiemer`
   - Key: (oben kopieren und einfügen)
   - Key dem Server zuweisen

### 3. Root-Zugang aktivieren
1. **Console/KVM** über Netcup Panel öffnen
2. **Als root einloggen** (initial Setup)
3. **SSH-Key für root aktivieren**:
   ```bash
   # SSH-Key bereits durch Panel hinzugefügt
   # Root SSH sollte funktionieren
   ```

### 4. Deploy User einrichten
```bash
# Als root ausführen:
useradd -m -s /bin/bash deploy
usermod -aG sudo deploy

# SSH-Key für deploy user
mkdir -p /home/deploy/.ssh
cp /root/.ssh/authorized_keys /home/deploy/.ssh/
chown -R deploy:deploy /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
chmod 600 /home/deploy/.ssh/authorized_keys

# Sudo ohne Passwort für deploy
echo "deploy ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/deploy
```

## Warum Debian 12?

### Production-Vorteile:
- ✅ **Stabilität**: Bewährte LTS-Pakete, längere Support-Zyklen
- ✅ **Performance**: Geringerer Ressourcenverbrauch als Ubuntu
- ✅ **Security**: Conservative Updates, weniger experimentelle Features
- ✅ **Docker-Optimiert**: Perfekt für containerisierte Deployments
- ✅ **Minimale Basis**: Nur essentielle Pakete, weniger Attack Surface

### Server-Spezifikationen:
- **RAM**: Minimum 2GB (empfohlen 4GB+)
- **Storage**: Minimum 20GB SSD
- **CPU**: 1+ vCPU (empfohlen 2+ vCPU)
- **Network**: Stable internet, static IP

## Nach Installation testen:

```bash
# SSH-Connectivity Test
ssh -i ~/.ssh/production deploy@94.16.110.151

# System Info
ssh -i ~/.ssh/production deploy@94.16.110.151 'uname -a && lsb_release -a'
```

## Nächste Schritte:
Nach erfolgreichem Server-Setup:
1. SSH-Connectivity bestätigen
2. Ansible Ping-Test durchführen
3. Deployment-Playbook ausführen

---
**🔑 SSH-Key Fingerprint**: `SHA256:7FBYrZpDcYcKXpeM8OHoGZZBHwxNORoOFWuzP2MpDpQ`