Retour à l'accueil

Dokploy : Installation de la plateforme Docker Swarm

Dokploy est une plateforme pour déployer des conteneurs Docker et des projets GitHub sur des serveurs Linux. Décrit l'installation via script : vérification des ports, initialisation Swarm, lancement Postgres/Redis/Traefik. Convient aux spécialistes middle/senior axés sur l'automatisation.

Déploiement rapide Dokploy : projets Docker et GitHub
Advertisement 728x90

## 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.

Google AdInline article slot

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 :

Google AdInline article slot
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 dnsrr pour 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 :

Google AdInline article slot
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 :80 pour le diagnostic.
  • Dans LXC/Proxmox : application automatique du mode dnsrr.
  • Échec d'initialisation de Swarm — définir ADVERTISE_ADDR manuellement ou DOCKER_SWARM_INIT_ARGS pour 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

Advertisement 728x90

Lire ensuite