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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQzOTk0NTEsIm5iZiI6MTcyNDM5OTE1MSwicGF0aCI6Ii8xMzM2Nzc4LzI4MDc2NzY5MS0yNmE1ODNlMS1lY2IxLTRhOGQtYWVkZi03NjE1N2Q3MTRhZDcucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgyMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MjNUMDc0NTUxWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZDc0OGY4NjBlMjdkNWRiZDA3YWFlYzFmNTQ5MGZmMDJmZjE1ODZhOTRiYjE4OGE5M2M3OTE5NDk5YjE2YTdjYiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.b6nszQn9O7_SC-kFbWgiRjnBVOC5FCpWCExjxSEcIJo)
View Video: https://youtu.be/AWAlOQeNpgU?t=48
- Manage
compose.yaml
- Create/Edit/Start/Stop/Restart/Delete
- Update Docker Images
- Interactive Editor for
compose.yaml
- Interactive Web Terminal
- 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 too
- Convert
docker run ...
commands intocompose.yaml
- File based structure
- Dockge won't kidnap your compose files, they stored on your drive as usual. You can interact with them using normal
docker compose
commands
- Dockge won't kidnap your compose files, they stored on your drive as usual. You can interact with them using normal
Requirements:
- Docker CE 20+ is recommended / Podman
- (Docker only) Docker Compose Plugin
- (Podman only) podman-docker (Debian:
apt install podman-docker
) - OS:
- As long as you can run Docker CE / Podman, it should be fine, but:
- Debian/Raspbian Buster or lower is not supported, please upgrade to Bullseye or higher
- Arch: armv7, arm64, amd64 (a.k.a x86_64)
- Default Stacks Directory:
/opt/stacks
- Default Port: 5001
# Create a directory that stores your stacks and stores dockge's compose.yaml
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 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 change the DOCKGE_STACKS_DIR
environment variable and volumes.
version: "3.8"
services:
dockge:
image: louislam/dockge:1
restart: unless-stopped
ports:
# Host Port:Container Port
- 5001:5001
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./data:/app/data
# If you want to use private registries, you need to share the auth file with Dockge:
# - /root/.docker/:/root/.docker
# Your stacks directory in the host (The paths inside container must be the same as the host)
# β οΈβ οΈ If you did it wrong, your data could end up be written into a wrong path.
# βοΈβοΈβοΈβοΈ CORRECT EXAMPLE: - /my-stacks:/my-stacks (Both paths match)
# ββββ WRONG EXAMPLE: - /docker:/my-stacks (Both paths do not match)
- /opt/stacks:/opt/stacks
environment:
# Tell Dockge where is your stacks directory
- DOCKGE_STACKS_DIR=/opt/stacks
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 do not support for arm64, so I stepped back to Node.js)
If you love this project, please consider giving this project a β.
https://github.com/louislam/dockge/issues
https://github.com/louislam/dockge/discussions
"Dockge" is a coinage word which is created by myself. I hope it sounds like Dodge
.
The naming idea was coming from Twitch emotes like sadge
, bedge
or wokege
. They are all ending with -ge
.
The main objective of Dockge is that try to use 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
- Stats
- File manager
- App store for yaml templates
- Get app icons
- Switch Docker context
- Support Dockerfile and build
- Support Docker swarm
Dockge is built on top of Compose V2. compose.yaml
is also known as docker-compose.yml
.