Zum Hauptinhalt springen

Eigenes Hosting

Hosten Sie Exeoflow auf Ihrer eigenen Infrastruktur.

Überblick

Exeoflow kann auf Ihrer eigenen Infrastruktur gehostet werden (On-Premises oder Private Cloud):

  • Volle Datenkontrolle: Alle Daten bleiben in Ihrer Infrastruktur
  • Compliance: Erfüllung spezifischer Sicherheitsanforderungen
  • Anpassbarkeit: Individuelle Konfiguration und Integration
  • Unabhängigkeit: Keine Abhängigkeit von Cloud-Diensten

Systemanforderungen

Minimum-Anforderungen

Server:

  • CPU: 4 Cores
  • RAM: 8 GB
  • Speicher: 50 GB SSD
  • Betriebssystem: Linux (Ubuntu 20.04+, Debian 11+, CentOS 8+)

Datenbank:

  • PostgreSQL 13+ oder MySQL 8+
  • Mindestens 20 GB Speicher

Weitere Komponenten:

  • Redis 6+ (für Caching und Queue)
  • Nginx oder Apache (als Reverse Proxy)
  • SSL-Zertifikat (Let's Encrypt oder eigenes)

Empfohlene Konfiguration

Produktionsumgebung:

  • CPU: 8+ Cores
  • RAM: 16+ GB
  • Speicher: 200+ GB SSD (je nach Datenvolumen)
  • Load Balancer für High Availability

Installationsmethoden

Docker Installation (Empfohlen)

Docker ist die einfachste Methode für die Installation:

# Docker und Docker Compose installieren
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

# Exeoflow herunterladen
git clone https://github.com/exeoflow/exeoflow-selfhosted.git
cd exeoflow-selfhosted

# Konfiguration anpassen
cp .env.example .env
nano .env

# Container starten
docker-compose up -d

Kubernetes Installation

Für größere Deployments mit Kubernetes:

# Helm Repository hinzufügen
helm repo add exeoflow https://charts.exeoflow.com
helm repo update

# Values-Datei erstellen
helm show values exeoflow/exeoflow > values.yaml

# Installation
helm install exeoflow exeoflow/exeoflow -f values.yaml

Manuelle Installation

Für erweiterte Kontrolle:

# Node.js installieren (v18+)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs

# Exeoflow herunterladen
git clone https://github.com/exeoflow/exeoflow.git
cd exeoflow

# Dependencies installieren
npm install

# Build erstellen
npm run build

# Datenbank migrieren
npm run migrate

# Server starten
npm run start:prod

Konfiguration

Umgebungsvariablen

Wichtige Konfigurationsparameter in .env:

# Basis-Konfiguration
APP_URL=https://exeoflow.ihredomain.de
APP_PORT=3000
NODE_ENV=production

# Datenbank
DB_TYPE=postgres
DB_HOST=localhost
DB_PORT=5432
DB_NAME=exeoflow
DB_USER=exeoflow
DB_PASSWORD=sicheres-passwort

# Redis
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=redis-passwort

# E-Mail
MAIL_HOST=smtp.ihredomain.de
MAIL_PORT=587
MAIL_USER=noreply@ihredomain.de
MAIL_PASSWORD=mail-passwort
MAIL_FROM=Exeoflow <noreply@ihredomain.de>

# Sicherheit
JWT_SECRET=generieren-sie-einen-sicheren-schluessel
SESSION_SECRET=generieren-sie-einen-sicheren-schluessel

# Storage
STORAGE_TYPE=local # oder s3, azure, gcs
STORAGE_PATH=/var/exeoflow/storage

# Optional: S3-kompatibles Storage
S3_ENDPOINT=https://s3.amazonaws.com
S3_BUCKET=exeoflow-files
S3_ACCESS_KEY=ihr-access-key
S3_SECRET_KEY=ihr-secret-key

Datenbank einrichten

PostgreSQL:

CREATE DATABASE exeoflow;
CREATE USER exeoflow WITH PASSWORD 'sicheres-passwort';
GRANT ALL PRIVILEGES ON DATABASE exeoflow TO exeoflow;

MySQL:

CREATE DATABASE exeoflow CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'exeoflow'@'localhost' IDENTIFIED BY 'sicheres-passwort';
GRANT ALL PRIVILEGES ON exeoflow.* TO 'exeoflow'@'localhost';
FLUSH PRIVILEGES;

Reverse Proxy (Nginx)

Beispiel-Konfiguration für Nginx:

server {
listen 80;
server_name exeoflow.ihredomain.de;
return 301 https://$server_name$request_uri;
}

server {
listen 443 ssl http2;
server_name exeoflow.ihredomain.de;

ssl_certificate /etc/letsencrypt/live/exeoflow.ihredomain.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/exeoflow.ihredomain.de/privkey.pem;

client_max_body_size 100M;

location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
}

Sicherheit

SSL/TLS einrichten

Let's Encrypt (kostenlos):

# Certbot installieren
sudo apt-get install certbot python3-certbot-nginx

# Zertifikat erstellen
sudo certbot --nginx -d exeoflow.ihredomain.de

# Automatische Erneuerung einrichten
sudo certbot renew --dry-run

Firewall konfigurieren

# UFW Firewall
sudo ufw allow 22/tcp # SSH
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw enable

Backup einrichten

Datenbank-Backup:

#!/bin/bash
# backup.sh

BACKUP_DIR="/var/backups/exeoflow"
DATE=$(date +%Y%m%d_%H%M%S)

# PostgreSQL Backup
pg_dump -U exeoflow exeoflow | gzip > "$BACKUP_DIR/db_$DATE.sql.gz"

# Files Backup
tar -czf "$BACKUP_DIR/files_$DATE.tar.gz" /var/exeoflow/storage

# Alte Backups löschen (älter als 30 Tage)
find $BACKUP_DIR -type f -mtime +30 -delete

Cronjob einrichten:

# Täglich um 2 Uhr morgens
0 2 * * * /usr/local/bin/backup.sh

Updates und Wartung

Update durchführen

Docker:

# Neue Version herunterladen
docker-compose pull

# Container neu starten
docker-compose down
docker-compose up -d

# Datenbank-Migrationen
docker-compose exec app npm run migrate

Manuelle Installation:

# Code aktualisieren
git pull origin main

# Dependencies aktualisieren
npm install

# Neu bauen
npm run build

# Migrationen ausführen
npm run migrate

# Server neu starten
pm2 restart exeoflow

Monitoring

Empfohlene Tools:

  • Uptime Monitoring: UptimeRobot, Pingdom
  • Server Monitoring: Netdata, Prometheus + Grafana
  • Log Management: ELK Stack, Graylog
  • Application Performance: New Relic, DataDog

Logs

Log-Dateien:

# Application Logs
/var/log/exeoflow/app.log
/var/log/exeoflow/error.log

# Nginx Logs
/var/log/nginx/access.log
/var/log/nginx/error.log

# Docker Logs
docker-compose logs -f

High Availability

Load Balancing

Für hochverfügbare Setups:

                    [Load Balancer]
/ \
[App Server 1] [App Server 2]
\ /
[Shared Database]
[Shared Redis]
[Shared Storage]

Datenbank-Replikation

PostgreSQL Streaming Replication:

  • Master-Slave Setup
  • Automatisches Failover mit Patroni
  • Connection Pooling mit PgBouncer

Lizenzierung

Self-Hosted Lizenz

Für Self-Hosted Installationen benötigen Sie eine Enterprise-Lizenz:

  1. Kontaktieren Sie sales@exeoflow.com
  2. Erhalten Sie Ihren Lizenzschlüssel
  3. Tragen Sie den Schlüssel in .env ein:
LICENSE_KEY=ihr-lizenzschluessel

Lizenz-Typen

  • Starter: Bis 10 Benutzer
  • Business: Bis 50 Benutzer
  • Enterprise: Unbegrenzte Benutzer + Premium Support

Support

Community Support

  • GitHub Discussions
  • Community Forum
  • Discord Server

Enterprise Support

  • 24/7 Support
  • Dedizierter Account Manager
  • SLA-Garantien
  • Prioritäre Bugfixes

Troubleshooting

Häufige Probleme

Verbindungsfehler zur Datenbank:

# Verbindung testen
psql -h localhost -U exeoflow -d exeoflow

# Logs prüfen
docker-compose logs db

Performance-Probleme:

  • Redis-Cache überprüfen
  • Datenbank-Indizes optimieren
  • Server-Ressourcen erhöhen

Speicherplatz voll:

# Speichernutzung prüfen
df -h

# Alte Logs löschen
find /var/log -type f -name "*.log" -mtime +30 -delete

# Docker aufräumen
docker system prune -a

Nächste Schritte