4.2 KiB
4.2 KiB
🚀 SeCu Deployment Guide
Voraussetzungen
Server:
- Debian/Ubuntu Server (empfohlen: Debian 12)
- Min. 2GB RAM, 20GB Disk
- Root-Zugang
Domains:
secu.deine-domain.de→ Frontendapi.secu.deine-domain.de→ Backend
Beide Domains müssen auf die Server-IP zeigen (A-Record im DNS).
Schnell-Installation (1 Befehl)
curl -sSL https://git.kronos-soulution.de/Flux_bot/secu/raw/branch/main/deploy/install.sh | bash
Manuelle Installation
1️⃣ System vorbereiten
# 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
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
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:
openssl rand -base64 32
4️⃣ Nginx konfigurieren
# 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
# 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
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
# Logs anschauen
docker-compose logs -f
# Health-Check
curl http://localhost:8004/health
curl http://localhost:3006
🔧 Konfiguration anpassen
Eigene Domain verwenden
- DNS A-Records setzen für beide Domains
- In
/srv/secu/secu/deploy/nginx/secu.conf:- Alle
secu.kronos-soulution.deersetzen
- Alle
- In
/srv/secu/secu/deploy/docker-compose.yml:VITE_API_URLanpassen
- Nginx neu laden:
systemctl reload nginx
Datenbank-Passwort ändern
In /srv/secu/secu/deploy/docker-compose.yml:
POSTGRES_PASSWORD: DeinNeuesPasswort
DATABASE_URL: postgres://secu:DeinNeuesPasswort@secu-db:5432/secu
Dann: docker-compose down && docker-compose up -d
📋 Wichtige Befehle
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)
# UFW Firewall
ufw allow 80
ufw allow 443
ufw allow 22 # SSH nicht vergessen!
ufw enable
❓ Troubleshooting
Container startet nicht
docker-compose logs secu-backend
docker-compose logs secu-db
Datenbank-Verbindung fehlgeschlagen
docker exec -it secu-db psql -U secu -d secu
# Sollte PostgreSQL-Prompt zeigen
SSL-Fehler
certbot renew --dry-run
nginx -t
Alles zurücksetzen
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