Logo
Ton serveur est en ligne, securise, accessible partout. Maintenant on installe la machine a deployer des projets.

Ce qu'on a fait jusqu'ici

  • Partie 1 : Installation Ubuntu Server + IP fixe + pare-feu
  • Partie 2 : SSH securise (cles + passphrase) + Cloudflare Tunnel

Aujourd'hui on installe Docker (pour conteneuriser les apps) et Coolify (une interface web pour tout gerer sans toucher au terminal).


Pourquoi Docker ?

Docker isole chaque application dans un conteneur. Ca veut dire :

  • Pas de conflits entre projets (un projet en Python 3.8, un autre en 3.12, pas de probleme)
  • Deploiement reproductible : si ca marche sur ton PC, ca marche sur le serveur
  • Facile a supprimer : un conteneur qui pose probleme ? docker rm et c'est propre
Docker containers illustration
Docker : chaque app dans son conteneur isole

Phase 1 — Installer Docker

Connecte-toi a ton serveur en SSH et lance :

curl -fsSL https://get.docker.com | sudo bash

Ajouter ton utilisateur au groupe docker :

sudo usermod -aG docker $USER

Deconnecte-toi et reconnecte-toi pour que le changement prenne effet.

Verifier que tout marche :

docker --version
docker run hello-world

Si tu vois "Hello from Docker!" : c'est bon.

Erreur frequente : "Permission denied" apres installation. C'est parce que tu ne t'es pas reconnecte. Fais exit puis ssh a nouveau.

Phase 2 — Pourquoi Coolify ?

On pourrait deployer nos apps manuellement avec docker run ou docker-compose. Mais Coolify nous donne :

  • Une interface web pour gerer tous les projets
  • Le deploiement automatique a chaque push sur GitHub
  • La gestion des domaines et SSL automatiquement via Traefik
  • Les variables d'environnement sans toucher aux fichiers
  • Les bases de donnees (PostgreSQL, MySQL, Redis) en un clic
  • Le monitoring des logs et du statut des apps

C'est comme avoir Vercel/Railway/Heroku, mais gratuit et sur ton propre serveur.

Dashboard web interface
Coolify offre une interface web complete pour gerer tes deploiements

Phase 3 — Installer Coolify

Une seule commande :

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

L'installation prend quelques minutes. Elle installe :

  • Coolify (l'interface web)
  • Traefik (le reverse proxy qui gere les domaines et HTTPS)
  • PostgreSQL (la base de donnees de Coolify)

Une fois termine, accede a Coolify :

http://192.168.1.80:8000

Ouvrir le port 8000 dans le pare-feu

Si tu as suivi la Partie 1, on a deja ouvert le port 8000. Sinon :

sudo ufw allow 8000/tcp
sudo ufw status
Depuis l'exterieur : si tu as configure Cloudflare Tunnel dans la Partie 2, ajoute une entree dans ta config pour pointer un sous-domaine vers http://localhost:8000.

Premier setup

  1. Creer ton compte administrateur
  2. Ajouter ton serveur (localhost est detecte automatiquement)
  3. Connecter ton compte GitHub pour le deploiement automatique
Coolify dashboard setup
Le dashboard Coolify apres la premiere configuration

Phase 4 — Connecter GitHub

  1. Aller dans Settings > GitHub
  2. Cliquer sur Connect GitHub App
  3. Autoriser l'acces aux repositories que tu veux deployer
  4. De retour dans Coolify, tu verras tes repos disponibles

Phase 5 — Comprendre l'architecture

Voici comment tout s'articule :

Internet
    |
Cloudflare (DNS + Tunnel)
    |
Ton serveur (192.168.1.80)
    |
Traefik (reverse proxy, port 80/443)
    |
+--------+--------+--------+
|        |        |        |
App 1   App 2   App 3   Base de donnees
(Django) (React) (API)   (PostgreSQL)

Chaque app tourne dans son propre conteneur Docker. Traefik route le trafic vers le bon conteneur en fonction du nom de domaine.


Phase 6 — Creer une base de donnees

  1. Dans Coolify : Resources > New > Database
  2. Choisir PostgreSQL (ou MySQL, Redis, MongoDB...)
  3. Coolify genere automatiquement les credentials
  4. Note l'URL de connexion interne (genre postgresql://user:pass@db:5432/mydb)

Tu pourras utiliser cette URL comme variable d'environnement dans tes apps.


Phase 7 — Ajouter un domaine personnalise

  1. Ouvrir les settings de l'app dans Coolify
  2. Dans Domains, ajouter ton domaine (ex: app.mondomaine.com)
  3. Dans Cloudflare Tunnel, ajouter l'entree correspondante
  - hostname: app.mondomaine.com
    service: http://localhost:80
Le port 80 va vers Traefik, qui redirige vers le bon conteneur selon le hostname. Tu n'as pas besoin de connaitre le port interne de chaque app.
sudo systemctl restart cloudflared

Recapitulatif

  • Docker installe et fonctionnel
  • Coolify installe avec interface web accessible
  • GitHub connecte pour le deploiement automatique
  • Architecture complete : Cloudflare > Traefik > Conteneurs Docker
  • Bases de donnees disponibles en un clic

Dans la Partie 4 (finale), on deploie une vraie application de A a Z : du push sur GitHub jusqu'a l'app en ligne accessible sur ton domaine. Deploiement continu inclus.


Questions ? Commentaires ? Je suis en bas.

Partager :

Laisser un commentaire

Les champs marqués d'un astérisque (*) sont obligatoires !