Tutorials 13 min read

Configure Dockge to manage your Docker containers in 2026

Learn how to install and configure Dockge, a lightweight and self-hosted Docker Compose stack manager, perfect for homelabs and self-hosting.

S By Selfhostr Team · no sponsored content
Configure Dockge to manage your Docker containers in 2026
ⓘ ⓘ This article may contain affiliate links (no extra cost to you, it funds the site). As an Amazon Associate, Selfhostr earns from qualifying purchases. See the disclosure.
⏱️
~45 min
Duration
🎚️
Intermediate
Difficulty
💶
Free (open source)
Cost
📦
Docker installed and a sudo user
Key prerequisites

👍 What we like

  • ✓Lightweight and responsive web interface optimized for Docker Compose stacks
  • ✓Integrated interactive editor to modify compose.yaml files directly in the browser
  • ✓Real-time log and terminal support
  • ✓File-based architecture compatible with standard Docker commands

👎 What to watch

  • ✕Only manages Docker Compose stacks, not standalone containers launched with docker run
  • ✕Web interface may be less intuitive for beginners compared to more comprehensive solutions like Portainer
  • ✕Docker socket access: never expose it directly to the Internet
📑 Contents ▾

Dockge is a self-hosted Docker Compose stack manager designed to simplify container management in a homelab environment. Unlike heavier solutions that store configurations in an internal database, Dockge uses compose.yaml files stored on disk, ensuring portability and compatibility with standard Docker commands. The tool lets you edit, deploy, and monitor stacks directly from a web interface, without manually editing files or using multiple terminals. Dockge is particularly well-suited for users managing a small number of stacks across one or two Docker hosts, offering a lightweight and efficient way to centralize these operations. Installing Dockge requires just a single container, minimizing system footprint and making it ideal for homelabs.

🖥️ Hardware to host it at home — To run this service 24/7 without a big power bill, a low-power mini PC is enough in most cases. Two common picks: the Beelink Mini S12 Pro (Intel N100, 16 GB) and the Beelink EQ14 (Intel N150, dual 2.5 GbE ports). To choose for your needs: our guide to the best mini PCs for a homelab.

Prerequisites

To install and configure Dockge, you will need the following:

  • A Linux host with Docker Engine installed (Ubuntu 26.04 or 24.04, Debian Bullseye or newer, or another major distribution supported by Docker)
  • A user with sudo privileges on this host
  • TCP port 5001 free for Dockge’s web interface
  • A dedicated directory for storing your Docker Compose stacks (defaults to /opt/stacks, but can be customized)
  • Docker Compose v2 or Podman (if using Podman, install podman-docker for compatibility with Docker)
  • A web browser to access Dockge’s interface

Step-by-step installation

Step 1: Prepare the system environment

Before installing Dockge, ensure your system is ready to run Docker. Dockge requires Docker Engine to operate, and it’s recommended to use Docker Compose v2 for better integration. If you’re using Podman, install the podman-docker package for compatibility with Docker.

For Docker users, verify that Docker is properly installed and functioning. Dockge runs as a container, so having Docker installed is sufficient to get started. If you’re using a VPS or NAS, make sure Docker is available and that you have a sudo user to manage stacks.

To check if Docker is installed, run the following command:

sudo docker --version

This command should print a Docker version. Also check that the Compose v2 plugin is present with docker compose version.

If Docker is not installed, Docker’s official script installs Docker Engine and the Compose plugin from Docker’s repository (it is also the method given in Dockge’s README):

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Then run sudo docker --version and sudo docker compose version again: both commands should answer without error.

Step 2: Configure the stacks directory

Dockge uses a dedicated directory to store the compose.yaml files for your stacks. By default, this directory is /opt/stacks, but you can customize it if needed. To avoid permission issues, it’s recommended to create this directory with a non-root user.

Create the stacks directory and set the appropriate permissions:

sudo mkdir -p /opt/stacks
sudo chown -R $USER:$USER /opt/stacks

These commands create the /opt/stacks directory if it doesn’t exist, and set permissions so the current user can access it. If you’re using a different user, replace $USER with that user’s name.

To verify the directory was created correctly and is accessible, run:

ls -ld /opt/stacks

This command should display directory information, for example drwxr-xr-x 2 user user 4096 Oct 16 10:00 /opt/stacks. If the directory isn’t accessible, adjust permissions using chmod or chown as needed.

Step 3: Install Dockge via Docker Compose

Dockge is designed to be installed via Docker Compose, simplifying deployment and management. You can use the default compose.yaml file or customize it to fit your needs. For a basic installation, use the default file and deploy Dockge in the /opt/dockge directory.

Create Dockge’s directory, then download the official compose.yaml file:

sudo mkdir -p /opt/dockge
sudo chown $USER:$USER /opt/dockge
cd /opt/dockge
curl https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml --output compose.yaml

These commands place the compose.yaml file in the /opt/dockge directory. You can then customize it as needed, for example to change the port or the stacks directory.

Deploy Dockge using Docker Compose:

sudo docker compose up -d

This command starts Dockge in the background. Dockge interacts with your Docker host via the Docker socket, so it’s essential that the socket is properly mounted in the container. By default, the compose.yaml file configures the Docker socket and stacks directory as follows:

services:
  dockge:
    image: louislam/dockge:1
    restart: unless-stopped
    ports:
      - 5001:5001
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./data:/app/data
      - /opt/stacks:/opt/stacks
    environment:
      - DOCKGE_STACKS_DIR=/opt/stacks

On first launch, Dockge asks you to create the administrator account: do it right away, as the first person to open the page becomes the administrator.

To confirm Dockge is installed and running, access the web interface at the following address:

http://server-address:5001 (or http://localhost:5001 from the machine itself).

If the web interface appears, the installation was successful. You can also check the container’s status with:

sudo docker compose ps

This command should show dockge as running.

Step 4: Customize the compose.yaml file

To use a different stacks directory or port, edit the compose.yaml file. For the directory, three values must be identical: both sides of the volume and the DOCKGE_STACKS_DIR variable, always as an absolute path. Example with /srv/stacks:

services:
  dockge:
    image: louislam/dockge:1
    restart: unless-stopped
    ports:
      - 5001:5001
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./data:/app/data
      - /srv/stacks:/srv/stacks
    environment:
      - DOCKGE_STACKS_DIR=/srv/stacks

If the two sides of the volume differ, the Docker commands run by Dockge look for files in the wrong place and your stacks do not start correctly. Create the new directory before redeploying.

To change the web interface port, modify the ports section of the dockge service:

services:
  dockge:
    image: louislam/dockge:1
    restart: unless-stopped
    ports:
      - 8080:5001
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./data:/app/data
      - /opt/stacks:/opt/stacks
    environment:
      - DOCKGE_STACKS_DIR=/opt/stacks

In this example, port 8080 on the host system is mapped to port 5001 in the container. You can access the web interface at http://localhost:8080. After customizing the compose.yaml file, redeploy Dockge to apply the changes:

sudo docker compose down && sudo docker compose up -d

To verify the changes were applied, access the web interface at the new port and check that your stacks are correctly listed.

Step 5: Set up secure access to Dockge

By default, Dockge is only reachable over HTTP on port 5001. To reach it from another network, a VPN (WireGuard, Tailscale) remains the safest option. If you prefer a domain name over HTTPS, put a reverse proxy such as Nginx in front.

To configure Nginx as a reverse proxy, create a configuration file for your domain or subdomain pointing to the host’s local port 5001. Here’s an example Nginx configuration for Dockge:

server {
    listen 80;
    server_name dockge.yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:5001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

The three proxy_http_version, Upgrade and Connection lines are required: Dockge’s interface uses WebSockets for live logs and terminals.

Replace dockge.yourdomain.com with the domain or subdomain you want to use for accessing Dockge. If you’re using a NAS or VPS, ensure the domain name is correctly configured and points to your host’s IP address.

To enable HTTPS, use an SSL certificate. You can obtain a free SSL certificate via Let’s Encrypt by configuring Certbot to automatically manage certificates. Here are the commands to install Certbot and obtain an SSL certificate:

sudo apt-get install -y certbot python3-certbot-nginx
sudo certbot --nginx -d dockge.yourdomain.com

With the --nginx option, Certbot obtains the Let’s Encrypt certificate and edits the server block itself: it adds the port 443 listener with the certificate paths and the redirect from port 80. Check the result with sudo nginx -t, then reload with sudo systemctl reload nginx. Automatic renewal can be checked with sudo certbot renew --dry-run.

To verify HTTPS access is properly configured, visit the web interface at the URL https://dockge.yourdomain.com and ensure your browser displays a green padlock, indicating a secure connection.

Step 6: Deploy a Docker stack via Dockge

Once Dockge is installed and accessible, you can deploy a Docker stack through its web interface. Dockge allows creating, editing, and deploying stacks directly from the browser, greatly simplifying the process.

To deploy a stack, follow these steps:

  1. Access Dockge’s web interface via your browser.
  2. Click the “New stack” button to create a new compose.yaml file.
  3. Name your stack: Dockge automatically stores it in a subfolder of the stacks directory (/opt/stacks/stack-name).
  4. Edit the compose.yaml file directly in the web interface. You can use the integrated editor to modify files without manually editing them in the terminal.
  5. Click “Deploy” to apply changes and start the containers defined in your stack.

Here’s an example of a simple Docker stack you can deploy via Dockge. This example uses an Nginx container:

services:
  web:
    image: nginx:latest
    restart: unless-stopped
    ports:
      - 8080:80
    volumes:
      - ./html:/usr/share/nginx/html

To verify the stack was deployed correctly, check the web interface in Dockge to see the stack listed. You can also verify the container is running with:

cd /opt/stacks/stack-name
sudo docker compose ps

Dockge keeps each stack in its own folder (/opt/stacks/stack-name/compose.yaml). Replace stack-name with the name chosen in the previous step: the command should show the web container as running.

Step 7: Update Dockge

Dockge is regularly updated to include new features and bug fixes. To update Dockge, use Docker Compose to pull the latest image version and redeploy the container.

To update Dockge, run the following commands:

cd /opt/dockge
sudo docker compose pull && sudo docker compose up -d

These commands download the latest Dockge image and redeploy the container with the new settings. To verify the update was successful, access the web interface and check the version displayed at the bottom of the page.

Step 8: Back up your stacks

Dockge stores your stacks as compose.yaml files in the /opt/stacks directory. It’s essential to regularly back up these files to avoid data loss if something happens to your Docker host.

To back up your stacks, copy the /opt/stacks directory to another location or an external storage system. Here’s an example command to copy the directory to a backup location:

sudo mkdir -p /opt/backup
sudo cp -r /opt/stacks /opt/backup/dockge-stacks-$(date +%Y-%m-%d)

This command copies the /opt/stacks directory to a backup location with a name based on the current date. You can also use a backup tool like rsync to synchronize the directory to another location:

sudo rsync -avz /opt/stacks/ /opt/backup/dockge-stacks-$(date +%Y-%m-%d)/

To verify the backup was successful, list the contents of the backup directory:

ls /opt/backup/dockge-stacks-$(date +%Y-%m-%d)

This command should show one folder per stack. Also back up /opt/dockge/data, which holds Dockge’s administrator account and settings.

Verification checks

To confirm Dockge is correctly installed and configured, first check the container’s status with the following command:

cd /opt/dockge && sudo docker compose ps

This command should show dockge as running. Next, access the web interface at the address http://localhost:5001 (or the customized port if you modified the configuration).

For deployed stacks, check their status with:

cd /opt/stacks/stack-name && sudo docker compose ps

Replace stack-name with your stack’s name. This command should show the stack’s containers as running. If everything is correct, you should see a functional web interface with your stacks listed and accessible.

Security and best practices

Dockge mounts the Docker socket: whoever controls Dockge controls every container on the machine, which amounts to root access. So do not expose port 5001 to the Internet: use a VPN, or an HTTPS reverse proxy restricted to your addresses. Dockge has a single account, the administrator created on first launch: give it a long, unique password.

Regularly update Dockge to benefit from the latest security patches and features. Use Docker Compose to redeploy the container after an update:

cd /opt/dockge && sudo docker compose pull && sudo docker compose up -d

Regularly back up your Docker stacks to avoid data loss. Use a backup tool like rsync to synchronize the stacks directory to another location or an external NAS. Since Dockge stores stacks as files, a manual or automated backup of these files is sufficient to restore your stacks in case of issues.

Troubleshooting common errors

If Dockge’s web interface doesn’t appear after installation, first check that the container is running with the following command:

cd /opt/dockge && sudo docker compose ps

If the container isn’t running, inspect the logs to identify the issue:

sudo docker compose logs

Symptom: web interface not responding -> Cause: container not started -> Fix: redeploy the container with sudo docker compose up -d and check the logs.

Symptom: unable to edit or deploy a stack -> Cause: insufficient permissions on the stacks directory -> Fix: verify the user has the necessary rights with ls -ld /opt/stacks and adjust permissions if needed.

Symptom: stack containers fail to start -> Cause: error in the compose.yaml file -> Fix: validate the syntax with cd /opt/stacks/stack-name && sudo docker compose config and fix the reported errors.

Symptom: stacks no longer appear in Dockge -> Cause: misconfigured stacks directory -> Fix: check with cat /opt/dockge/compose.yaml that both sides of the volume and DOCKGE_STACKS_DIR point to the same absolute path.

Symptom: the interface loads but logs and terminal stay empty behind the reverse proxy -> Cause: WebSockets not forwarded -> Fix: add the proxy_http_version 1.1, Upgrade and Connection lines from step 5.

FAQ

How do I access Dockge from another Docker host?

Install Dockge on each host, then add the other instances as “agents” from the main Dockge interface (address, username and password of the other instance). Never expose a host’s Docker socket over the network: anyone who reaches it gets root access to the machine.

Is Dockge compatible with all Linux distributions?

Dockge is compatible with major Linux distributions that can run Docker, such as Ubuntu, Debian Bullseye or newer, Fedora, ArchLinux, or CentOS. Debian Buster, Raspbian Buster and older releases are not supported by Dockge: upgrade the system first.

Can I use Dockge with Podman?

Yes, Dockge can be used with Podman. To do this, install podman-docker on your system, then use Docker Compose to deploy Dockge. The commands and configuration remain the same, but Dockge will interact with Podman instead of Docker Engine.

How do I restore a Docker stack from a backup?

To restore a Docker stack from a backup, copy the stack’s folder (with its compose.yaml file) to /opt/stacks/stack-name/, then redeploy the stack with Docker Compose. Ensure the file and directory permissions are correct to avoid access issues.

Read also

Host this yourself

No hardware to manage? This kind of service can also run on a managed VPS, ready in minutes. See PlanetHoster plans

Tags: dockerhomelabself-hostingcomposedockge

Related

Tutorials

Install Frigate NVR on Raspberry Pi 5 in 2026: The Complete Guide

Install Frigate NVR on a Raspberry Pi 5: 64-bit Raspberry Pi OS, Docker from the official repository, the official image, a config.yml for an RTSP camera, secured port 8971 and SSD storage.

Read
Tutorials

Create a Raspberry Pi 5 NAS in 2026: Complete Guide

Guide for 2026 to transform a Raspberry Pi 5 into a high-performance NAS. Step-by-step guide on case, NVMe SSD, Docker, Samba setup and security for reliable self-hosting.

Read
Tutorials

Migrating from a Synology to a DIY NAS in 2026: Step-by-Step Guide

Migrate from a Synology to a DIY NAS on Ubuntu Server 24.04: mirrored ZFS pool, verified rsync copy over SSH, Samba share limited to the local network, and a firewall.

Read