[Back to blog](https://zcp.zsoftly.ca/blog)
 [Tutorials](https://zcp.zsoftly.ca/blog/category/tutorials)

# Deploy Dokploy on ZCP: Launch a VM and Self-Host Your Apps

A step-by-step guide to launching a virtual machine and installing Dokploy on ZSoftly Cloud Platform, entirely from the portal. Self-host your apps and databases with Git deploys and automatic TLS.

Ditah Kumbong

Founder & CTO

June 19, 2026

· Updated September 6, 2026

4 min read

Share

![ZCP tutorial cover reading Launch a VM. Self-host your apps.](https://zcp.zsoftly.ca/images/blog/2026/deploy-your-first-vm.webp)

This tutorial takes you from a brand-new ZSoftly Cloud Platform account to a working virtual machine running [Dokploy](https://dokploy.com/), an open-source, self-hosted platform for deploying apps and databases (think of it as your own Vercel or Heroku). You do every step from the portal, no command line required until you install Dokploy itself.

By the end you have:

- A public-facing virtual machine with a public IP
- Dokploy installed and reachable in your browser
- A place to deploy apps from Git, run databases, and serve custom domains with automatic TLS

Plan for about 15 minutes. Most of it is the VM booting and Dokploy installing.

## Prerequisites

- A ZCP account ([create one here](https://cloud.zcp.zsoftly.ca/register), CA$100 in launch promotional credit at sign-up, up to CA$300 in promotional credit total).
- Dokploy needs at least 2 GB of RAM and 30 GB of disk. Keep that in mind when you pick a plan in Step 2.

## Step 1: Log in to the portal

Go to [cloud.zcp.zsoftly.ca](https://cloud.zcp.zsoftly.ca/) and log in with your account credentials.

## Step 2: Create the VM

Go to Compute \> Instances and click Add Instance. Configure it:

| Setting | Value |
| --- | --- |
| Region | YUL (recommended for production) or YOW |
| Image | Ubuntu 24.04 LTS |
| Plan | At least 2 GB RAM and 30 GB disk; the Large plan (2 vCPU / 4 GB) is a safe pick |
| Network | Public Network, with public IPv4 enabled |
| SSH Key | Add your SSH key (or use the Provisioning Password) |

Click Launch Virtual Machine. The VM is running within 30-60 seconds.

> Use Ubuntu 24.04 LTS, not 26.04. Dokploy installs Docker from Docker’s apt repository, which does not publish packages for the very newest Ubuntu releases right away. On 26.04 the installer can fail with `docker: not found`.

## Step 3: Open the ports

On the Public Network, inbound traffic is blocked until you open it. Dokploy needs four ports: 22 (SSH), 80 and 443 (your apps and TLS), and 3000 (the dashboard).

In the portal, open your instance and add, for each port:

1. A firewall rule (Settings \> Firewall) allowing TCP on that port.
2. A port-forwarding rule (Settings \> Port Forwarding) mapping the public port to the same port on the VM.

Detailed UI steps: [firewall](https://docs.zcp.zsoftly.ca/public-cloud/compute/settings/firewall/) and [port forwarding](https://docs.zcp.zsoftly.ca/public-cloud/compute/settings/port-forwarding/) in the docs.

## Step 4: Connect over SSH

Open your instance’s Overview tab to get its public IP, the username (`ubuntu` for Ubuntu images), and, if you did not add an SSH key, the Provisioning Password.

```bash
ssh ubuntu@YOUR_PUBLIC_IP
```

If the connection times out, confirm you opened port `22` in Step 3. See [Connect With SSH](https://docs.zcp.zsoftly.ca/public-cloud/compute/connect-ssh/) for details, including where to find the Provisioning Password.

## Step 5: Install Dokploy

You are now on the VM. Install Dokploy with its official one-line script (it runs as root):

```bash
curl -sSL https://dokploy.com/install.sh | sudo sh
```

The installer pulls Docker, starts Dokploy, and serves the dashboard on port `3000`. It prints the URL when it finishes.

## Step 6: Open the dashboard

In your browser, go to:

```plaintext
http://YOUR_PUBLIC_IP:3000
```

Create your admin account on first load. From here you can deploy apps from Git, run databases, and add custom domains with automatic TLS.

> Secure it right away. Port `3000` is open to the internet, so set a strong admin password immediately. Then point a domain at your VM’s public IP so Dokploy can issue TLS certificates and serve your apps on `443`.

## What to build next

With Dokploy running, you can:

- Deploy an app straight from a GitHub or GitLab repository
- Spin up a PostgreSQL, MySQL, MongoDB, or Redis database in a few clicks
- Add a custom domain with automatic Let’s Encrypt TLS
- Attach block storage for persistent data, or install other [one-click marketplace apps](https://docs.zcp.zsoftly.ca/public-cloud/marketplace/)

## Clean up

Hourly billing runs while the VM exists. When you are done testing, delete the instance from the portal (Compute \> Instances \> your VM \> Delete). That also releases its public IP and the firewall and port-forwarding rules attached to it.

## Cost

A 2 vCPU / 4 GB VM on the Large plan costs about $48/month, billed hourly. Your CA$100 sign-up promotional credit is valid for 30 days from issue. Eligible accounts can receive up to CA$300 in promotional credit. For Prepaid accounts, you make a minimum CA$1.00 verification payment. The amount is added to your Prepaid account credit and remains available to spend. After you use the promotional credit or it expires, billing continues in the Prepaid or Postpaid mode you selected at signup. That choice is permanent for the account.

## Related articles

Tutorials

May 16, 2026

### [Managed DNS on ZCP: how it works and how to set up a domain](https://zcp.zsoftly.ca/blog/dns-on-zcp)

A walkthrough of the managed DNS service on ZCP, the two-nameserver architecture behind it, and the portal steps to create and manage a zone.

Tutorials

May 16, 2026

### [VMware to Apache CloudStack: a step-by-step migration guide](https://zcp.zsoftly.ca/blog/vmware-to-cloudstack-migration-guide)

A practical, step-by-step guide to moving VMware vSphere workloads to Apache CloudStack + KVM. What ZSoftly handles end to end and what is happening underneath.

Tutorials

January 1, 2026

### [ArgoCD CLI Login Fails on EKS Auto Mode? Here Is the Fix](https://zcp.zsoftly.ca/blog/argocd-eks-auto-mode-cli-login-fix)

Standard ArgoCD login commands fail on EKS Auto Mode because AWS manages ArgoCD differently. This guide shows you the correct authentication method using tokens and environment variables.
