Dokploy supports multi-server deployments, allowing you to manage infrastructure across multiple remote machines from a centralized control plane.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/dokploy/dokploy/llms.txt
Use this file to discover all available pages before exploring further.
Server Types
Dokploy supports two distinct server types, each optimized for specific workloads:Deploy Server
Full-featured servers for running production applications with Traefik, Docker Swarm, and monitoring capabilities.
Build Server
Dedicated servers for building Docker images with Nixpacks, Buildpacks, and Railpack support.
Server Setup
Requirements
Before adding a server to Dokploy, ensure it meets these requirements:- SSH Access: Root or sudo user access via SSH key authentication
- Operating System: Supported Linux distributions (Ubuntu, Debian, CentOS, Fedora, Arch, Alpine, Rocky, RHEL, SLES)
- Ports: Open ports for SSH (22), HTTP (80), HTTPS (443), Docker Swarm (2377)
- Resources: Minimum 1GB RAM, 10GB disk space
Adding a Server
Validate Connection
Before setup, validate the server connection:This checks for:
- Docker installation and version
- RClone availability
- Nixpacks installation
- Buildpacks availability
- Railpack installation
- Dokploy network existence
- Docker Swarm status
- Main directory structure
Server Setup Process
Deploy Server Installation
For deploy servers, the setup script performs these operations:1. Install System Utilities
1. Install System Utilities
Installs essential packages based on OS:
- curl, wget, git, git-lfs
- jq, openssl, unzip, tar
- Distribution-specific package managers configured
2. Validate Ports
2. Validate Ports
Checks if required ports are available:
- Port 80 for HTTP traffic
- Port 443 for HTTPS traffic
3. Install RClone
3. Install RClone
Installs RClone for backup operations:
4. Install Docker
4. Install Docker
Installs Docker Engine v28.5.0 with OS-specific methods:
- Ubuntu/Debian: apt-get
- CentOS/RHEL: dnf/yum
- Arch Linux: pacman
- Alpine: apk
5. Initialize Docker Swarm
5. Initialize Docker Swarm
Sets up Docker Swarm for orchestration:Automatically detects IPv4 or IPv6 address.
6. Create Dokploy Network
6. Create Dokploy Network
Creates overlay network for services:
7. Setup Directory Structure
7. Setup Directory Structure
Creates required directories:
/etc/dokploy- Main configuration directory/etc/dokploy/traefik- Traefik config/etc/dokploy/traefik/dynamic- Dynamic config/etc/dokploy/monitoring- Monitoring database
8. Configure Traefik
8. Configure Traefik
Sets up Traefik reverse proxy:
- Creates main configuration file
- Configures HTTP/HTTPS entry points
- Sets up Let’s Encrypt SSL
- Deploys Traefik container
9. Install Build Tools
9. Install Build Tools
Installs application build systems:
- Nixpacks (v1.41.0) - Nix-based builds
- Buildpacks (v0.39.1) - Cloud Native Buildpacks
- Railpack (v0.15.4) - Ruby on Rails builds
Build Server Installation
Build servers receive a minimal installation:- Docker Engine
- Directory structure
- Build tools (Nixpacks, Buildpacks, Railpack)
Build servers do not include Traefik, Docker Swarm, or networking components since they only build images.
Server Management
Update Server Configuration
Modify server settings after creation:Query Servers
Server Removal
Security Audit
Dokploy can audit security configurations on remote servers:Audit Checks
The security audit evaluates:- Firewall (UFW)
- SSH Configuration
- User Security
- Automatic Updates
- Fail2Ban
Monitoring Setup
For cloud deployments, Dokploy automatically configures monitoring:- Collects server metrics (CPU, memory, disk, network)
- Monitors container statistics
- Sends alerts when thresholds are exceeded
- Stores metrics with configurable retention
Monitoring configuration includes refresh rates, retention policies, and alerting thresholds.
Remote Command Execution
Execute commands on remote servers via SSH:Supported Operating Systems
Dokploy’s setup script supports these Linux distributions:Debian-based
- Ubuntu (LTS)
- Debian
- Raspbian
- Linux Mint
- Pop!_OS
- Zorin OS
RHEL-based
- CentOS
- RHEL
- Rocky Linux
- AlmaLinux
- Fedora
- Amazon Linux 2
- Oracle Linux
- OpenCloud OS
Others
- Arch Linux
- Manjaro
- Alpine Linux
- SLES
- openSUSE Leap
- openSUSE Tumbleweed
Best Practices
SSH Key Management
Network Security
- Use VPNs or private networks for server communication
- Implement firewall rules to restrict access
- Enable UFW or iptables on all servers
- Use fail2ban to prevent brute force attacks
Resource Planning
- Separate build and deploy workloads
- Monitor resource usage and scale accordingly
- Use dedicated build servers for large projects
- Implement backup strategies for all servers
Troubleshooting
Setup Failures
SSH Connection Failed
SSH Connection Failed
Symptoms: Cannot connect to server during setupSolutions:
- Verify IP address and port are correct
- Check SSH service is running:
systemctl status sshd - Ensure firewall allows SSH connections
- Validate SSH key format and permissions
- Test connection manually:
ssh -i key.pem user@host
Docker Installation Failed
Docker Installation Failed
Symptoms: Docker not installed after setupSolutions:
- Check if Snap Docker exists:
snap list docker - Verify OS is supported
- Review setup logs for specific errors
- Install Docker manually and retry
- Check available disk space
Port Already in Use
Port Already in Use
Symptoms: Setup warns about ports 80/443 in useSolutions:
- Identify process using port:
ss -tulnp | grep ':80' - Stop conflicting service
- Configure Traefik to use different ports
- Use custom port configuration
Swarm Initialization Failed
Swarm Initialization Failed
Symptoms: Docker Swarm not initializedSolutions:
- Check network connectivity
- Verify server can detect its public IP
- Set ADVERTISE_ADDR manually
- Check for existing Swarm membership