📚 Deployment-Anleitung hinzugefügt

This commit is contained in:
2026-03-12 15:49:52 +00:00
parent c2357ee1bb
commit c670c26da3

226
DEPLOYMENT.md Normal file
View File

@@ -0,0 +1,226 @@
# 🚀 SeCu Deployment Guide
## Voraussetzungen
**Server:**
- Debian/Ubuntu Server (empfohlen: Debian 12)
- Min. 2GB RAM, 20GB Disk
- Root-Zugang
**Domains:**
- `secu.deine-domain.de` → Frontend
- `api.secu.deine-domain.de` → Backend
Beide Domains müssen auf die Server-IP zeigen (A-Record im DNS).
---
## Schnell-Installation (1 Befehl)
```bash
curl -sSL https://git.kronos-soulution.de/Flux_bot/secu/raw/branch/main/deploy/install.sh | bash
```
---
## Manuelle Installation
### 1⃣ System vorbereiten
```bash
# Als root auf dem Server
apt update && apt upgrade -y
apt install -y git curl nginx certbot python3-certbot-nginx docker.io docker-compose
systemctl enable --now docker
```
### 2⃣ Repo klonen
```bash
mkdir -p /srv/secu
cd /srv/secu
# Repos klonen
git clone https://git.kronos-soulution.de/Flux_bot/secu.git
git clone https://git.kronos-soulution.de/Flux_bot/secu-backend.git
git clone https://git.kronos-soulution.de/Flux_bot/secu-frontend.git
```
### 3⃣ Umgebungsvariablen setzen
```bash
cd /srv/secu
# .env erstellen
cat > .env << 'EOF'
# Datenbank (kann so bleiben für lokale DB)
POSTGRES_USER=secu
POSTGRES_PASSWORD=SeCu2026!SecureDB
POSTGRES_DB=secu
# JWT Secret (ÄNDERN!)
JWT_SECRET=DEIN-GEHEIMER-SCHLUESSEL-HIER-AENDERN
# Deine Domain
DOMAIN=secu.deine-domain.de
API_DOMAIN=api.secu.deine-domain.de
EOF
```
⚠️ **Wichtig:** `JWT_SECRET` unbedingt ändern! Zufällig generieren:
```bash
openssl rand -base64 32
```
### 4⃣ Nginx konfigurieren
```bash
# Domains anpassen
nano /srv/secu/secu/deploy/nginx/secu.conf
# Ersetze alle "secu.kronos-soulution.de" mit deiner Domain
# Ersetze alle "api.secu.kronos-soulution.de" mit deiner API-Domain
# Config kopieren
cp /srv/secu/secu/deploy/nginx/secu.conf /etc/nginx/sites-available/secu
ln -s /etc/nginx/sites-available/secu /etc/nginx/sites-enabled/
```
### 5⃣ SSL-Zertifikate
```bash
# Zertifikate holen (Nginx muss laufen, Domains müssen erreichbar sein)
certbot --nginx -d secu.deine-domain.de -d api.secu.deine-domain.de
```
### 6⃣ Docker starten
```bash
cd /srv/secu/secu/deploy
# Frontend API-URL anpassen
export VITE_API_URL=https://api.secu.deine-domain.de/api
# Container starten
docker-compose up -d
```
### 7⃣ Prüfen
```bash
# Logs anschauen
docker-compose logs -f
# Health-Check
curl http://localhost:8004/health
curl http://localhost:3006
```
---
## 🔧 Konfiguration anpassen
### Eigene Domain verwenden
1. DNS A-Records setzen für beide Domains
2. In `/srv/secu/secu/deploy/nginx/secu.conf`:
- Alle `secu.kronos-soulution.de` ersetzen
3. In `/srv/secu/secu/deploy/docker-compose.yml`:
- `VITE_API_URL` anpassen
4. Nginx neu laden: `systemctl reload nginx`
### Datenbank-Passwort ändern
In `/srv/secu/secu/deploy/docker-compose.yml`:
```yaml
POSTGRES_PASSWORD: DeinNeuesPasswort
DATABASE_URL: postgres://secu:DeinNeuesPasswort@secu-db:5432/secu
```
Dann: `docker-compose down && docker-compose up -d`
---
## 📋 Wichtige Befehle
```bash
cd /srv/secu/secu/deploy
# Status prüfen
docker-compose ps
# Logs anzeigen
docker-compose logs -f
docker-compose logs -f secu-backend # nur Backend
# Neustart
docker-compose restart
# Komplett neu starten
docker-compose down && docker-compose up -d
# Updates holen
cd /srv/secu/secu && git pull
cd /srv/secu/secu-backend && git pull
cd /srv/secu/secu-frontend && git pull
docker-compose down && docker-compose up -d --build
```
---
## 🔒 Ports (Firewall)
Nur diese Ports müssen offen sein:
- **80** (HTTP → Redirect zu HTTPS)
- **443** (HTTPS)
Interne Ports (NICHT öffnen):
- 3006 (Frontend intern)
- 8004 (Backend intern)
- 5434 (PostgreSQL intern)
```bash
# UFW Firewall
ufw allow 80
ufw allow 443
ufw allow 22 # SSH nicht vergessen!
ufw enable
```
---
## ❓ Troubleshooting
### Container startet nicht
```bash
docker-compose logs secu-backend
docker-compose logs secu-db
```
### Datenbank-Verbindung fehlgeschlagen
```bash
docker exec -it secu-db psql -U secu -d secu
# Sollte PostgreSQL-Prompt zeigen
```
### SSL-Fehler
```bash
certbot renew --dry-run
nginx -t
```
### Alles zurücksetzen
```bash
docker-compose down -v # -v löscht auch die Datenbank!
docker-compose up -d
```
---
## 📞 Support
Bei Fragen: admin@kronos-soulution.de
---
*Stand: März 2026*