Zum Inhalt springen
Q
QuoteNode

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

ContainerImageZweck
frontendVue 3 + CaddyLiefert die SPA aus und proxyt API-Requests
backendJava 25 / Spring BootREST API, Geschäftslogik, PDF
postgresPostgreSQL 16 AlpineDatenbank
gotenbergGotenberg 8HTML-zu-PDF-Konvertierung
backup-workergleiches Image wie BackendDatenbank- und Dateibackups

Persistente Volumes

VolumeInhalt
postgres_prod_dataDatenbankdateien
backend_prod_uploadsProduktbilder, Firmenlogos
backend_prod_pdfserzeugte PDF-Dokumente
backend_prod_backupsBackup-Archive
backend_prod_geoipMaxMind-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

VariableBeschreibung
DB_USERNAMEPostgreSQL-Benutzer
DB_PASSWORDPostgreSQL-Passwort
DB_ENCRYPTION_KEYAES-256-Schlüssel für die Verschlüsselung sensibler Felder
TIMING_TOKEN_SECRETSecret für Bot-Detection-Tokens
PUBLIC_LINK_PASSWORD_SESSION_SECRETSession-Secret für geschützte öffentliche Links
CORS_ALLOWED_ORIGINSerlaubte CORS-Origins

E-Mail

VariableBeschreibung
SMTP_HOSTSMTP-Host
SMTP_PORTSMTP-Port
SMTP_USERNAMESMTP-Login
SMTP_PASSWORDSMTP-Passwort
SMTP_AUTHaktiviert SMTP-Auth
SMTP_STARTTLSaktiviert STARTTLS

Backup

VariableBeschreibung
BACKUP_ENABLEDaktiviert automatische Backups
BACKUP_CRONCron-Zeitplan
BACKUP_RCLONE_REMOTERemote-Storage für Backups
BACKUP_GPG_RECIPIENTGPG-Empfänger für verschlüsselte Backups

Sicherheit

VariableBeschreibung
FEATURE_2FA_ENABLEDaktiviert 2FA
SECURITY_BOT_DETECTION_ENABLEDaktiviert Bot-Detection
GEOIP_ENABLEDaktiviert GeoIP-Zugriffskontrolle

Features

VariableBeschreibung
PDF_ENABLEDaktiviert PDF-Erzeugung
NOTIFICATIONS_ENABLEDaktiviert das Benachrichtigungssystem
NOTIFICATIONS_EMAIL_ENABLEDaktiviert E-Mail-Benachrichtigungen
LOG_LEVELLog-Level der Anwendung

Minimale Serveranforderungen

DeploymentRAMCPUDisk
Evaluation / Solo-Nutzung2 GB1 Kern10 GB SSD
Kleines Team4 GB2 Kerne20 GB SSD
Mittleres Team8 GB4 Kerne50 GB SSD

Das sind konservative Schätzungen. Der reale Bedarf hängt von Kataloggröße, Angebotsvolumen und PDF-Last ab.

Last reviewed: Recently