Some checks failed
🚀 Build & Deploy Image / Determine Build Necessity (push) Failing after 10m14s
🚀 Build & Deploy Image / Build Runtime Base Image (push) Has been skipped
🚀 Build & Deploy Image / Build Docker Image (push) Has been skipped
🚀 Build & Deploy Image / Run Tests & Quality Checks (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Staging (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Production (push) Has been skipped
Security Vulnerability Scan / Check for Dependency Changes (push) Failing after 11m25s
Security Vulnerability Scan / Composer Security Audit (push) Has been cancelled
- Remove middleware reference from Gitea Traefik labels (caused routing issues) - Optimize Gitea connection pool settings (MAX_IDLE_CONNS=30, authentication_timeout=180s) - Add explicit service reference in Traefik labels - Fix intermittent 504 timeouts by improving PostgreSQL connection handling Fixes Gitea unreachability via git.michaelschiemer.de
4.8 KiB
4.8 KiB
Quick Start Guide - Deployment & CI/CD
🚀 Schnellstart: Code deployen
Initial Deployment (Einmalig - erstes Setup)
Für erstes Setup des Servers:
# 1. Code synchronisieren (Rsync)
cd deployment/ansible
ansible-playbook -i inventory/production.yml \
playbooks/sync-application-code.yml \
--vault-password-file secrets/.vault_pass
# 2. Composer Dependencies installieren
ansible-playbook -i inventory/production.yml \
playbooks/install-composer-dependencies.yml \
--vault-password-file secrets/.vault_pass
# 3. Application Stack deployen
ansible-playbook -i inventory/production.yml \
playbooks/setup-infrastructure.yml \
--tags application \
--vault-password-file secrets/.vault_pass
Siehe auch: Initial Deployment Guide
Normal Deployment (CI/CD)
Für zukünftige Deployments:
# 1. Code ändern
# ... Dateien bearbeiten ...
# 2. Committen
git add .
git commit -m "feat: Add new feature"
# 3. Pushen → Automatisches Deployment!
git push origin main
Das war's! Die Pipeline läuft automatisch (~8-15 Minuten).
📋 Status-Übersicht
✅ Vollständig konfiguriert
- ✅ CI/CD Pipeline - Automatisches Deployment bei Push zu
main - ✅ Gitea Runner - Läuft und ist registriert
- ✅ Secrets - Alle kritischen Secrets konfiguriert
- ✅ Application Stack - Integration in
setup-infrastructure.yml - ✅ Ansible Playbooks - Deployment & Rollback vorhanden
⚠️ Ausstehend
- Pipeline testen - End-to-End Test durchführen
- Backup-Scripts - Backup-Playbook erstellen
- Dokumentation vervollständigen - Finale Updates
🔍 Pipeline-Status prüfen
Nach einem Push
Gitea Actions UI:
https://git.michaelschiemer.de/michael/michaelschiemer/actions
Status-Anzeigen:
- 🟢 Grüner Haken = Erfolgreich
- 🔴 Roter Haken = Fehlgeschlagen
- 🟡 Gelber Kreis = Läuft gerade
Logs ansehen:
- Klicke auf den Workflow-Run
- Klicke auf Job (z.B. "Deploy to Production Server")
- Klicke auf Step (z.B. "Deploy via Ansible")
- Logs ansehen
Application-Status prüfen
# SSH zum Production-Server
ssh deploy@94.16.110.151
# Container-Status
cd ~/deployment/stacks/production
docker compose ps
# Logs ansehen
docker compose logs app
# Health-Check
curl https://michaelschiemer.de/health
📚 Vollständige Dokumentation
Deployment-Dokumentation
CODE_CHANGE_WORKFLOW.md- Wie Codeänderungen gepusht werdenAPPLICATION_STACK_DEPLOYMENT.md- Detaillierter Deployment-AblaufCI_CD_STATUS.md- CI/CD Pipeline Status & ChecklisteDEPLOYMENT-TODO.md- Aktuelle TODO-Liste
Setup-Dokumentation
docs/guides/setup-guide.md- Kompletter Setup-Guideansible/README.md- Ansible Playbooks Dokumentationstacks/production/README.md- Application Stack Details
Workflow-Dokumentation
.gitea/workflows/production-deploy.yml- Haupt-Deployment-Pipeline.gitea/workflows/TEST_WORKFLOW.md- Workflow-Test-Anleitung
🎯 Nächste Schritte
1. Pipeline testen (Empfohlen)
Option A: Test-Commit pushen
# Kleine Änderung
echo "# Test" >> README.md
git add README.md
git commit -m "test: CI/CD pipeline test"
git push origin main
Option B: Workflow manuell triggern
https://git.michaelschiemer.de/michael/michaelschiemer/actions
→ "Production Deployment Pipeline"
→ "Run workflow"
2. Backup-Scripts erstellen
# Backup-Playbook erstellen
cd deployment/ansible/playbooks
# → Erstelle backup.yml
3. Dokumentation finalisieren
- Finale Updates in
DEPLOYMENT-STATUS.md - README aktualisieren
🆘 Troubleshooting
Pipeline schlägt fehl
Tests fehlgeschlagen:
# Tests lokal ausführen
./vendor/bin/pest
composer cs
make phpstan
Build fehlgeschlagen:
# Docker Build lokal testen
docker build -f Dockerfile.production -t test .
Deployment fehlgeschlagen:
# Logs prüfen
ssh deploy@94.16.110.151 "cd ~/deployment/stacks/production && docker compose logs"
# Manueller Rollback
cd deployment/ansible
ansible-playbook -i inventory/production.yml playbooks/rollback.yml
Runner-Probleme
# Runner-Status prüfen
cd deployment/gitea-runner
docker compose ps
docker compose logs gitea-runner
# Runner neu starten
docker compose restart gitea-runner
📞 Support
Dokumentation:
deployment/README.md- Haupt-Dokumentationdeployment/CI_CD_STATUS.md- CI/CD Detailsdeployment/CODE_CHANGE_WORKFLOW.md- Workflow-Guide
Gitea:
- Actions:
https://git.michaelschiemer.de/michael/michaelschiemer/actions - Runners:
https://git.michaelschiemer.de/admin/actions/runners
Ready to deploy! 🚀