A fancy, easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager.
![](https://private-user-images.githubusercontent.com/1336778/280767691-26a583e1-ecb1-4a8d-aedf-76157d714ad7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQzOTkzOTAsIm5iZiI6MTcyNDM5OTA5MCwicGF0aCI6Ii8xMzM2Nzc4LzI4MDc2NzY5MS0yNmE1ODNlMS1lY2IxLTRhOGQtYWVkZi03NjE1N2Q3MTRhZDcucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgyMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MjNUMDc0NDUwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MzU4YjE5MzYzOGU5ZjVhMWEyMzYyZDdlMDMxMWQzNGI4ZjkzNzVkM2Y1MDFiZmRlZTBlZGM2MzUxYjg5MjM0NiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.MTcDC9G4__lAoKysDL8I1pd5RY_c5z7V_77mbGl7Fl0)
View Video: https://youtu.be/AWAlOQeNpgU?t=48
- π§βπΌ Manage your
compose.yaml
files- Create/Edit/Start/Stop/Restart/Delete
- Update Docker Images
- β¨οΈ Interactive Editor for
compose.yaml
- 𦦠Interactive Web Terminal
- π·οΈ (1.4.0 π) Multiple agents support - You can manage multiple stacks from different Docker hosts in one single interface
- πͺ Convert
docker run ...
commands intocompose.yaml
- π File based structure - Dockge won't kidnap your compose files, they are stored on your drive as usual. You can interact with them using normal
docker compose
commands
![](https://private-user-images.githubusercontent.com/1336778/282257591-cc071864-592e-4909-b73a-343a57494002.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQzOTkzOTAsIm5iZiI6MTcyNDM5OTA5MCwicGF0aCI6Ii8xMzM2Nzc4LzI4MjI1NzU5MS1jYzA3MTg2NC01OTJlLTQ5MDktYjczYS0zNDNhNTc0OTQwMDIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgyMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MjNUMDc0NDUwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YmNkY2FhNTQ4Y2Y5MjBiNGRkN2UxYTIzNzQ4MmVjNjZmZmNlODEyODZlZTYwOTM1NDI4YmY3ZGExN2Q2NjNlZiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.6lWzXoAGMNptTaBCi86ymoRyyHdWv87dMl_1rVTIBmY)
- π Reactive - Everything is just responsive. Progress (Pull/Up/Down) and terminal output are in real-time
- π£ Easy-to-use & fancy UI - If you love Uptime Kuma's UI/UX, you will love this one too
Requirements:
- Docker 20+ / Podman
- (Podman only) podman-docker (Debian:
apt install podman-docker
) - OS:
- Major Linux distros that can run Docker/Podman such as:
- β Ubuntu
- β Debian (Bullseye or newer)
- β Raspbian (Bullseye or newer)
- β CentOS
- β Fedora
- β ArchLinux
- β Debian/Raspbian Buster or lower is not supported
- β Windows (Will be supported later)
- Major Linux distros that can run Docker/Podman such as:
- Arch: armv7, arm64, amd64 (a.k.a x86_64)
- Default Stacks Directory:
/opt/stacks
- Default Port: 5001
# Create directories that store your stacks and stores Dockge's stack
mkdir -p /opt/stacks /opt/dockge
cd /opt/dockge
# Download the compose.yaml
curl https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml --output compose.yaml
# Start the server
docker compose up -d
# If you are using docker-compose V1 or Podman
# docker-compose up -d
Dockge is now running on https://localhost:5001
If you want to store your stacks in another directory, you can generate your compose.yaml file by using the following URL with custom query strings.
# Download your compose.yaml
curl "https://dockge.kuma.pet/compose.yaml?port=5001&stacksPath=/opt/stacks" --output compose.yaml
- port=
5001
- stacksPath=
/opt/stacks
Interactive compose.yaml generator is available on: https://dockge.kuma.pet
cd /opt/dockge
docker compose pull && docker compose up -d
- I have been using Portainer for some time, but for the stack management, I am sometimes not satisfied with it. For example, sometimes when I try to deploy a stack, the loading icon keeps spinning for a few minutes without progress. And sometimes error messages are not clear.
- Try to develop with ES Module + TypeScript (Originally, I planned to use Deno or Bun.js, but they don't have support for arm64, so I stepped back to Node.js)
If you love this project, please consider giving it a β.
https://github.com/louislam/dockge/issues
https://github.com/louislam/dockge/discussions
If you want to translate Dockge into your language, please read Translation Guide
Be sure to read the guide, as we don't accept all types of pull requests and don't want to waste your time.
"Dockge" is a coinage word which is created by myself. I originally hoped it sounds like Dodge
, but apparently many people called it Dockage
, it is also acceptable.
The naming idea came from Twitch emotes like sadge
, bedge
or wokege
. They all end in -ge
.
The main objective of Dockge is to try to use the docker compose.yaml
for everything. If you want to manage a single container, you can just use Portainer or Docker CLI.
Yes, you can. However, you need to move your compose file into the stacks directory:
- Stop your stack
- Move your compose file into
/opt/stacks/<stackName>/compose.yaml
- In Dockge, click the " Scan Stacks Folder" button in the top-right corner's dropdown menu
- Now you should see your stack in the list
Yes or no. Portainer provides a lot of Docker features. While Dockge is currently only focusing on docker-compose with a better user interface and better user experience.
If you want to manage your container with docker-compose only, the answer may be yes.
If you still need to manage something like docker networks, single containers, the answer may be no.
Yes, you can.
Dockge is built on top of Compose V2. compose.yaml
also known as docker-compose.yml
.