Aller au contenu
Q
QuoteNode

Installation

Installer avec Coolify

Déployer QuoteNode avec Coolify en utilisant le build pack Docker Compose et le fichier compose dédié Coolify.

Installer avec Coolify

Coolify est le chemin de déploiement public beta recommandé lorsque vous souhaitez du HTTPS géré, des déploiements basés sur Git, des health checks de conteneurs et une interface web pour les variables d’environnement.

Paramètres du dépôt

Créez une application depuis le dépôt QuoteNode et utilisez ces paramètres :

ParamètreValeur
Build PackDocker Compose
Base Directory/
Docker Compose Location/infra/docker-compose.coolify.yml
Public domainconfiguré sur frontend uniquement, par exemple https://crm2.prodata.cc
Backend domainlaissez vide sauf si vous savez pourquoi il doit être public
Backup worker domainlaissez vide
Gotenberg domainlaissez vide

Le proxy de Coolify doit router le domaine vers le service frontend. Le backend, le backup worker, PostgreSQL et Gotenberg restent internes. N’attribuez pas de domaines publics à backend, backup-worker, postgres ou gotenberg ; exposer ces services directement augmente la surface d’attaque et peut contourner la frontière frontend/proxy prévue.

Commandes de build et de démarrage

Pour les déploiements Coolify normaux, laissez les commandes personnalisées vides sauf si votre setup Coolify les requiert. Si Coolify affiche des commandes générées, elles peuvent ressembler à :

docker compose build
docker compose up -d

Ne comptez pas sur les paramètres Nixpacks Node pour le runtime QuoteNode dans ce mode. Les Dockerfiles et le fichier Compose définissent le runtime.

Options avancées

Valeurs par défaut recommandées :

Option CoolifyRecommandation
Inject Build Args to Dockerfileactivé
Auto Deployactivé pour staging, optionnel pour production
Git Submodulesuniquement si votre checkout en a besoin
LFSuniquement si le repo utilise des assets Git LFS
Shallow Cloneacceptable
Proxy Force HTTPSactivé
Enable Gzip Compressionactivé
Strip Prefixeslaissez la valeur par défaut sauf déploiement sous un préfixe de chemin

Vérifiez les Watch Paths avant de les utiliser. Un chemin tel que services/api/** est obsolète pour la structure de ce dépôt ; le code backend vit sous backend/** et le code frontend sous frontend/**.

Variables d’environnement requises

Définissez ces variables dans l’interface environnement de Coolify :

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
# L'IP du client est détectée automatiquement derrière des proxys internes et des CDN (Cloudflare inclus) — laisser vide.
# À définir uniquement pour un proxy inhabituel dont le pair de transport est une adresse PUBLIQUE à approuver (IP/CIDR ou nom d'hôte).
SECURITY_TRUSTED_PROXIES=
GEOIP_ENABLED=false
LOG_LEVEL=INFO
VITE_RELEASE_CHECK_ENABLED=true
VITE_RELEASE_MANIFEST_URL=https://quotenode.dev/releases/latest.json

Si la livraison d’emails est activée, définissez aussi :

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 utilise le format cron à six champs de Spring, donc 0 0 2 * * * signifie 02h00 tous les jours.

Certains templates opérateurs incluent aussi SERVICE_URL_FRONTEND=https://<frontend-domain>. Gardez-le aligné avec le domaine frontend si votre processus de déploiement l’utilise. Le fichier compose Coolify actuel ne consomme pas cette variable directement ; l’accès navigateur est contrôlé par CORS_ALLOWED_ORIGINS, et les liens de préférence de notification utilisent NOTIFICATIONS_PUBLIC_PREFERENCES_URL.

Métadonnées de release

Les déploiements Coolify depuis les sources peuvent laisser APP_VERSION vide sauf si un tag de release est en cours de build. Définissez les métadonnées quand votre CI ou pipeline Coolify peut les fournir :

# APP_VERSION peut etre omis pour les deploiements source jusqu'a ce qu'un tag de release soit build.
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>

Utilisez APP_CHANNEL=alpha, beta, rc, dev, ou stable selon la release que vous déployez.

Sécurité de la licence

Pour les vrais déploiements beta et publics :

LICENSE_SKIP_SIGNATURE_CHECK=false

Définissez-la explicitement à false pour les vrais déploiements beta. Le fichier compose defaulte aussi à false quand la variable est omise, mais les opérateurs de production ne devraient pas compter sur l’ambiguïté ici. La mettre à true désactive la vérification d’authenticité de la licence et peut violer les termes de licence ; utilisez cela uniquement dans des environnements de développement jetables.

Vérifications post-déploiement

Après que le déploiement est sain dans Coolify :

  1. Ouvrez https://<frontend-domain>/health.
  2. Ouvrez le domaine frontend dans un navigateur.
  3. Connectez-vous avec l’administrateur seed uniquement pour le premier bootstrap, puis changez le mot de passe.
  4. Créez une offre.
  5. Générez un PDF.
  6. Créez et ouvrez un lien public.
  7. Si l’email est activé, vérifiez SMTP et les liens de préférence de notification.
  8. Vérifiez la zone admin licence/version pour la version courante et le statut de notification de release.

Problèmes Coolify courants

  • Les liens publics échouent quand CORS_ALLOWED_ORIGINS ne correspond pas exactement à l’origine navigateur.
  • Les liens de préférence email échouent quand NOTIFICATIONS_PUBLIC_PREFERENCES_URL pointe encore vers localhost ou un ancien domaine.
  • Gotenberg ne devrait pas recevoir de domaine public ; c’est un service PDF interne.
  • Le HTTPS géré par Coolify nécessite que le domaine frontend resolve vers le serveur Coolify.
  • Si les métadonnées de build sont vides, l’application peut toujours fonctionner, mais l’affichage de version admin peut montrer moins de détails de release.

Last reviewed: Recently