# Projekt Setup für Netcup (nutzt deine docker-compose.yml) ## Projektstruktur Das Deployment nutzt deine bestehende Docker-Konfiguration: ``` dein-projekt/ # Hauptordner ├── ansible/ # Hier sind wir jetzt │ └── netcup-simple-deploy/ ├── docker-compose.yml # ← DEINE Compose-Datei (wird verwendet!) ├── docker/ # Docker-Konfiguration │ ├── Dockerfile │ └── docker-compose.yml # ← Alternative hier ├── src/ # PHP Framework/Library Dateien ├── public/ # Web-Root └── ... ``` ## Was das Deployment macht: ✅ **Nutzt deine bestehende docker-compose.yml** ✅ **Startet ALLE deine Services** (DB, Redis, etc.) ✅ **Überträgt komplettes Projekt** ✅ **Nginx als Reverse Proxy** für SSL ## Quick Setup ### 1. Konfiguration ```bash cd ansible/netcup-simple-deploy vim inventory/hosts.yml ``` **Wichtig ändern:** ```yaml ansible_host: DEINE-NETCUP-IP domain: "deine-domain.com" app_port: 8080 # Port deiner App aus docker-compose.yml ``` ### 2. Port prüfen Schaue in deine `docker-compose.yml` welchen Port deine App exponiertrt: ```yaml services: myapp: ports: - "8080:80" # ← Dann ist app_port: 8080 ``` ### 3. Deployment ```bash make deploy ``` ## Beispiel docker-compose.yml Strukturen ### Einfache PHP App ```yaml version: '3.8' services: web: build: . ports: - "8080:80" volumes: - ./src:/var/www/src - ./public:/var/www/html ``` ### Mit Datenbank ```yaml version: '3.8' services: web: build: . ports: - "8080:80" depends_on: - db environment: - DATABASE_URL=mysql://user:pass@db:3306/myapp db: image: mysql:8.0 environment: - MYSQL_ROOT_PASSWORD=secret - MYSQL_DATABASE=myapp volumes: - db_data:/var/lib/mysql volumes: db_data: ``` ### Mit Redis + Database ```yaml version: '3.8' services: web: build: . ports: - "8080:80" depends_on: - db - redis db: image: postgres:15 environment: - POSTGRES_DB=myapp - POSTGRES_USER=user - POSTGRES_PASSWORD=secret volumes: - postgres_data:/var/lib/postgresql/data redis: image: redis:7-alpine volumes: - redis_data:/data volumes: postgres_data: redis_data: ``` ## Nach dem Deployment **Alle Services verwalten:** ```bash make services # Zeige alle Services make logs-service # Logs für bestimmten Service make status # Status aller Container make shell # In Container einsteigen ``` **Updates:** ```bash # Nach Änderungen an Code oder docker-compose.yml make deploy # Nur Container neu bauen make rebuild ``` **Monitoring:** ```bash make logs # Alle Logs make tail-logs # Live logs make show-env # Environment variables ``` ## Vorteile dieser Lösung ✅ **Deine bestehende Konfiguration** wird verwendet ✅ **Alle Services** (DB, Redis, etc.) funktionieren ✅ **Keine Code-Änderungen** nötig ✅ **SSL-Termination** durch nginx ✅ **Einfache Updates** mit make deploy Das Deployment ist jetzt vollständig auf deine bestehende Docker-Infrastruktur ausgerichtet! 🎉