Self-hosted service
louislam/dockge avatar
louislam/dockge

Dockge: A Compose-First Manager That Keeps Your YAML Files on Disk

A fancy, easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager.

24,818 stars872 forksTypeScriptMIT

At a glance

What is it?
Dockge is a self-hosted, reactive manager for docker compose.yaml stacks. It focuses on file-based control, real-time output, and a clean UI, but it deliberately excludes single-container and network management.
Who is it for?
Adopt Dockge if you manage multiple compose.yaml stacks and want a UI that respects your files on disk, with real-time progress and an interactive editor. Do not use it if you need single-container management, Docker networks, or Windows support.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 22 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 13, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • louislam/dockge24,818 ★ · +909
Star history
Repository2026-07-282026-11-13
louislam/dockge23.9k24.8k

909 Stars in the last 108 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

The Problem: Compose File Management Without a UI That Gets in the Way

Docker Compose is powerful, but its CLI is not friendly for frequent stack operations like editing, restarting, or watching logs. Portainer, the common alternative, offers a broad UI, but the README cites specific frustrations: slow deployments with a spinning loader and unclear error messages. Dockge targets a narrower problem: managing compose.yaml files in a stack-oriented way, with a reactive interface that shows real-time progress. It is for self-hosters who already use compose files and want a UI that does not hide or rewrite those files. The author, louislam, also created Uptime Kuma, so the UI philosophy carries over: simple, responsive, and focused on the task at hand.

File-Based Architecture: Compose Files Stay on Your Drive

Dockge does not store your stack definitions in a database. Instead, it reads and writes compose.yaml files directly in a stacks directory on the host. The default is /opt/stacks, but you can change it via the DOCKGE_STACKS_DIR environment variable or by generating a custom compose.yaml. This design means you can still run docker compose commands manually on the same files. The README's phrase 'Dockge won't kidnap your compose files' captures the core value: no lock-in. If you stop using Dockge, your compose files remain intact and usable. The trade-off is that Dockge must mount the stacks directory into the container, and the path inside the container must match the host path. The README warns that a mismatch can write data to the wrong path, which is a real footgun.

How It Works: Compose V2, Real-Time Output, and Agents

Dockge is built on top of Compose V2, which means it uses the modern docker compose command under the hood. The reactive behavior comes from streaming progress and terminal output in real-time, so you see pull, up, and down operations as they happen. The UI includes an interactive editor for compose.yaml, an interactive web terminal, and a converter that turns docker run commands into compose.yaml. Version 1.4.0 added multi-agent support: you can manage stacks from multiple Docker hosts in one interface. This is a significant feature for homelabs with multiple machines, but the README does not detail how agents authenticate or communicate, so expect to read the docs or source for that.

Getting Started: Commands and Configuration Keys

Installation is straightforward. You create directories for your stacks and for Dockge itself, download a compose.yaml, and start it with docker compose up -d. The README gives these commands: mkdir -p /opt/stacks /opt/dockge, cd /opt/dockge, curl the compose.yaml from the repo, then docker compose up -d. The default port is 5001. For a custom stacks directory, you can generate a compose.yaml from https://dockge.kuma.pet with query parameters like port and stacksPath. You can also set PUID and PGID environment variables in the compose file to control file ownership; without them, files are owned by root. The compose file mounts the Docker socket, which is required for Dockge to control Docker. That is a security consideration: anyone with access to Dockge effectively has access to the Docker daemon.

Limitations and When It Is the Wrong Tool

Dockge is deliberately narrow. The FAQ states that it cannot manage a single container without a compose.yaml. If you want to manage a single container, the README points you to Portainer or the Docker CLI. It also does not manage Docker networks or other Docker resources. On top of that, Windows is not supported yet, and Debian Buster or older is explicitly unsupported. The README does not mention backup or restore features, so you are responsible for backing up your stacks directory yourself.

Alternatives: Portainer and the Docker CLI

The most direct alternative is Portainer, which the README explicitly addresses. Portainer is a full Docker management UI that handles containers, networks, volumes, and stacks. Dockge's author uses Portainer but found its stack deployment slow and error messages unclear. The difference in approach is that Dockge keeps compose files on your drive as the source of truth and edits them directly. If you need to manage a single container or Docker networks, Portainer is the better choice. The Docker CLI itself is another alternative: it gives you full control but no UI, no real-time progress visualization, and no interactive editor. Dockge sits between the two: more structure than the CLI, less scope than Portainer.

Maintenance, Updates, and Licensing

Updating Dockge is simple: cd /opt/dockge, then docker compose pull && docker compose up -d. The project is under the MIT license, which allows free use, modification, and redistribution, with no copyleft obligations. The release cadence is uneven: 1.4.0 came in January 2024, 1.4.2 in January 2024, and 1.5.0 in March 2025, a gap of over a year. That suggests maintenance is active but not rapid. The README mentions that the project is built with ES Module and TypeScript, which is a developer note, not a user concern. For upgrades, you should check the release notes for breaking changes, especially around the agents feature or configuration keys. The Docker socket mount is a long-term security consideration: it is required, but you should restrict access to Dockge's port to trusted networks.

Editorial conclusion

Adopt Dockge if you manage multiple compose.yaml stacks and want a UI that respects your files on disk, with real-time progress and an interactive editor. Do not use it if you need single-container management, Docker networks, or Windows support. Before adopting, verify that your stacks directory path matches the container path exactly, as the README warns that a mismatch can write data to the wrong location. Also confirm your Docker version is 20+ and that you are on a supported Linux distro, as Debian Buster and older are not supported.

Frequently asked questions

What is dockge?

A self-hosted manager built around docker compose.yaml. It creates, edits, starts, stops, restarts and deletes compose files, updates Docker images, ships an interactive editor and a web terminal, and can convert docker run commands into compose.yaml. Your files stay on your drive and keep working with normal docker compose commands.

How does Dockge compare to Portainer?

The answer is split: yes if you manage containers with docker-compose only, no if you still need docker networks or single containers, since Portainer covers many more Docker features. The author built Dockge partly because Portainer's deploy spinner sometimes ran for minutes without progress and its error messages were unclear. Both can be installed together.

is dockge dead

It is not archived, and the last push to the master branch is dated 2026-10-23. The newest tagged release is older: 1.5.0 from 2025-03-30, ahead of 1.4.2 from 2024-01-21 and 1.4.0 from 2024-01-03.

How to install Dockge on Ubuntu?

Ubuntu is on the supported list of major Linux distros that can run Docker or Podman, with Docker 20+ or Podman required. The basic path creates /opt/stacks and /opt/dockge, curls the compose.yaml from the repository into /opt/dockge, and starts it with docker compose up -d, which serves the UI on http://localhost:5001.

what is dockge default port

5001 is the default, and the default stacks directory is /opt/stacks. The compose file maps host port 5001 to container port 5001, and the generator URL accepts port= and stacksPath= as its two query strings.

what is dockge agents

Multiple agents support arrived in 1.4.0 and lets you manage stacks from different Docker hosts in one single interface. The README does not document how agents are registered, authenticated or removed.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/louislam-dockge.svg)](https://hysenlabs.com/projects/louislam-dockge)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/louislam-dockge.svg)](https://hysenlabs.com/projects/louislam-dockge)

Was this useful?