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/kledgsur GitHub, ou un clone local ; - de préférence, un compte Resend pour l’envoi des emails.
Déployer
- 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 pushvers le dépôt Git de l’application. Avec Clever Tools :clever create --type docker kledg. - 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_URLn’est pas défini. - Copiez le fichier
deploy/clevercloud.envdu dépôt hors du dépôt, remplissez-le, puis importez-le avecclever env import < kledg.env. Ne commitez jamais le fichier rempli. - Déployez (
clever deployou un push), puis ouvrezhttps://<domaine>/setup?token=<SETUP_TOKEN>et créez le compte administrateur.
Le fichier deploy/clevercloud.env définit :
| Variable | Valeur |
|---|---|
PORT | 8080, 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_URL | Obligatoire : 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_SECRET | openssl rand -base64 32 Générer |
ADMIN_EMAIL | Le seul email autorisé à créer le compte administrateur |
SETUP_TOKEN | openssl rand -base64 24 Générer |
TRUST_PROXY_HOPS | 1 : le reverse proxy de Clever Cloud ajoute l’adresse du client à X-Forwarded-For |
KLEDG_BACKUP | off : le disque est remplacé à chaque déploiement |
RESEND_API_KEY, EMAIL_FROM, CRON_SECRET | Facultatifs : 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
- Choisir son hébergement ;
- le guide de référence : docs/self-hosting.md.