Dokploy is a lightweight self‑hosted deployment panel. It lets you deploy apps using Docker without heavy CI/CD setups. If you want full control and low cost, running Dokploy on a VPS is a great move. It offers some great feature for example - instant testing domain via Traefik which makes testing our deployments much easier, building an optimized docker container from scratch to give you best performance possible.
This guide walks you through installing Dokploy on an Ubuntu VPS, with special notes for Oracle Cloud, including firewall and port issues.
No fluff. Just clean steps.
Also Read: How to Get a Free 24GB RAM VPS on Oracle Cloud (2026 Guide) | Always Free Tier Setup
What You’ll Need
- A VPS (Ubuntu 22.04 or 24.04 recommended)
- Root or sudo access
- A public IP address
- Basic terminal knowledge
Oracle Cloud Free Tier works perfectly.
Step 1: Connect to Your VPS
Let’s start by connecting to your VPS via ssh or any method that can give you access to the root. To access your VPS via ssh you would require ssh key downloaded at the time of VPS instance creation if you used oracle. if you are using AWS or Google Cloud Platform there are built in browser terminal that you can use to access you VPS.
ssh -i <YOUR_SSH_KEY> ubuntu@YOUR_PUBLIC_SERVER_IP
Update the system first:
Now we need to upgrade our system with latest dependencies available. To do so just run the command give below.
sudo apt update && sudo apt upgrade -y
Step 2: Open Ports on Oracle Cloud Dashboard
Oracle Cloud is notorious for its strict external firewall (Security Lists). Even if you open ports on your server, Oracle will block them at the network level unless you do this first:
- Log in to your Oracle Cloud Console.
- Go to Instances and click on your instance.
- In details tab scroll down to Instance details and click Virtual cloud network name.
- Now in VCN tab go to Security tab and below in security list select the default security list available.
- Again in that security list go to Security Rules tab and click on Add Ingress Rules
- Now add Ingress Rules for the following ports:
- Port 80: (HTTP) - Source:
0.0.0.0/0 - Port 443: (HTTPS) - Source:
0.0.0.0/0 - Port 3000: (Dokploy Dashboard) - Source:
0.0.0.0/0 - Port 22: (SSH) - Usually open by default.

Port 22 is required for ssh, Port 443 and Port 80 is required for custom domains to work, and Port 3000 is required to access Dokploy.
Step 3: Clean the Local Firewall (The "Oracle Trap")
By default, Oracle Ubuntu images use iptables rules that block almost everything, and ufw is often not installed. We need to clear these and set up a fresh firewall using iptables and ufw.
Connect to your VPS via SSH and run:
# Update the system first sudo apt update && sudo apt upgrade -y # Flush existing iptables rules to prevent conflicts sudo iptables -F sudo iptables -X sudo iptables -t nat -F sudo iptables -t nat -X sudo iptables -t mangle -F sudo iptables -t mangle -X sudo iptables -P INPUT ACCEPT sudo iptables -P FORWARD ACCEPT sudo iptables -P OUTPUT ACCEPT # Make these changes persistent sudo apt install iptables-persistent -y sudo netfilter-persistent save
Step 4: Install and Configure UFW
We also need to need to install ufw so that we can save our firewalls.
# Install UFW sudo apt install ufw -y # Allow essential ports sudo ufw allow 22/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw allow 3000/tcp # Enable the firewall sudo ufw enable
Note: Type y when asked if you want to proceed. Since we allowed port 22, you won't lose your SSH connection.
Step 5: Install Dokploy
Now for the easy part. Dokploy provides a "magic" one-line script that installs Docker, sets up Swarm mode, and pulls the Dokploy images.
Run this command:
curl -sSL https://dokploy.com/install.sh | sh
The installation usually takes 2–5 minutes. Once finished, you’ll see a success message.
Step 6: Initial Dashboard Setup
Now just wait about 30 seconds for the containers to start up, then open browser and go to http://YOUR_SERVER_IP:3000 You will see Dokploy UI which will ask you to setup your admin account. Create your admin account by entering an email and password. Now boom, you are ready to go.
http://YOUR_SERVER_IP:3000
- Create Admin: You’ll be prompted to create your first admin account.
- Server Domain: Inside the dashboard, go to Settings and add your domain name (e.g.,
panel.yourdomain.com). - SSL: Dokploy handles Let's Encrypt certificates automatically. Just toggle the HTTPS switch.
Common Troubleshooting
- Can't access port 3000? You should double-check your Oracle Cloud Ingress rules. 90% of the time, the issue is there.
- Docker errors? If the script fails, please check if Docker engine is active or not, try running
sudo systemctl status dockerto ensure the Docker engine is active.
Final Thoughts
You now have a fully functional deployment platform. You can connect your GitHub account, set up databases (PostgreSQL, MongoDB, etc.), and deploy your apps with zero downtime.
Running it on a VPS like Oracle Cloud gives you:
- Full control
- Zero vendor lock‑in
- Free or very low cost
Once installed, deploying apps becomes effortless.
Happy shipping 🚀