Files
michaelschiemer/ansible/netcup-simple-deploy/SETUP-OHNE-GIT.md

3.1 KiB

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

# 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

# Ins Deployment-Verzeichnis
cd ansible/netcup-simple-deploy

# Konfiguration anpassen
vim inventory/hosts.yml

Wichtige Änderungen:

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

# 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:

# Einfach erneut deployen
make deploy

Die Dateien werden automatisch zum Server übertragen und die App neu gebaut.

5. Verschiedene App-Typen

PHP App

FROM php:8.1-apache
COPY . /var/www/html/
EXPOSE 80

Python Flask

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

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?

# Logs anschauen
make logs

# Container status prüfen
ansible all -m shell -a "docker ps -a"

Dateien werden nicht übertragen?

# 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! 🎉