Wiki
Bereitstellungsoptionen
Wie QuoteNode bereitgestellt wird — Docker Compose, Coolify und Produktions-Topologie.
Bereitstellungsoptionen
QuoteNode unterstützt mehrere Deployment-Modelle auf Docker-Basis. Wählen Sie den Ansatz, der zu Ihrer Infrastruktur passt.
Docker Compose
Das Standard-Deployment verwendet eine einzige docker-compose.yml, die alle Dienste startet:
docker compose up -d
Produktions-Topologie
Internet
│
▼
Caddy (Port 80/443, automatisches HTTPS)
├── /api/* → Backend (Java 25, Port 8080)
├── /offer/* → Backend (öffentliche Angebotsseiten)
└── /* → Frontend (Vue 3, statische Assets)
Backend → PostgreSQL (Port 5432)
Backend → Gotenberg (Port 3000, PDF-Generierung)
backup-worker → PostgreSQL (geplante Backups)
Dienste
| Container | Image | Zweck |
|---|---|---|
frontend | Vue 3 + Caddy | Liefert die SPA aus und proxyt API-Requests |
backend | Java 25 / Spring Boot | REST API, Geschäftslogik, PDF |
postgres | PostgreSQL 16 Alpine | Datenbank |
gotenberg | Gotenberg 8 | HTML-zu-PDF-Konvertierung |
backup-worker | gleiches Image wie Backend | Datenbank- und Dateibackups |
Persistente Volumes
| Volume | Inhalt |
|---|---|
postgres_prod_data | Datenbankdateien |
backend_prod_uploads | Produktbilder, Firmenlogos |
backend_prod_pdfs | erzeugte PDF-Dokumente |
backend_prod_backups | Backup-Archive |
backend_prod_geoip | MaxMind-GeoIP-Datenbank |
Deployment mit Coolify
Coolify ist ein Open-Source-PaaS für den eigenen Server. Für QuoteNode existiert eine spezielle docker-compose.coolify.yml, die auf diesen Betrieb ausgerichtet ist.
Wichtige Unterschiede zu Standard-Docker-Compose
- Coolify verwaltet TLS — Zertifikate und Domain-Routing werden durch den Coolify-eigenen Proxy übernommen
- Umgebungsvariablen kommen über die Coolify-Oberfläche
- Health Checks werden durch die Plattform überwacht
- Es gibt zwei grundsätzliche Deploy-Varianten:
Modus A — Build aus Quellcode
Coolify klont das Repository und baut Images direkt beim Deployment.
- langsamere Deploys,
- kein separates CI/CD nötig,
- gut für den schnellen Einstieg.
Modus B — vorgebaute Images
GitHub Actions baut Images und pusht sie nach GHCR, Coolify zieht nur noch die fertigen Artefakte.
- deutlich schnellere Deploys,
- benötigt einen CI/CD-Workflow,
- für Produktion empfohlen.
Erforderliche Coolify-Konfiguration
- Resource type: Dockerfile oder Docker Image
- Internal port:
8080 - Health check path:
/health - Domain: wird in Coolify definiert
- HTTPS: automatisch durch Coolify erzwungen
Referenz der Umgebungsvariablen
Den vollständigen Katalog, einschließlich Entwicklungsports, Vite-Variablen und Backup-Worker-Einstellungen, finden Sie in der Referenz der Umgebungsvariablen.
In allen Deployments erforderlich
| Variable | Beschreibung |
|---|---|
DB_USERNAME | PostgreSQL-Benutzer |
DB_PASSWORD | PostgreSQL-Passwort |
DB_ENCRYPTION_KEY | AES-256-Schlüssel für die Verschlüsselung sensibler Felder |
TIMING_TOKEN_SECRET | Secret für Bot-Detection-Tokens |
PUBLIC_LINK_PASSWORD_SESSION_SECRET | Session-Secret für geschützte öffentliche Links |
CORS_ALLOWED_ORIGINS | erlaubte CORS-Origins |
| Variable | Beschreibung |
|---|---|
SMTP_HOST | SMTP-Host |
SMTP_PORT | SMTP-Port |
SMTP_USERNAME | SMTP-Login |
SMTP_PASSWORD | SMTP-Passwort |
SMTP_AUTH | aktiviert SMTP-Auth |
SMTP_STARTTLS | aktiviert STARTTLS |
Backup
| Variable | Beschreibung |
|---|---|
BACKUP_ENABLED | aktiviert automatische Backups |
BACKUP_CRON | Cron-Zeitplan |
BACKUP_RCLONE_REMOTE | Remote-Storage für Backups |
BACKUP_GPG_RECIPIENT | GPG-Empfänger für verschlüsselte Backups |
Sicherheit
| Variable | Beschreibung |
|---|---|
FEATURE_2FA_ENABLED | aktiviert 2FA |
SECURITY_BOT_DETECTION_ENABLED | aktiviert Bot-Detection |
GEOIP_ENABLED | aktiviert GeoIP-Zugriffskontrolle |
Features
| Variable | Beschreibung |
|---|---|
PDF_ENABLED | aktiviert PDF-Erzeugung |
NOTIFICATIONS_ENABLED | aktiviert das Benachrichtigungssystem |
NOTIFICATIONS_EMAIL_ENABLED | aktiviert E-Mail-Benachrichtigungen |
LOG_LEVEL | Log-Level der Anwendung |
Minimale Serveranforderungen
| Deployment | RAM | CPU | Disk |
|---|---|---|---|
| Evaluation / Solo-Nutzung | 2 GB | 1 Kern | 10 GB SSD |
| Kleines Team | 4 GB | 2 Kerne | 20 GB SSD |
| Mittleres Team | 8 GB | 4 Kerne | 50 GB SSD |
Das sind konservative Schätzungen. Der reale Bedarf hängt von Kataloggröße, Angebotsvolumen und PDF-Last ab.