Skip to main content

Dokploy – Getting started guide

Access your Dokploy dashboard, deploy apps and databases, and manage services on your VPS.

A
Written by Alexandru Stan
Updated yesterday

Dokploy is a self-hosted deployment platform that lets you deploy applications and databases from a web dashboard. It uses Docker Swarm under the hood, so you get production-grade container orchestration on a single server. Everything runs as Docker Swarm services managed by Dokploy itself.

​ ​

Access your dashboard

Your Dokploy dashboard is available at:

http://YOUR_IP_ADDRESS:3000

Dokploy takes around 3-5 minutes to be ready after first boot. The install script runs on startup and needs to pull Docker images and initialise Docker Swarm before the dashboard becomes available. If you see a connection error right after the server starts, wait a moment and try again.

On first access you'll be prompted to create an admin account. Set your email and password to complete setup.

​ ​

Secure your dashboard

After completing initial setup, restrict access to port 3000 using the firewall in your LumaDock control panel. Allow only your own IP address. The Dokploy dashboard exposes Docker management and should not be left open to the public internet.

Once you have a domain configured, Dokploy can serve the dashboard itself over HTTPS on port 443 instead.

​ ​

Deploy an application

From a Git repository:

Step 1 – Create a project

Go to Projects in the sidebar and create a new project.

​ ​ Step 2 – Add a service

Inside the project, click Create Service and select Application.

​ ​ Step 3 – Connect your repository

Choose your provider (GitHub, GitLab, Bitbucket or Gitea), then select your repository and branch.

​ ​ Step 4 – Configure and deploy

Set your build method (Nixpacks, Heroku buildpacks, Dockerfile or Docker Compose) and click Deploy.

To deploy from a Docker image instead, select Docker Image when adding a service, enter the image name and tag, configure ports and environment variables, then deploy. For a Compose file, select Docker Compose and paste your docker-compose.yml directly into the editor.

​ ​

Add a database

Dokploy provisions databases as managed services alongside your apps.

​ ​ Step 1 – Add a database service

Inside a project, click Create Service and select Database.

​ ​ Step 2 – Choose your database

Pick from MySQL, PostgreSQL, MongoDB, MariaDB or Redis, set a name and credentials, then deploy.

The database is accessible to your other services within the same Dokploy network using the service name as the hostname.

​ ​

Configure domains and SSL

Dokploy uses Traefik to handle routing and SSL automatically via Let's Encrypt.

​ ​ Step 1 – Open application settings

Go to your application and open the Domains tab.

​ ​ Step 2 – Add your domain

Enter your domain (e.g. app.yourdomain.com) and save.

​ ​ Step 3 – Point DNS to your server

Make sure your domain's A record points to your server IP. Traefik handles the certificate automatically once DNS resolves.

​ ​

Set environment variables

Open your application settings and go to the Environment tab. You can paste a .env file directly or add variables one by one.

​ ​

Mount persistent storage

Open your application settings and go to the Mounts tab. Specify the container path and Dokploy creates a persistent volume for it.

​ ​

Auto-deploy on git push

​ ​ Step 1 – Copy the webhook URL

Go to your application's Deployments tab and copy the webhook URL shown there.

​ ​ Step 2 – Add it to your repository

Paste it as a webhook in your GitHub or GitLab repository settings. Every push to the configured branch triggers a new deployment automatically.

​ ​

Update Dokploy

curl -sSL https://dokploy.com/install.sh | sh -s update

The update script detects the existing installation and updates in place with no downtime.

​ ​

Useful commands

docker service ls                          # Check running Dokploy services docker ps                                  # Check all containers docker service logs dokploy --follow       # Dokploy application logs docker service logs dokploy-traefik --follow  # Traefik logs docker node ls                             # Docker Swarm node status df -h                                      # Disk usage free -h                                    # Memory usage

​ ​

Common issues

Dashboard not loading after boot

The install script runs on first boot and takes 2-4 minutes. Check whether the containers are up:

docker ps

You should see containers for dokploy, traefik, postgres and redis.

Deployment build failing

Check the build logs inside the Dokploy dashboard. Common causes are missing environment variables, insufficient RAM during the build phase (a minimum of 2 GB RAM is recommended) or a misconfigured Dockerfile.

SSL certificate not issuing

Make sure your domain's DNS A record has propagated and points to the server IP. Traefik requests certificates automatically once the domain resolves.

Port 3000 not accessible

Check that the Dokploy container is running and that port 3000 is open in your LumaDock firewall. If you have ufw enabled on the server as well, make sure port 3000 is allowed there too.

Did this answer your question?