Deployment guide

How to Self-Host Dockge on a VPS: Visual Docker Compose Manager

Deploy on a VPS Cloud →

Self-hosting4 min read

How to Self-Host Dockge on a VPS: Visual Docker Compose Manager

Managing Docker Compose stacks by hand works fine for one or two apps, but breaks down fast when you run a dozen services across a VPS. Dockge (MIT, 23.7k stars) is a visual manager for Docker Compose built by Louis Lam — the same developer behind Uptime Kuma. It gives you a clean browser UI to create, edit, start, stop and monitor every stack on your server, with live terminal output and real-time status. Here is how to deploy it on a VPS in under 10 minutes.

Why a visual Docker Compose manager

Once you start running more than a handful of Docker Compose stacks, the workflow of SSH-ing into each server, navigating to the right directory, and running docker compose up -d or docker compose logs quickly becomes tedious. Dockge centralises all of this in a single browser tab: you see every stack, its live status, and its logs at a glance. Creating a new stack is a form — you paste in your compose.yaml and hit Start. No file manager, no SSH.

What self-hosted Dockge gives you

  • Visual editor for compose.yaml files — create or edit stacks directly in the browser with syntax highlighting.
  • One-click start, stop, restart and update for each stack — no need to SSH or memorise compose commands.
  • Live log streaming per stack and per container, with colour-coded output.
  • Real-time status dashboard showing which stacks are running, stopped or in error.
  • Multi-instance support (v1.4+): manage Dockge instances on remote Docker hosts from a single primary UI.
  • Runs as a single container under 150 MB RAM — safe to add to any existing VPS without impacting running workloads.

Requirements

A VPS with Ubuntu 22.04 (or Debian 12) and Docker + Docker Compose v2 already installed. Dockge itself needs under 150 MB RAM and a few MB of disk for its SQLite database. No domain name is required — Dockge serves its UI on port 5001 over plain HTTP, accessible via your server's IP. If you want HTTPS, place a Caddy or Nginx reverse proxy in front and issue a Let's Encrypt certificate.

Deploy Dockge with Docker Compose

01

Create the stacks directory

Dockge stores every stack it manages as a compose.yaml file under a dedicated directory on the host — /opt/stacks by default. Create it before starting the container: mkdir -p /opt/stacks. Dockge mounts this directory inside the container so files survive container restarts and upgrades.

02

Write the Compose file

Create /opt/dockge/compose.yaml with the following content. The container mounts the Docker socket (/var/run/docker.sock) so it can manage other containers on the same host, the /opt/stacks directory so it can read and write stack files, and a named volume for its own SQLite database. Set DOCKGE_STACKS_DIR to match the host path you chose.

03

Start Dockge

Run docker compose up -d inside /opt/dockge. The image (louislam/dockge:1) is about 200 MB on first pull. Once running, open http://<your-server-ip>:5001 in your browser. Dockge will prompt you to create an admin account on the first visit — set a strong password immediately.

04

Add your first stack

Click « + Compose » in the Dockge UI, give the stack a name (this becomes the subdirectory under /opt/stacks), paste your compose.yaml content, and hit Start. Dockge runs docker compose up -d under the hood and shows you the live pull and startup logs. The stack appears in the dashboard with green status once all services are healthy.

05

Optional: restrict access with a reverse proxy

By default Dockge listens on all interfaces on port 5001. To avoid exposing it to the internet, either bind it to 127.0.0.1:5001 in the Compose file (add "127.0.0.1:5001:5001" to ports) and proxy it with Caddy or Nginx, or add a ufw rule to allow port 5001 only from your IP: ufw allow from <your-ip> to any port 5001. Never expose the Dockge UI to the public internet without authentication.

06

Logging in for the first time

Open the URL: Dockge shows a screen for creating the administrator account (there are no default credentials). Create it straight away, with a strong password.

The web console is disabled by default — keep it that way

Dockge v1.5.0 disabled the built-in terminal console (web shell access) by default after a security advisory (GHSA-7vx4-hf96-mqq6). Do not enable it on a public-facing instance unless you fully understand the risk. The rest of Dockge — stack management, logs, status — is fully functional without the console. If you need shell access, use a proper SSH session or a dedicated terminal tool.

Deploy Dockge on your VPS in one click

Stop managing Docker Compose stacks over SSH. ServOrbit provisions a ready-to-use Dockge instance on a VPS — Docker socket and stacks directory pre-configured, accessible from your browser in minutes.

Need help?

Browse our help center and FAQ, or reach our team — callback, WhatsApp or email. Support in French, English and Arabic.