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:
- Kontaktieren Sie sales@exeoflow.com
- Erhalten Sie Ihren Lizenzschlüssel
- Tragen Sie den Schlüssel in
.envein:
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
- System Integrationen - Externe Systeme anbinden
- Workspace erstellen - Ersten Workspace einrichten