Installation
Get Dokploy up and running on your server within minutes with this easy-to-follow installation guide.
Follow these steps in order to set up Dokploy locally and deploy it to your server, effectively managing Docker containers and applications:
You need to follow this steps in the same order:
Virtual Private Server (VPS)
There are multiple VPS providers to choose from:
We have tested on the following Linux Distros:
- Ubuntu 24.04 LTS
- Ubuntu 23.10
- Ubuntu 22.04 LTS
- Ubuntu 20.04 LTS
- Ubuntu 18.04 LTS
- Debian 12
- Debian 11
- Debian 10
- Fedora 40
- Centos 9
- Centos 8
Providers
- Hostinger Get 20% Discount using this referral link: Referral Link
- AmericanCloud Receive 20$ credits for free: Referral Link
- Teramont Get 15% discount for free: Referral Link
- Hetzner Get 20€ credits for free with this referral link: Referral Link
- DigitalOcean Get 200$ credits for free with this referral link: Referral Link
- Vultr Referral Link: Referral Link
- Linode
- Scaleway
- Google Cloud
- AWS
Requirements
To ensure a smooth experience with Dokploy, your server should have at least 2GB of RAM and 30GB of disk space. This specification helps to handle the resources consumed by Docker during builds and prevents system freezes.
Suggestion: For cost efficiency with reliable service, we recommend Hetzner as the best value-for-money VPS provider.
Port Requirements
Before installing Dokploy, ensure the following ports are available on your server:
- Port 80: HTTP traffic (used by Traefik)
- Port 443: HTTPS traffic (used by Traefik)
- Port 3000: Dokploy web interface
Important: The installation will fail if any of these ports are already in use. Make sure to stop any services using these ports before running the installation script.
Docker
Dokploy utilizes Docker, so it is essential to have Docker installed on your server. If Docker is not already installed, Dokploy's installation script will install it automatically. Use the following command to install Dokploy:
Dokploy Cloud: Use Dokploy directly without worrying about maintenance or updates. Enjoy a hassle-free experience with Dokploy Cloud. Sign up
curl -sSL https://dokploy.com/install.sh | shSee Manual Installation if you want to customize your Dokploy installation.
Advanced Installation Options
The installation script automatically detects and installs the latest stable version from GitHub. However, you can customize the installation using environment variables:
Install Specific Versions
Install Canary Version (Development):
export DOKPLOY_VERSION=canary && curl -sSL https://dokploy.com/install.sh | shInstall Latest Stable:
export DOKPLOY_VERSION=latest && curl -sSL https://dokploy.com/install.sh | shInstall a Specific Version:
Every Dokploy release includes its own install.sh as a release asset, which installs exactly that version with the setup it expects. Replace the version tag in the URL with the one you want:
curl -sL https://github.com/Dokploy/dokploy/releases/download/v0.26.6/install.sh | shDon't use DOKPLOY_VERSION to install a specific version — the main script at dokploy.com/install.sh always targets the latest release, so its setup may not be compatible with older versions.
Custom Network Configuration
If you need to customize the Docker Swarm network configuration (useful to avoid CIDR conflicts with cloud provider VPCs):
export DOCKER_SWARM_INIT_ARGS="--default-addr-pool 172.20.0.0/16 --default-addr-pool-mask-length 24"
curl -sSL https://dokploy.com/install.sh | shManual Advertise Address
If the script cannot detect your server's IP automatically, or you want the Swarm to use a specific interface (e.g. a VPN/WireGuard IP), specify it manually:
curl -sSL https://dokploy.com/install.sh | sudo ADVERTISE_ADDR=192.168.1.100 shIf you run the installer with sudo, don't rely on export ADVERTISE_ADDR=... from your user shell — sudo resets the environment, so the variable never reaches the script and it falls back to auto-detection. Pass the variable inline as shown above, or use sudo -E sh to preserve your environment. The same applies to DOKPLOY_VERSION, DOCKER_SWARM_INIT_ARGS, and ENDPOINT_MODE.
Kernels Without IPVS Support
Docker Swarm's default service discovery requires IPVS support in the kernel. Some minimal or appliance-style distributions (e.g. ZimaOS and other Buildroot-based images) ship kernels without it. On those systems, install with DNSRR endpoint mode:
curl -sSL https://dokploy.com/install.sh | sudo ENDPOINT_MODE=dnsrr shSee Services Can't Reach Each Other (Missing IPVS Kernel Modules) for how to detect this situation and its trade-offs.
Proxmox LXC Support
The installation script automatically detects Proxmox LXC containers and applies the necessary configurations (--endpoint-mode dnsrr) for compatibility.
Updating Dokploy
To update your Dokploy installation to the latest version:
curl -sSL https://dokploy.com/install.sh | sh -s updateUpdate to Specific Version:
Use the install.sh from that version's GitHub release:
curl -sL https://github.com/Dokploy/dokploy/releases/download/v0.26.6/install.sh | sh -s updateCompleting the Setup
After running the installation script, Dokploy and its dependencies will be set up on your server. Here's how to finalize the setup and start using Dokploy:
Accessing Dokploy
Open your web browser and navigate to http://your-ip-from-your-vps:3000. You will be directed to the initial setup page where you can configure the administrative account for Dokploy.
Important: Ensure that your server's firewall allows traffic on port 3000 to access the Dokploy web interface.
Initial Configuration
- Create an Admin Account: Fill in the necessary details to set up your administrator account. This account will be the admin account for Dokploy.
Secure Your Installation
After setting up your admin account, it's crucial to secure your Dokploy installation by enabling HTTPS.
To configure a domain with SSL/TLS certificates for your Dokploy panel, please refer to the Domains section where you'll find detailed instructions for different SSL configurations including Let's Encrypt, Cloudflare, and custom certificates.
Disable access via ip:port (Optional but Recommended)
To enhance security, it's advisable to restrict access to Dokploy via the server's IP address and port.
Important: Before disabling IP:port access, make sure you have configured a domain with HTTPS working properly. Otherwise, you will lose access to your Dokploy installation. See the Domains section to set this up first.
Once you have verified that your domain is working correctly, you can disable IP:port access by running this command on the server:
docker service update --publish-rm "published=3000,target=3000,mode=host" dokployTo further secure your installation, consider reading the Security recommendations section.