Before you start
- A VPS: an IP address and root access (a password or an SSH key)
- Kule, on macOS 14 or later
- Optional: a domain. It doesn’t need to be on Cloudflare.
1Choose the server
When you create a new server in your provider’s panel, pay attention to the following:
- Operating system: the current LTS release of Ubuntu. Kule installs on any Ubuntu and Debian release that Docker’s package repository covers.
- CPU: x86_64 or arm64.
- Size: at least 2 GB of memory and 30 GB of disk. That is the minimum Dokploy itself recommends.
- An empty server: nothing else should be using ports 80, 443 and 3000. Choose the plain operating system instead of images that come with a control panel or web server.
- SSH: Kule connects to the server on port 22.
When the server is ready, the provider gives you an IP address and login details: usually a root password sent by email or shown in the panel, or the SSH key you added when creating the server.
2If you were given a user other than root
Some providers deliver root disabled and give you a user with sudo rights, such as ubuntu or debian. Kule runs the setup directly as root and doesn’t use sudo, so in this case you need to turn on root access first. Connect with the user you were given and run:
ssh ubuntu@198.51.100.7 sudo passwd root echo 'PermitRootLogin yes' | sudo tee /etc/ssh/sshd_config.d/0-root.conf sudo systemctl restart ssh
You will enter the password you gave root into Kule once. While Kule’s “key-only login” protection is on, the setup turns root’s password login off again. For provider-specific details, see the OVHcloud guide.
3Add 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).
If you created the server with an SSH key, use the “ya da SSH anahtarı seç” (or choose an SSH key) option. Kule reads the ~/.ssh/id_ed25519 file on this Mac; the key never leaves the Mac. This option doesn’t work with a passphrase-protected key; in that case, connect with a password.
4Checks
Before touching anything, Kule looks at the server and shows the result line by line:
Connected · Ubuntu 24.04 LTS · 2 vCPU · 4 GB RAM · 80 GB disk Ports 80, 443 and 3000 are free Docker Hub and GitHub are reachable Secure SSH key installed · in Keychain
If something is missing, it tells you why and stops there: if there is no Docker package for the operating system, if one of the ports is taken by something else, or if the server can’t reach the internet.
5Protections and Dokploy
Next, it sets up the protections: a firewall, fail2ban, automatic security updates, swap if needed, the time zone and key-only SSH login. Then it installs Docker, Docker Swarm and Dokploy with its official install script, creates the admin account and the API key, and stores them in the Keychain.
If the connection drops or the Mac goes to sleep, the setup resumes from the step where it stopped. Details are in the Dokploy guide.