## Dokploy : Déploiement de conteneurs Docker avec une plateforme open source
Dokploy est un outil open source pour le déploiement automatisé d'applications dans des conteneurs Docker et des dépôts GitHub. La plateforme utilise Docker Swarm, Traefik pour le routage, et les bases de données PostgreSQL/Redis. L'installation nécessite un serveur Linux avec au moins 2 Go de RAM et 30 Go d'espace disque, et elle vérifie la disponibilité des ports 80, 443, 3000.
Exigences système et préparation
Dokploy a été testé sur les distributions suivantes :
- Ubuntu 24.04 LTS, 23.10, 22.04 LTS, 20.04 LTS, 18.04 LTS
- Debian 12, 11, 10
- Fedora 40
- CentOS 9, 8
Le serveur doit disposer d'au moins 2 Go de RAM pour la construction des images Docker et 30 Go d'espace disque. Les ports 80 (HTTP Traefik), 443 (HTTPS Traefik) et 3000 (interface web) doivent être libres — le script d'installation échouera s'ils sont utilisés.
Préparation :
- Passer en root :
sudo -i. - Arrêter les services sur les ports 80, 443, 3000.
- S'assurer que Docker est installé ou le script installera la version 28.5.0.
Le script détecte automatiquement la version (par défaut latest, avec support pour canary/feature via DOKPLOY_VERSION), vérifie l'environnement (Linux, pas un conteneur, pas macOS), et initialise Docker Swarm.
Processus d'installation via script
La méthode principale est une commande en une ligne :
curl -sSL https://dokploy.com/install.sh | sh
Le script effectue les étapes suivantes :
- Vérifie les privilèges root et les ports libres avec
ss -tulnp. - Installe Docker s'il manque.
- Détecte les conteneurs Proxmox LXC et applique
--endpoint-mode dnsrrpour la compatibilité. - Détermine l'adresse IP du serveur (IPv4/IPv6 via ifconfig.io, icanhazip.com, ipecho.net) pour
ADVERTISE_ADDR. - Initialise Docker Swarm :
docker swarm init --advertise-addr <ip>. - Crée le réseau overlay
dokploy-network.
Fragments clés du script :
# Opredelenie versii
detect_version() {
local version="${DOKPLOY_VERSION:-latest}"
echo "$version"
}
# Check Proxmox LXC
is_proxmox_lxc() {
if [ -n "$container" ] && [ "$container" = "lxc" ]; then
return 0
fi
if grep -q "container=lxc" /proc/1/environ 2>/dev/null; then
return 0
fi
return 1
}
Après l'initialisation de Swarm, les services sont créés :
docker service create \
--name dokploy-postgres \
--network dokploy-network \
--env POSTGRES_USER=dokploy \
--env POSTGRES_DB=dokploy \
--env POSTGRES_PASSWORD=amukds4wi9001583845717ad2 \
postgres:16
De même pour Redis (redis:7) et le conteneur principal Dokploy avec montages pour /var/run/docker.sock, /etc/dokploy, et le port 3000 (mode host).
Configuration et lancement de Traefik
Traefik (v3.6.1) est lancé séparément :
docker run -d \
--name dokploy-traefik \
--restart always \
-v /etc/dokploy/traefik/traefik.yml:/etc/traefik/traefik.yml \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-p 80:80/tcp -p 443:443/tcp -p 443:443/udp \
traefik:v3.6.1
Il se connecte à dokploy-network. Après une attente de 15 secondes, l'interface est disponible à : http://<ip>:3000.
Problèmes possibles :
- Erreur sur ports occupés — utiliser
ss -tulnp | grep :80pour le diagnostic. - Dans LXC/Proxmox : application automatique du mode dnsrr.
- Échec d'initialisation de Swarm — définir
ADVERTISE_ADDRmanuellement ouDOCKER_SWARM_INIT_ARGSpour des pools personnalisés (p. ex.,--default-addr-pool 172.20.0.0/16).
Fonctionnalités après installation
L'interface web sur le port 3000 permet de déployer des projets depuis GitHub, de gérer les conteneurs et de configurer le routage Traefik. La plateforme est axée sur les déploiements auto-hébergés sans dépendances externes et s'intègre avec Docker Swarm pour l'orchestration.
Avantages pour les DevOps middle/senior :
- Gestion automatique des IP (IPv4/IPv6).
- Support des arguments Swarm personnalisés.
- Ressources minimales comparées aux solutions PaaS complètes.
- Alternative open source à Coolify avec un focus sur Docker.
Points clés
- Exigences minimales : 2 Go de RAM, 30 Go de disque, Linux (Ubuntu/Debian/Fedora/CentOS).
- Ports requis : 80, 443, 3000 — le script bloque l'installation s'ils sont occupés.
- Docker Swarm : Auto-initialisation avec advertise-addr, support LXC dnsrr.
- Services : Postgres:16, Redis:7, Traefik:v3.6.1, Dokploy:latest/canary/feature.
- Accès : http://<server-ip>:3000 après 15 secondes.
— Editorial Team
Aucun commentaire pour le moment.