> ## Documentation Index
> Fetch the complete documentation index at: https://help.freakhosting.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How to Install Dokploy on a VPS

> Install Dokploy on a VPS: as root run curl -sSL https://dokploy.com/install.sh | sh, open port 3000, create the admin, then move the panel to a domain with HTTPS.

To install Dokploy, log in as root on a fresh Linux VPS with at least 2 GB RAM, 30 GB disk and ports 80, 443 and 3000 free, then run `curl -sSL https://dokploy.com/install.sh | sh`. Open `http://your-server-ip:3000` straight away and create the admin account. Then give the panel its own domain with HTTPS and close port 3000.

| Difficulty | Time | Works on | Needs |
| - | - | - | - |
| Beginner | 15 minutes | Ubuntu 22.04 / 24.04 LTS, Debian 12 (tested by Dokploy) | Root access, 2 GB RAM, 30 GB disk, ports 80, 443 and 3000 free |

## Before you start

* **Dokploy** is a self-hosted platform for deploying apps, Docker Compose stacks and databases, similar to Heroku or Vercel. It runs on Docker Swarm and uses Traefik to route domains and issue certificates.
* **Use a fresh server.** The installer stops if anything already listens on port 80, 443 or 3000, so don't install it next to Nginx, Apache, [Coolify](https://help.freakhosting.com/portals/other/how-to-install-coolify.md) or [Nginx Proxy Manager](https://help.freakhosting.com/portals/other/how-to-set-up-nginx-proxy-manager.md).
* The installer runs `docker swarm leave --force` before it sets up its own swarm. Don't run it on a server that is already part of a Docker Swarm.
* If Docker is missing, the script installs it with Docker's `get.docker.com` script. If Docker came from the Ubuntu snap store, remove it first.
* Dokploy's minimum is 2 GB RAM and 30 GB disk. Builds use a lot of memory, so add [swap](https://help.freakhosting.com/portals/other/how-to-add-swap-space-on-linux.md) on small servers.
* Take a backup or snapshot of anything important; see [schedule and restore backups](https://help.freakhosting.com/portals/vps-panel/how-to-schedule-and-restore-backups.md).

## How to install Dokploy

**1. Log in as root**

```bash theme={null}
sudo -i
```

The installer stops with `This script must be run as root` otherwise.

**2. Run the installer**

```bash theme={null}
curl -sSL https://dokploy.com/install.sh | sh
```

It ends with `Congratulations, Dokploy is installed!` and the address to open, such as `http://203.0.113.10:3000`.

**3. Create the admin account**

Wait about 15 seconds, open `http://203.0.113.10:3000` with your server's IP and fill in the setup form. This account is the Dokploy administrator.

> [!WARNING]
>
> Until you create the admin account, anyone who opens port 3000 can create it and take control of every container on the server. Do it as soon as the installer finishes.

## What does the installer set up?

| Part | Type | Purpose |
| - | - | - |
| `dokploy` | Swarm service | The web panel, published on port 3000 |
| `dokploy-postgres` | Swarm service (`postgres:16`) | Dokploy's own database |
| `dokploy-traefik` | Container | Reverse proxy on ports 80 and 443 (TCP) and 443 (UDP) |
| `dokploy-network` | Overlay network | Connects Dokploy, Traefik and your apps |
| `/etc/dokploy` | Folder | Traefik configuration and Dokploy files |

The database password and auth secret are stored as Docker secrets.

## Which ports does Dokploy use?

| Port | Used for |
| - | - |
| 22/TCP | SSH (or your custom SSH port) |
| 80/TCP | HTTP and Let's Encrypt validation through Traefik |
| 443/TCP and UDP | HTTPS through Traefik |
| 3000/TCP | Dokploy panel by IP, until you close it |

> [!WARNING]
>
> All of these except SSH are published by Docker, and Docker-published ports bypass `ufw` and `firewalld`. A `ufw deny 3000` rule does not close port 3000. Use the command below, or filter in Docker's `DOCKER-USER` chain; see [secure Docker on a VPS](https://help.freakhosting.com/portals/other/how-to-secure-docker-on-a-vps.md). Keep SSH allowed whatever you change.

## How to put the Dokploy panel on a domain with HTTPS

**1. Create a DNS record**

Point `dokploy.example.com` at your server with an `A` record. See [point a domain to your server](https://help.freakhosting.com/portals/other/how-to-point-a-domain-to-your-server.md).

**2. Set the domain in Dokploy**

In the panel, open **Settings** and the **Web Server** section. Enter `dokploy.example.com` as the domain, turn on HTTPS with Let's Encrypt and save.

**3. Test the domain**

Open `https://dokploy.example.com` and log in. Only continue when this works.

**4. Close port 3000**

```bash theme={null}
docker service update --publish-rm "published=3000,target=3000,mode=host" dokploy
```

The panel is now reachable only through your domain.

## How to check it worked

```bash theme={null}
docker service ls
docker ps --filter name=dokploy-traefik
```

`docker service ls` lists `dokploy` and `dokploy-postgres` with `1/1` replicas, and the Traefik container shows `Up`. The panel loads in your browser.

## How to update Dokploy

```bash theme={null}
curl -sSL https://dokploy.com/install.sh | sh -s update
```

Run it as root. It pulls the latest `dokploy/dokploy` image and updates the `dokploy` service. To install a specific version instead, use the `install.sh` attached to that release on [Dokploy's GitHub releases page](https://github.com/Dokploy/dokploy/releases).

## How to reset the Dokploy admin password

```bash theme={null}
docker ps
docker exec -it <container-id> bash -c "pnpm run reset-password"
```

Use the ID of the `dokploy` container from `docker ps`. The command prints a new random password.

## Frequently asked questions

### What are Dokploy's minimum requirements?

2 GB RAM and 30 GB disk. Dokploy names Ubuntu 24.04 and 22.04 LTS and Debian 12 among the systems it has tested, along with older releases that are now end-of-life. See [which Linux distribution is best for a server](https://help.freakhosting.com/portals/other/which-linux-distribution-is-best-for-a-server.md).

### Can I run the installer with sudo instead of as root?

Yes: `curl -sSL https://dokploy.com/install.sh | sudo sh`. If you set options such as `ADVERTISE_ADDR` or `DOCKER_SWARM_INIT_ARGS`, put them after `sudo` on the same line, because `sudo` drops variables you exported earlier.

### How do I uninstall Dokploy?

Follow [Dokploy's uninstall guide](https://docs.dokploy.com/docs/core/uninstall). It removes the services, volumes and network, leaves the swarm and deletes `/etc/dokploy`. Its last steps prune all Docker data on the server, so back up any app data first.

### Dokploy or Coolify?

Both deploy apps from Git or Docker images with automatic HTTPS, and both need ports 80 and 443. Dokploy runs on Docker Swarm with its panel on port 3000; Coolify's panel uses port 8000. Pick one per server. See [install Coolify](https://help.freakhosting.com/portals/other/how-to-install-coolify.md).

## Related guides

> [card] [VPS and dedicated server guides](https://help.freakhosting.com/portals/other/vps-and-dedicated-server-guides.md)
>
> Every guide in this section.

> [card] [Install Coolify](https://help.freakhosting.com/portals/other/how-to-install-coolify.md)
>
> The main alternative to Dokploy.

> [card] [Traefik with Docker](https://help.freakhosting.com/portals/other/how-to-set-up-traefik-with-docker.md)
>
> The proxy Dokploy uses.

> [card] [Secure Docker on a VPS](https://help.freakhosting.com/portals/other/how-to-secure-docker-on-a-vps.md)
>
> Firewalls and Docker-published ports.

> [card] [Clean up Docker disk space](https://help.freakhosting.com/portals/other/how-to-clean-up-docker-disk-space.md)
>
> Builds fill the disk over time.

***

> [!NOTE]
>
> **Checked against the official [Dokploy installation](https://docs.dokploy.com/docs/core/installation), [reset password](https://docs.dokploy.com/docs/core/reset-password) and [uninstall](https://docs.dokploy.com/docs/core/uninstall) docs and the [install script](https://github.com/Dokploy/website/blob/main/apps/website/public/install.sh)** on 4 November 2026. Menu names can change between Dokploy releases.

> [!NOTE]
>
> ### Need Extra Help?
>
> If you encounter any issues, our support team is ready to assist:
>
> * **Live Chat:** Quick assistance via our website.
> * **Support Ticket:** [Open a Ticket](https://freakhosting.com/clientarea/submitticket.php)
> * **Discord:** [Join our Community](https://discord.gg/freakhosting)
> * **Email:** [support@freakhosting.com](mailto:support@freakhosting.com)

> [!TIP]
>
> ### Save on Your Hosting
>
> Ready to upgrade your hosting? Use code **KB20** at checkout for **20% off** your first order!

***

**Last Updated:** November 2026


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.