Aller au contenu

Héberger Kledg sur Clever Cloud

Déployez Kledg chez Clever Cloud, hébergeur français, en application Docker avec le module PostgreSQL : variables, migrations, mises à jour et sauvegardes.

Clever Cloud est une société française qui héberge en France : un critère possible pour des données comptables. Kledg s’y déploie en application Docker, construite depuis le Dockerfile du dépôt, avec le module PostgreSQL de Clever Cloud.

Ce qu’il vous faut

  • un compte Clever Cloud, et de préférence l’outil en ligne de commande Clever Tools ;
  • votre fork ou votre copie du dépôt kledghq/kledg sur GitHub, ou un clone local ;
  • de préférence, un compte Resend pour l’envoi des emails.

Déployer

  1. Créez l’application : dans la console, Create, An application, type Docker, depuis votre dépôt GitHub (déploiement à chaque push) ou par git push vers le dépôt Git de l’application. Avec Clever Tools : clever create --type docker kledg.
  2. Créez un module PostgreSQL et liez-le à l’application (Service dependencies). Clever Cloud fournit l’adresse de la base, que Kledg utilise quand DATABASE_URL n’est pas défini.
  3. Copiez le fichier deploy/clevercloud.env du dépôt hors du dépôt, remplissez-le, puis importez-le avec clever env import < kledg.env. Ne commitez jamais le fichier rempli.
  4. Déployez (clever deploy ou un push), puis ouvrez https://<domaine>/setup?token=<SETUP_TOKEN> et créez le compte administrateur.

Le fichier deploy/clevercloud.env définit :

VariableValeur
PORT8080, le port vers lequel Clever Cloud envoie le trafic des applications Docker
CC_HEALTH_CHECK_PATH/api/health : un déploiement dont ce chemin ne répond pas est en échec
BETTER_AUTH_URLObligatoire : l’adresse publique, que clever domain affiche (domaine cleverapps.io par défaut, ou le vôtre). Clever Cloud ne la donne dans aucune variable.
BETTER_AUTH_SECRETopenssl rand -base64 32 Générer
ADMIN_EMAILLe seul email autorisé à créer le compte administrateur
SETUP_TOKENopenssl rand -base64 24 Générer
TRUST_PROXY_HOPS1 : le reverse proxy de Clever Cloud ajoute l’adresse du client à X-Forwarded-For
KLEDG_BACKUPoff : le disque est remplacé à chaque déploiement
RESEND_API_KEY, EMAIL_FROM, CRON_SECRETFacultatifs : emails et synchronisation bancaire quotidienne

Vérifiez la valeur de TRUST_PROXY_HOPS : connectez-vous, puis lisez l’adresse de l’entrée de connexion dans le journal d’audit ; ce doit être la vôtre. Derrière Cloudflare (DNS en mode proxy), ajoutez 1.

Les migrations

Sur une application Docker, les hooks de Clever Cloud s’exécutent sur la machine hôte, pas dans l’image : c’est donc le conteneur qui applique les migrations à son démarrage. Plusieurs instances qui démarrent ensemble ne se gênent pas.

Les connexions à la base

Chaque offre du module PostgreSQL limite le nombre de connexions simultanées. Gardez DATABASE_POOL_MAX (10 par défaut) multiplié par le nombre d’instances sous cette limite, avec de la marge pour les migrations.

Mettre à jour

Si l’application est liée à votre dépôt GitHub, Clever Cloud redéploie à chaque push : définissez KLEDG_DEPLOYS_FROM_GITHUB=true pour la mise à jour en deux clics de la page Mises à jour. Sinon, la page affiche les commandes : git pull depuis le dépôt de Kledg, puis git push vers le dépôt Git de l’application. Voir Mettre à jour son instance.

Les sauvegardes

Clever Cloud sauvegarde le module PostgreSQL chaque jour et garde les sauvegardes sept jours, sauf sur l’offre DEV (sans sauvegarde, pour les essais uniquement). Elles se téléchargent depuis la console. Ajoutez un pg_dump vers un stockage que vous contrôlez.

La synchronisation bancaire quotidienne

Avec CRON_SECRET défini, appelez chaque jour /api/cron/sync-banks, par exemple depuis une GitHub Action. Voir La synchronisation bancaire quotidienne.

Sans Docker

Kledg peut aussi se déployer chez Clever Cloud en application Node.js, avec quelques variables propres à Clever Cloud, mais sans la sauvegarde automatique avant les migrations. Les variables sont dans le guide de référence.

Le coût

Voir la tarification de l’hébergeur, pour l’application comme pour le module PostgreSQL.

Pour aller plus loin

Cette documentation aide à comprendre et à utiliser Kledg. Elle ne remplace pas les conseils d’un expert-comptable : en cas de doute sur votre situation, faites-vous accompagner.