Zum Inhalt springen
Q
QuoteNode

Installation

Mit Coolify installieren

QuoteNode mit Coolify unter Verwendung des Docker-Compose-Build-Packs und der dedizierten Coolify-Compose-Datei bereitstellen.

Mit Coolify installieren

Coolify ist der empfohlene öffentliche Beta-Bereitstellungspfad, wenn Sie verwaltetes HTTPS, Git-basierte Deploys, Container-Health-Checks und eine Web-Oberfläche für Umgebungsvariablen wünschen.

Repository-Einstellungen

Erstellen Sie eine Anwendung aus dem QuoteNode-Repository und verwenden Sie diese Einstellungen:

EinstellungWert
Build PackDocker Compose
Base Directory/
Docker Compose Location/infra/docker-compose.coolify.yml
Public domainnur auf frontend konfigurieren, zum Beispiel https://crm2.prodata.cc
Backend domainleer lassen, es sei denn, Sie wissen, warum sie öffentlich sein muss
Backup worker domainleer lassen
Gotenberg domainleer lassen

Der Coolify-Proxy sollte die Domain an den frontend-Dienst routen. Das Backend, der Backup-Worker, PostgreSQL und Gotenberg bleiben intern. Weisen Sie backend, backup-worker, postgres oder gotenberg keine öffentlichen Domains zu; die direkte Freigabe dieser Dienste erhöht die Angriffsfläche und kann die vorgesehene Frontend/Proxy-Grenze umgehen.

Build- und Startbefehle

Für normale Coolify-Bereitstellungen lassen Sie benutzerdefinierte Befehle leer, es sei denn, Ihr Coolify-Setup erfordert sie. Wenn Coolify generierte Befehle anzeigt, können sie etwa so aussehen:

docker compose build
docker compose up -d

Verlassen Sie sich in diesem Modus nicht auf Nixpacks-Node-Einstellungen für die QuoteNode-Runtime. Die Dockerfiles und die Compose-Datei definieren die Runtime.

Erweiterte Schalter

Empfohlene Standardeinstellungen:

Coolify-OptionEmpfehlung
Inject Build Args to Dockerfileaktiviert
Auto Deployaktiviert für Staging, optional für Produktion
Git Submodulesnur wenn Ihr Checkout sie benötigt
LFSnur wenn das Repo Git-LFS-Assets verwendet
Shallow Cloneakzeptabel
Proxy Force HTTPSaktiviert
Enable Gzip Compressionaktiviert
Strip PrefixesStandard lassen, es sei denn, Sie stellen unter einem Pfad-Präfix bereit

Überprüfen Sie Watch Paths, bevor Sie sie verwenden. Ein Pfad wie services/api/** ist für dieses Repository-Layout veraltet; Backend-Code liegt unter backend/** und Frontend-Code unter frontend/**.

Erforderliche Umgebungsvariablen

Setzen Sie diese in der Coolify-Umgebungs-UI:

DB_NAME=quotenode
DB_USERNAME=quotenode
DB_PASSWORD=<random-32+-characters>
DB_URL=jdbc:postgresql://postgres:5432/quotenode
DB_ENCRYPTION_KEY=<64-hex-characters>
TIMING_TOKEN_SECRET=<random-32+-characters>
PUBLIC_LINK_PASSWORD_SESSION_SECRET=<random-32+-characters>
CORS_ALLOWED_ORIGINS=https://<frontend-domain>
NOTIFICATIONS_PUBLIC_PREFERENCES_URL=https://<frontend-domain>/notifications/preferences
PDF_ENABLED=true
NOTIFICATIONS_ENABLED=true
NOTIFICATIONS_EMAIL_ENABLED=false
FEATURE_2FA_ENABLED=true
BACKUP_ENABLED=false
BACKUP_CRON=0 0 2 * * *
SECURITY_BOT_DETECTION_ENABLED=true
# Die Client-IP wird hinter internen Proxys und CDNs (auch Cloudflare) automatisch erkannt — leer lassen.
# Nur für ein ungewöhnliches Proxy setzen, dessen Transport-Peer eine ÖFFENTLICHE Adresse ist (IP/CIDR oder Hostname).
SECURITY_TRUSTED_PROXIES=
GEOIP_ENABLED=false
LOG_LEVEL=INFO
VITE_RELEASE_CHECK_ENABLED=true
VITE_RELEASE_MANIFEST_URL=https://quotenode.dev/releases/latest.json

Wenn E-Mail-Zustellung aktiviert ist, setzen Sie auch:

NOTIFICATIONS_EMAIL_ENABLED=true
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USERNAME[email protected]
SMTP_PASSWORD=<smtp-password>
SMTP_AUTH=true
SMTP_STARTTLS=true

BACKUP_CRON verwendet das sechs-Feld-Cron-Format von Spring, also bedeutet 0 0 2 * * * täglich um 02:00 Uhr.

Einige Betreiber-Vorlagen enthalten auch SERVICE_URL_FRONTEND=https://<frontend-domain>. Halten Sie es mit der Frontend-Domain abgestimmt, wenn Ihr Bereitstellungsprozess sie verwendet. Die aktuelle Coolify-Compose-Datei verbraucht diese Variable nicht direkt; der Browser-Zugriff wird durch CORS_ALLOWED_ORIGINS gesteuert, und Benachrichtigungs-Einstellungslinks verwenden NOTIFICATIONS_PUBLIC_PREFERENCES_URL.

Release-Metadaten

Coolify-Source-Bereitstellungen können APP_VERSION leer lassen, es sei denn, ein Release-Tag wird gebaut. Setzen Sie die Metadaten, wenn Ihr CI oder Coolify-Pipeline sie bereitstellen kann:

# APP_VERSION kann für Source-Bereitstellungen ausgelassen werden, bis ein Release-Tag gebaut wird.
APP_CHANNEL=beta
APP_COMMIT_SHA=<commit-sha>
APP_BUILD_TIME=<iso-time>
APP_BUILD_NUMBER=<build-number>
APP_SOURCE_REF=<branch-or-tag>
APP_IMAGE_TAG=<image-tag>

Verwenden Sie APP_CHANNEL=alpha, beta, rc, dev oder stable je nach dem Release, den Sie bereitstellen.

Lizenzsicherheit

Für echte Beta- und öffentliche Bereitstellungen:

LICENSE_SKIP_SIGNATURE_CHECK=false

Setzen Sie es explizit auf false für echte Beta-Bereitstellungen. Die Compose-Datei standardmäßig ebenfalls auf false, wenn die Variable ausgelassen wird, aber Produktions-Betreiber sollten hier keine Ambiguität tolerieren. Das Setzen auf true deaktiviert die Lizenz-Echtheitsprüfung und kann gegen Lizenzbedingungen verstoßen; verwenden Sie das nur in wegwerfbaren Entwicklungsumgebungen.

Post-Deploy-Checks

Nachdem die Bereitstellung in Coolify gesund ist:

  1. Öffnen Sie https://<frontend-domain>/health.
  2. Öffnen Sie die Frontend-Domain in einem Browser.
  3. Melden Sie sich mit dem voreingestellten Administrator nur für den ersten Bootstrap an, dann ändern Sie das Passwort.
  4. Erstellen Sie ein Angebot.
  5. Generieren Sie ein PDF.
  6. Erstellen und öffnen Sie einen öffentlichen Link.
  7. Wenn E-Mail aktiviert ist, verifizieren Sie SMTP und Benachrichtigungs-Einstellungslinks.
  8. Prüfen Sie den Admin-Lizenz/Version-Bereich auf aktuelle Version und Release-Hinweis-Status.

Häufige Coolify-Probleme

  • Öffentliche Links schlagen fehl, wenn CORS_ALLOWED_ORIGINS nicht exakt mit dem Browser-Ursprung übereinstimmt.
  • E-Mail-Einstellungslinks schlagen fehl, wenn NOTIFICATIONS_PUBLIC_PREFERENCES_URL noch auf localhost oder eine alte Domain zeigt.
  • Gotenberg sollte keine öffentliche Domain erhalten; es ist ein interner PDF-Dienst.
  • Coolify-verwaltetes HTTPS erfordert, dass die Frontend-Domain auf den Coolify-Server zeigt.
  • Wenn Build-Metadaten leer sind, kann die Anwendung trotzdem laufen, aber die Admin-Versionsanzeige zeigt möglicherweise weniger Release-Details.

Last reviewed: Recently