# Netcup Setup ohne Git ## 1. App-Struktur vorbereiten ### Option A: Bestehende App Falls du bereits eine App hast, stelle sicher dass sie diese Struktur hat: ``` deine-app/ ├── package.json # Node.js Abhängigkeiten ├── server.js # Hauptdatei ├── Dockerfile # Docker-Konfiguration └── ... weitere Dateien ``` ### Option B: Neue App erstellen ```bash # Erstelle App-Verzeichnis mkdir -p ~/meine-app # Beispiel Node.js App cd ~/meine-app # package.json cat > package.json << 'EOF' { "name": "meine-app", "version": "1.0.0", "main": "server.js", "scripts": { "start": "node server.js" }, "dependencies": { "express": "^4.18.0" } } EOF # server.js cat > server.js << 'EOF' const express = require('express'); const app = express(); const port = process.env.PORT || 3000; app.get('/', (req, res) => { res.json({ message: 'Hello World!', timestamp: new Date().toISOString() }); }); app.get('/health', (req, res) => { res.json({ status: 'ok' }); }); app.listen(port, '0.0.0.0', () => { console.log(`Server running on port ${port}`); }); EOF # Dockerfile cat > Dockerfile << 'EOF' FROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 3000 CMD ["npm", "start"] EOF ``` ## 2. Ansible konfigurieren ```bash # Ins Deployment-Verzeichnis cd ansible/netcup-simple-deploy # Konfiguration anpassen vim inventory/hosts.yml ``` **Wichtige Änderungen:** ```yaml ansible_host: DEINE-NETCUP-IP # ← Server IP domain: "deine-domain.com" # ← Domain ssl_email: "deine@email.com" # ← E-Mail local_app_path: "~/meine-app" # ← Pfad zu deiner App ``` ## 3. Deployment ```bash # SSH-Key zum Server (falls noch nicht gemacht) ssh-copy-id root@DEINE-NETCUP-IP # App deployen make deploy ``` ## 4. App updaten Nach Änderungen an deiner App: ```bash # Einfach erneut deployen make deploy ``` Die Dateien werden automatisch zum Server übertragen und die App neu gebaut. ## 5. Verschiedene App-Typen ### PHP App ```dockerfile FROM php:8.1-apache COPY . /var/www/html/ EXPOSE 80 ``` ### Python Flask ```dockerfile FROM python:3.9-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . EXPOSE 3000 CMD ["python", "app.py"] ``` ### Static HTML ```dockerfile FROM nginx:alpine COPY . /usr/share/nginx/html EXPOSE 80 ``` ## 6. Ordnerstruktur ``` netcup-simple-deploy/ ├── inventory/ │ └── hosts.yml # ← Hier konfigurieren ├── deploy.sh # ← Deployment starten └── Makefile # ← Einfache Befehle ~/meine-app/ # ← Deine App-Dateien ├── Dockerfile ├── package.json └── server.js ``` ## 7. Troubleshooting ### App startet nicht? ```bash # Logs anschauen make logs # Container status prüfen ansible all -m shell -a "docker ps -a" ``` ### Dateien werden nicht übertragen? ```bash # Pfad prüfen ls -la ~/meine-app # Manuell testen ansible all -m shell -a "ls -la /opt/myapp/src/" ``` Das war's! Keine Git-Kenntnisse nötig - einfach deine Dateien bearbeiten und deployen! 🎉