# CI/CD Pipeline - Setup Checklist ## ✅ Status ### 1. Repository Secrets in Gitea ✅ BEREIT **Pfad**: Repository → Settings → Secrets **Schnelles Setup:** ```bash bash scripts/prepare-secrets.sh ``` **Erforderliche Secrets:** - [ ] **REGISTRY_USER**: `admin` - [ ] **REGISTRY_PASSWORD**: `registry-secure-password-2025` - [ ] **SSH_PRIVATE_KEY**: Vollständiger Inhalt von `~/.ssh/production` **Details**: Siehe `.gitea/workflows/QUICK_SECRETS_SETUP.md` **Hinweis**: Alle Secrets müssen in Gitea konfiguriert werden, bevor die Pipeline läuft. ### 2. Docker Registry ✅ - ✅ Registry läuft auf `registry.michaelschiemer.de` - ✅ Authentifizierung konfiguriert (admin/registry-secure-password-2025) - ✅ Erreichbar via HTTP auf `127.0.0.1:5000` - ✅ Image `framework` bereits vorhanden **Registry-Test**: ```bash curl -u admin:registry-secure-password-2025 http://127.0.0.1:5000/v2/_catalog # Erwartete Ausgabe: {"repositories":["framework"]} ``` ### 3. Ansible Playbooks ✅ - ✅ `deploy-update.yml` - Aktualisiert für Docker Compose - ✅ `rollback.yml` - Aktualisiert für Docker Compose - ✅ `setup-infrastructure.yml` - Enthält Registry-Setup - ✅ `sync-stacks.yml` - Synchronisiert Stack-Konfigurationen ### 4. Workflow-Konfiguration ✅ - ✅ `.gitea/workflows/production-deploy.yml` - Haupt-Workflow - ✅ `Dockerfile.production` - Production Dockerfile erstellt - ✅ Application Stack konfiguriert (`deployment/stacks/application/docker-compose.yml`) ## 📋 Nächste Schritte ### Schritt 1: Secrets in Gitea hinzufügen Siehe `.gitea/workflows/SECRETS_SETUP.md` für detaillierte Anleitung. ### Schritt 2: Workflow manuell testen 1. Gehe zu: `https://git.michaelschiemer.de//michaelschiemer/actions` 2. Wähle "Production Deployment Pipeline" 3. Klicke "Run workflow" 4. Wähle Branch `main` 5. Beobachte die Ausführung ### Schritt 3: Automatisches Deployment testen 1. Push zu `main` Branch 2. Workflow sollte automatisch starten 3. Prüfe Logs in Gitea Actions ## 🔧 Troubleshooting ### Registry nicht erreichbar ```bash # Prüfe Registry-Status ssh deploy@94.16.110.151 "docker ps | grep registry" # Teste Registry-Erreichbarkeit ssh deploy@94.16.110.151 "curl -u admin:registry-secure-password-2025 http://127.0.0.1:5000/v2/_catalog" ``` ### Workflow schlägt bei Registry-Login fehl - Prüfe, ob `REGISTRY_USER` und `REGISTRY_PASSWORD` Secrets korrekt gesetzt sind - Prüfe, ob das Passwort in Gitea mit dem Server übereinstimmt ### Image Pull schlägt fehl - Prüfe, ob das Image in der Registry existiert: ```bash curl -u admin:registry-secure-password-2025 http://127.0.0.1:5000/v2/framework/tags/list ``` - Prüfe Registry-Logs für Fehler ### Deployment schlägt fehl - Prüfe Ansible-Logs im Workflow - Prüfe, ob `deployment/stacks/application/docker-compose.yml` auf dem Server existiert - Prüfe Docker-Logs auf dem Server: ```bash ssh deploy@94.16.110.151 "cd ~/deployment/stacks/application && docker compose logs" ```