Before you start
- A DigitalOcean account
- Kule, on macOS 14 or later
- Optional: a domain. It doesn’t need to be on Cloudflare.
1Create the Droplet
In the DigitalOcean control panel, click Create at the top, then Droplet in the menu that opens. For the region, pick a data center close to you or your visitors. For the image, choose the current LTS release of Ubuntu from the OS tab. For the size, a plan with at least 2 GB of memory and 30 GB of disk is enough; that is the minimum Dokploy itself recommends.
The Choose Authentication Method section has two options: SSH Key or Password. If you choose Password, you set the password yourself; you log in to the Droplet as the root user with it. Finally, click Create Droplet.
When the Droplet is ready, its IP address appears in the control panel, on its row in the Droplet list. These are the two things you need for Kule: the IP address and the root password.
2Add it to Kule
In Kule, open Sunucu ekle (Add server) from the left menu. Type the IP address, leave the user as root, enter the root password and click Bağlan (Connect). For example, 203.0.113.24.
On the first connection, Kule shows the server’s fingerprint; once you confirm it, it is pinned. Kule then generates an SSH key just for this server, adds it to the server and stores it in the Keychain. From then on, it always connects with this key.
3Preparation
Kule first looks at the server: the operating system, CPU, memory, disk, whether ports 80, 443 and 3000 are free, and access to Docker Hub and GitHub. If something is missing, it tells you why and stops there.
Then it sets up the protections: a firewall, fail2ban, automatic security updates, swap if needed, the time zone and key-only SSH login. All of them are on by default; you can turn off any you don’t want.
apt-get install -y -q ufw fail2ban unattended-upgrades ufw allow 22/tcp && ufw allow 80/tcp && ufw allow 443/tcp && ufw --force enable systemctl enable --now fail2ban fallocate -l 2G /swapfile && mkswap /swapfile && swapon /swapfile
Before password login is turned off, Kule verifies that it can log in with the key; after it is turned off, the server’s setting is checked again.
4Installing Dokploy
Next, it installs Docker, Docker Swarm and runs Dokploy’s official install script. You see every line live.
$ curl -fsSL https://dokploy.com/install.sh -o /tmp/dokploy-install.sh Installing Docker… Starting Docker Swarm… Pulling Dokploy services… Bringing up the panel… ✓ http://203.0.113.24:3000 is responding Creating admin account and API key… ✓ Key saved to Keychain · panel connected
Once the panel is ready, Kule creates the admin account and the API key without opening a browser, and stores both in the Keychain. You can see the admin password in the last step of the setup. If the connection drops halfway, the setup resumes from the step where it stopped. Details are in the Dokploy guide.