Pourquoi déployer Easypanel sur votre VPS
Easypanel se positionne comme une alternative moderne et visuelle à CapRover ou Dokku. Il s'appuie sur Docker et sur Nixpacks pour construire automatiquement vos applications depuis un dépôt Git, sans que vous ayez à écrire de Dockerfile. Son interface, plus récente et plus ergonomique que la plupart des panneaux open-source, permet de gérer applications, bases de données, certificats et domaines en quelques clics. Easypanel intègre nativement Traefik comme reverse proxy : chaque application déployée obtient automatiquement son certificat Let's Encrypt et son routage. C'est un excellent compromis entre la simplicité d'un PaaS commercial et le contrôle d'un serveur que vous possédez, particulièrement adapté aux agences qui déploient régulièrement des projets clients.
Les bénéfices concrets d'Easypanel
- Builds automatiques via Nixpacks : déployez Node, Python, PHP ou Go sans écrire de Dockerfile.
- Interface moderne et intuitive pour gérer apps, domaines et bases de données.
- Traefik intégré : reverse proxy et SSL Let's Encrypt configurés automatiquement.
- Bases de données en un clic : PostgreSQL, MySQL, MongoDB, Redis prêtes à l'emploi.
- Déploiement depuis GitHub avec rebuild automatique à chaque push.
- Templates d'applications populaires (WordPress, n8n, Ghost…) déployables instantanément.
- Isolation par projet : chaque client ou application dans son propre réseau Docker.
Prérequis chiffrés pour Easypanel
Easypanel embarque Traefik et un builder Nixpacks, ce qui demande un peu plus de mémoire qu'un Portainer.
RAM : minimum 1 Go pour une installation sans build actif, 2 Go recommandés pour un usage courant. Dès que vous hébergez plusieurs applications avec leurs bases de données, visez 4 Go : les builds Nixpacks consomment temporairement beaucoup de RAM, et un serveur à 1 Go risque de tuer le processus de compilation en cours de route.
CPU : 1 vCPU suffit au démarrage, 2 vCPU recommandés dès que vous lancez des builds fréquents ou des bases de données gourmandes.
Disque : 30 Go de SSD minimum. Prévoyez davantage si vous hébergez des bases volumineuses ou des images Docker lourdes (Node, Java).
Système : Ubuntu 22.04 LTS ou Ubuntu 24.04 LTS propre, en accès root. Debian 12 fonctionne également. Docker est installé automatiquement par le script Easypanel — inutile de le préinstaller.
Réseau / DNS : configurez un enregistrement A pour le domaine du panneau (panel.mondomaine.com) pointant vers l'IP de votre VPS. Un enregistrement wildcard *.mondomaine.com est vivement recommandé pour éviter d'ajouter manuellement chaque sous-domaine d'application. Les ports 80, 443 et 3000 doivent être ouverts dans votre pare-feu pour l'installation initiale (le port 3000 peut ensuite être fermé une fois le domaine du panneau configuré).
Installer Easypanel et déployer une application
Lancer l'installation automatisée
Sur un Ubuntu propre, exécutez le script officiel en root :
curl -sSL https://get.easypanel.io | shLe script installe Docker (s'il est absent), Traefik et Easypanel en quelques minutes. À la fin, il affiche l'URL d'accès au panneau :
http://IP_DU_VPS:3000. Vérifiez que Docker tourne bien avecdocker psavant de passer à l'étape suivante.Créer le compte administrateur
Ouvrez
http://IP_DU_VPS:3000dans votre navigateur. Créez votre compte admin avec une adresse e-mail et un mot de passe fort (au moins 16 caractères). Rendez-vous ensuite dans Settings → General et renseignez le domaine du panneau (panel.mondomaine.com) : Easypanel va immédiatement demander un certificat Let's Encrypt via Traefik. Une fois le certificat obtenu, le panneau est accessible en HTTPS et le port 3000 peut être fermé dans votre pare-feu.Créer un projet et une application
Dans l'interface, cliquez sur New Project : un projet regroupe vos services (app + base de données + cache) dans un réseau Docker isolé. À l'intérieur du projet, cliquez sur Create Service → App. Indiquez le dépôt GitHub (accès OAuth ou token), la branche de production et le répertoire racine si nécessaire. Easypanel détecte automatiquement la stack via Nixpacks — Node, Python, PHP, Ruby, Go ou Dockerfile si présent.
Ajouter une base de données et des variables d'environnement
Dans le même projet, cliquez sur Create Service → Database et choisissez PostgreSQL, MySQL, MongoDB ou Redis. Easypanel génère un nom d'hôte interne (
postgrespar défaut), un utilisateur et un mot de passe aléatoires. Copiez la chaîne de connexion proposée, puis injectez-la dans votre application via l'onglet Environment de votre service App. Les services d'un même projet communiquent via leur nom de service sur le réseau Docker interne — pas besoin d'exposer la base sur Internet.Configurer le domaine et déployer
Dans l'onglet Domains de l'application, ajoutez
mon-app.mondomaine.com: Easypanel configure Traefik et obtient le certificat SSL automatiquement. Cliquez sur Deploy : Nixpacks build l'image et met l'application en ligne. Consultez les logs de build en temps réel depuis l'onglet Deployments pour suivre la progression et détecter d'éventuelles erreurs.
Configuration post-installation : Traefik et TLS avancés
Easypanel expose Traefik via deux entrées : le tableau de bord Traefik (désactivé par défaut pour des raisons de sécurité) et l'API de routage interne que le panneau pilote automatiquement. Vous n'avez normalement pas à toucher à la configuration Traefik directement.
TLS automatique. Pour chaque domaine ajouté dans l'onglet Domains d'un service, Easypanel configure un résolveur ACME Let's Encrypt (HTTP-01 sur le port 80). Le certificat est renouvelé automatiquement avant expiration. Si votre domaine est derrière Cloudflare, assurez-vous que le mode SSL/TLS est réglé sur Full (strict) — un mode « Flexible » provoquerait une boucle de redirection infinie puisque Traefik redirige déjà HTTP vers HTTPS.
Configurations avancées. Via l'onglet Advanced de chaque service, vous pouvez :
- injecter des labels Traefik personnalisés (rate-limiting, middlewares d'authentification) ;
- monter des volumes Docker persistants (utile pour les données d'une application qui n'utilise pas de base de données dédiée) ;
- définir un healthcheck Docker pour que Traefik n'envoie le trafic que sur les réplicas sains.
Port interne. Easypanel détecte le port exposé via Nixpacks ou le EXPOSE du Dockerfile. Si votre application écoute sur un port non standard, déclarez-le explicitement dans le champ Port du service pour que Traefik sache où router les requêtes.
Mises à jour et sauvegardes Easypanel
Mettre à jour Easypanel. Le panneau se met à jour via l'interface : Settings → General → Update. En ligne de commande, relancez simplement le script d'installation — il détecte l'installation existante et met à jour les conteneurs sans reconfigurer votre environnement :
curl -sSL https://get.easypanel.io | shSauvegarder les volumes Docker. Easypanel stocke ses données (configuration, certificats, état de Traefik) dans des volumes Docker. Pour sauvegarder l'ensemble de l'état du panneau :
# Lister les volumes Easypanel
docker volume ls | grep easypanel
# Sauvegarder un volume dans un tar
docker run --rm -v easypanel_data:/data -v $(pwd):/backup \
alpine tar czf /backup/easypanel-backup-$(date +%Y%m%d).tar.gz /dataSauvegardes des bases de données applicatives. Easypanel propose depuis 2023 une fonctionnalité de sauvegarde planifiée pour PostgreSQL, MySQL/MariaDB et MongoDB, avec export vers un bucket S3 compatible. Configurez-la depuis l'onglet Backups de chaque service de base de données : choisissez la fréquence (horaire, quotidienne, hebdomadaire) et les informations d'accès à votre bucket S3 ou Backblaze B2.
Restauration. Pour restaurer un volume Docker sauvegardé :
docker run --rm -v easypanel_data:/data -v $(pwd):/backup \
alpine tar xzf /backup/easypanel-backup-20261001.tar.gz -C /Dépannage : les erreurs les plus fréquentes
Port 80 ou 443 déjà occupé. Si Traefik ne démarre pas au premier lancement, vérifiez qu'aucun autre service n'écoute sur ces ports : ss -tlnp | grep -E ':(80|443)'. Un nginx ou Apache préinstallé sur le VPS bloque le démarrage. Arrêtez le service concurrent (systemctl stop nginx) puis relancez docker compose up -d dans le répertoire Easypanel.
Docker non installé ou version insuffisante. Le script d'installation gère ce cas, mais si vous l'exécutez sur un système qui a déjà Docker en version ancienne, vous pouvez obtenir des erreurs de compatibilité. Vérifiez la version : docker --version (Docker 24+ recommandé). Si nécessaire, désinstallez l'ancienne version et relancez le script.
DNS non propagé — certificat SSL introuvable. Si Let's Encrypt ne peut pas vérifier le domaine (enregistrement DNS pas encore propagé, ou TTL long), Traefik affichera une erreur de certificat. Vérifiez la propagation depuis votre terminal : dig +short panel.mondomaine.com doit retourner l'IP de votre VPS. La propagation DNS peut prendre quelques minutes à plusieurs heures selon le registrar et le TTL.
Erreur de certificat après changement d'IP. Si vous migrez votre VPS vers une nouvelle IP sans mettre à jour le DNS, le challenge ACME échoue. Mettez à jour votre enregistrement A, attendez la propagation, puis forcez le renouvellement du certificat depuis Settings → Certificates → Renew.
Build Nixpacks échoue en manque de mémoire. Sur un VPS à 1 Go de RAM, les builds Node.js ou les images multi-stage peuvent échouer silencieusement. Ajoutez du swap pour absorber les pics : fallocate -l 2G /swapfile && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile. Rendez le swap persistant en ajoutant /swapfile none swap sw 0 0 dans /etc/fstab.
Easypanel, Coolify ou Dokploy : lequel choisir ?
Faites défiler le tableau
| Critère | Easypanel | Coolify | Dokploy |
|---|---|---|---|
| Licence | Propriétaire (plan gratuit généreux) | Open source (Apache 2.0) | Open source (MIT) |
| RAM minimum recommandée | 2 Go | 2 Go | 1 Go |
| Base de données interne | SQLite (intégrée) | SQLite / PostgreSQL | PostgreSQL (requis) |
| Buildpacks | Nixpacks + Dockerfile + image Docker | Nixpacks + Dockerfile + Heroku | Nixpacks + Dockerfile + image Docker |
| Templates d'apps | 100+ (WordPress, n8n, Ghost, Plausible…) | 80+ (Appwrite, Supabase, n8n…) | 50+ (WordPress, n8n, Directus…) |
| Multi-serveur | Oui (bêta, workers Swarm) | Oui (stable, Swarm + SSH) | Oui (stable, multi-nœuds) |
| Plan gratuit / self-hosted | Self-hosted gratuit, plan cloud payant | 100 % self-hosted gratuit | 100 % self-hosted gratuit |
Activez le déploiement automatique en connectant un webhook GitHub : chaque push sur votre branche de production déclenche un rebuild Nixpacks sans intervention. Pour les projets clients, créez un Project distinct par client afin d'isoler les réseaux et les bases de données. Sur un VPS à mémoire limitée, surveillez la RAM pendant les builds Nixpacks et ajoutez du swap : les compilations Node ou les images lourdes peuvent saturer un petit serveur et faire échouer le déploiement. Pour la sécurité du panneau lui-même, fermez le port 3000 après avoir configuré votre domaine et envisagez d'ajouter un middleware d'authentification Traefik devant les services internes sensibles.