Aller au contenu principal
Automatisation 14 février 2026 11 min de lecture

Tutoriel : Déployer une application avec Docker et Coolify pour PME

Apprenez à déployer vos applications avec Coolify et Docker. Guide pratique pour PME françaises cherchant à réduire leurs coûts cloud.

M
Mohamed Boukri

Introduction : Pourquoi Coolify pour votre PME ?

Les coûts cloud explosent pour les PME françaises. Entre AWS, Azure et Vercel, les factures mensuelles dépassent rapidement les 500-1000€ pour des applications modestes. Sans parler de la complexité des interfaces et des surprises de facturation.

Coolify change la donne. C’est une plateforme open-source qui transforme n’importe quel serveur VPS en alternative à Heroku ou Vercel. On garde le contrôle total sur l’infrastructure, les données restent en France, et les coûts sont prévisibles : le prix du serveur, point final.

Les avantages du self-hosting sont clairs :

  • Contrôle total : vous gérez vos données et votre infrastructure
  • Coûts fixes : un VPS OVH à 20€/mois vs 200€+ sur les clouds managés
  • Souveraineté : vos données restent hébergées où vous le décidez
  • Simplicité : interface visuelle pour gérer Docker sans ligne de commande

Ce tutoriel s’adresse aux CTOs de PME, développeurs et dirigeants techniques qui veulent reprendre la main sur leur infrastructure. On va déployer une application complète de A à Z, avec base de données et SSL automatique.

Prérequis techniques

Avant de commencer, voici ce qu’il vous faut :

Serveur VPS : un serveur chez OVH, Scaleway ou Hetzner avec minimum 2 Go de RAM et Ubuntu 22.04. Comptez 10-20€/mois selon les ressources.

Accès et domaine : accès SSH root au serveur et un nom de domaine pointé vers l’IP du serveur (enregistrements A et AAAA configurés).

Compétences de base : savoir se connecter en SSH et exécuter des commandes Linux. Pas besoin d’être expert Docker, Coolify s’occupe de tout.

Application à déployer : une application Dockerisée ou un repository Git. On utilisera un exemple Node.js dans ce tutoriel.

Installation de Coolify sur votre serveur

Connectez-vous à votre serveur en SSH :

Terminal window
ssh root@votre-serveur.com

Mettez à jour le système :

Terminal window
apt update && apt upgrade -y

Coolify fournit un script d’installation qui configure Docker, Docker Compose et tous les composants nécessaires en une seule commande :

Terminal window
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash

Le script prend 2-3 minutes. Il installe :

  • Docker Engine 24.x
  • Docker Compose v2
  • Coolify v4 et ses dépendances
  • Traefik comme reverse proxy
  • PostgreSQL pour la base de données interne
L’installation nécessite au minimum 2 Go de RAM. Sur des serveurs plus petits, ajoutez 2 Go de swap.

Une fois terminé, accédez à l’interface web via http://votre-ip:8000. Créez votre compte administrateur avec un mot de passe fort.

La première étape dans l’interface : configurez votre domaine principal dans Settings > Configuration. Coolify génère automatiquement un certificat SSL Let’s Encrypt. Après quelques minutes, accédez à Coolify via https://coolify.votre-domaine.com.

Activez l’authentification à deux facteurs dans les paramètres de sécurité dès la première connexion.

Configuration de votre premier projet

Dans le dashboard Coolify, cliquez sur New Project. Donnez-lui un nom explicite comme “app-production”.

Connectez votre dépôt Git :

  1. Allez dans Sources > Add Source
  2. Choisissez GitHub, GitLab ou Gitea
  3. Autorisez Coolify à accéder à vos repositories
  4. Sélectionnez le dépôt de votre application

Pour les variables d’environnement sensibles (clés API, secrets), utilisez la section Environment Variables du projet. Ces valeurs sont chiffrées et injectées au runtime :

Terminal window
DATABASE_URL=postgresql://user:password@postgres:5432/myapp
JWT_SECRET=votre-secret-super-securise
NODE_ENV=production

Configurez votre domaine dans la section Domains. Ajoutez app.votre-domaine.com. Coolify configure automatiquement :

  • Le certificat SSL Let’s Encrypt
  • Le renouvellement automatique tous les 90 jours
  • La redirection HTTP vers HTTPS

Choisissez le type de déploiement. Deux options :

  • Dockerfile : Coolify détecte et build votre Dockerfile
  • docker-compose.yml : pour les applications multi-services

Pour une application simple, le Dockerfile suffit. Pour une stack complète (app + base de données + Redis), utilisez docker-compose.

Déploiement d’une application Node.js avec Docker

Voici un Dockerfile optimisé pour production avec build multi-stage :

# Stage 1: Build
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
# Stage 2: Production
FROM node:20-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/package.json ./
EXPOSE 3000
CMD ["node", "dist/index.js"]

Ce Dockerfile réduit la taille de l’image finale de 1.2 Go à 150 Mo en excluant les dépendances de développement.

Pour une stack complète, créez un docker-compose.yml :

version: '3.8'
services:
app:
build: .
ports:
- "3000:3000"
environment:
- REDIS_URL=redis://redis:6379
- NODE_ENV=production
depends_on:
- redis
restart: unless-stopped
redis:
image: redis:7-alpine
volumes:
- redis_data:/data
restart: unless-stopped
volumes:
redis_data:
Key Takeaway
Le build multi-stage réduit drastiquement la taille des images Docker et améliore la sécurité en production.

Dans Coolify, retournez à votre projet et cliquez sur Deploy. Coolify :

  1. Clone votre repository
  2. Détecte le Dockerfile ou docker-compose.yml
  3. Build l’image Docker
  4. Lance les conteneurs
  5. Configure le reverse proxy Traefik

Surveillez les logs en temps réel dans l’onglet Logs. Le premier déploiement prend 3-5 minutes selon la taille de votre application.

Une fois terminé, testez votre application sur https://app.votre-domaine.com. Vérifiez que le SSL fonctionne et que l’application répond correctement.

Automatisation et déploiement continu

Configurez les webhooks Git pour déclencher un déploiement automatique à chaque push sur la branche main. Dans votre projet Coolify :

  1. Copiez l’URL du webhook dans Settings > Webhooks
  2. Ajoutez-la dans les paramètres de votre repository GitHub/GitLab
  3. Choisissez l’événement “Push”

À chaque commit sur main, Coolify rebuild et redéploie automatiquement. Le déploiement se fait sans downtime grâce au rolling update.

Les health checks surveillent la santé de votre application. Configurez-les dans Settings > Health Checks :

path: /health
interval: 30s
timeout: 5s
retries: 3

Si votre application expose une route /health, Coolify vérifie toutes les 30 secondes qu’elle répond. En cas d’échec après 3 tentatives, Coolify redémarre automatiquement le conteneur.

Implémentez toujours une route /health qui vérifie la connexion à la base de données et aux services critiques.

En cas d’échec de déploiement, Coolify conserve la version précédente active. Vous pouvez rollback manuellement dans l’onglet Deployments en un clic.

Configurez les notifications pour être alerté :

  • Email pour les échecs de déploiement
  • Discord ou Slack pour tous les événements
  • Webhook personnalisé pour intégration avec vos outils

Gestion des bases de données et services annexes

Coolify simplifie le déploiement de bases de données. Dans Services > Add Service, choisissez :

PostgreSQL 16 pour une base relationnelle :

version: 16-alpine
volumes:
- postgres_data:/var/lib/postgresql/data
environment:
POSTGRES_DB: myapp
POSTGRES_USER: appuser
POSTGRES_PASSWORD: ${DB_PASSWORD}

Redis 7 pour le cache et les sessions :

version: 7-alpine
volumes:
- redis_data:/data
command: redis-server --appendonly yes

Coolify génère automatiquement les credentials et les injecte dans vos variables d’environnement. L’URL de connexion devient disponible via ${DATABASE_URL}.

Configurez les backups automatiques dans Database > Backups :

  • Fréquence : quotidienne à 3h du matin
  • Rétention : 7 jours
  • Destination : stockage local ou S3-compatible

Les services communiquent via un réseau Docker privé. Votre application accède à PostgreSQL via postgres:5432 et à Redis via redis:6379. Aucune exposition publique, sécurité maximale.

Ne jamais exposer PostgreSQL ou Redis directement sur Internet. Utilisez toujours le réseau Docker interne.

Conclusion et prochaines étapes

Vous venez de déployer une application complète en production avec Coolify. De zéro à une stack fonctionnelle avec SSL, base de données et déploiement continu en moins d’une heure.

Les économies sont significatives. Comparaison mensuelle :

SolutionCoût mensuelComplexité
Vercel Pro + Planetscale200€+Moyenne
AWS (EC2 + RDS + Load Balancer)300€+Élevée
Coolify (VPS Hetzner 8 Go)25€Faible

Soit une économie de 175-275€ par mois, 2100-3300€ par an. Pour une PME, c’est un budget marketing ou un développeur junior à temps partiel.

Prochaines étapes pour aller plus loin :

  • Scaling horizontal avec plusieurs instances de votre application
  • Monitoring avancé avec Grafana et Prometheus
  • Mise en place de tests automatisés avant déploiement
  • Configuration de plusieurs environnements (staging, production)

La documentation Coolify couvre ces sujets en détail. La communauté Discord est active et réactive pour le support.

Besoin d’aide pour migrer votre infrastructure ou optimiser vos déploiements ? Chez Kodixar, j’accompagne les PME françaises dans leur transition vers le self-hosting et l’optimisation de leurs coûts cloud.

Dans un prochain article, on verra comment mettre en place un monitoring complet avec Grafana, Prometheus et Loki pour surveiller vos applications en temps réel.

Disponible pour de nouveaux projets

Besoin d'aide sur ce sujet ?

Contactez-nous pour discuter de votre projet et voir comment nous pouvons vous aider.

Devis gratuit
Sans engagement
Réponse sous 24h