A fancy, easy-to-use and reactive self-hosted docker compose stack-oriented manager forked from louislam/dockge that has had several Pull Requests merged.
View Video: https://youtu.be/AWAlOQeNpgU?t=48
Docker Tag | Architecture |
---|---|
arm64 | arm64 |
latest | x86-64 |
- π§βπΌ 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
- π 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
- PR #387: Global.env editor and usage in docker operations (by: https://github.com/syko9000)
- PR #414: Set/Update Friendly Name (by https://github.com/lohrbini)
- PR #575: Theme Options Enabled in Settings (by https://github.com/CampaniaGuy)
- PR #593: Group stacks by its agent (by https://github.com/ESPGranEdu)
- PR #634: Build Frontend During Docker Build (by https://github.com/Jamie-)
- PR #637: Implement RIGHT and LEFT KEYS terminal navigation (by https://github.com/lukasondrejka)
- PR #649: Add Container Control Buttons (by https://github.com/mizady)
- PR #700: Add Resource Usage Stats (by https://github.com/justwiebe)
- PR #714: Conditional stack files deletion (by: https://github.com/husa)
- PR #724: Adds force delete button when the delete option has failed (by: https://github.com/DomiiBunn)
- PR #730: Add an Update All Button (by https://github.com/DomiiBunn)
- PR #785: Add Cloudflare Turnstile captcha (by https://github.com/Kambaa)
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/cmcooper1980/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 http://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 and change the image from louislam/dockge:1
to cmcooper1980/dockge
after downloading if you want to use this fork; or see and update the example docker-compose.yml file at the bottom of this page.
(in the link, change 5001 to your custom port and the /opt/stacks portion to your custom stack location)
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
bash
cd /opt/dockge
docker compose pull && docker compose up -d
Dockge is built on top of Compose V2. compose.yaml
also known as docker-compose.yml
.
compose.yaml
file above is great if cloning and building locally, otherwise, you can use this docker-compose.yml
file to run docker command:
docker compose up -d
just edit the approprite field, [CONFIG_LOCATION_FOR_DOCKGE]
(difference from compose.yaml is it does not have the build parameter):
services:
dockge:
image: cmcooper1980/dockge:latest
container_name: dockge
restart: unless-stopped
environment:
# Tell Dockge where your stacks directory is
DOCKGE_STACKS_DIR: /opt/stacks #must be the same as the source and target bind mounted volume
# Uncomment the following and enter valid Cloudflare Turnstile keys to activate CAPTCHA
# *NOTE*: Turnstile should only be enabled on the dockge instance you consider to be the
# master if using remote agents, otherwise remote agents will not be able to
# connect due to the CAPTCHA challenge and if you must, only expose the master
# to the internet for access.
#- TURNSTILE_SITE_KEY=0x4AAAAAAXXXXXXXX # uncomment this line to activate
#- TURNSTILE_SECRET_KEY=0x4AAAAAAXXXX # uncomment this line to activate
ports:
# Host Port : Container Port
- 5001:5001
volumes:
- type: bind
source: /var/run/docker.sock
target: /var/run/docker.sock
bind:
create_host_path: true
- type: bind
source: [CONFIG_LOCATION_FOR_DOCKGE] # or wherever you keep your app data
target: /app/data
bind:
create_host_path: true
# If you want to use private registries, you need to share the auth file with Dockge:
# - /root/.docker/:/root/.docker
# Stacks Directory
# β οΈ READ IT CAREFULLY. If you did it wrong, your data could end up writing into a WRONG PATH.
# β οΈ 1. FULL path only. No relative path (MUST)
# β οΈ 2. source: and target: can be your preference but have to match, the environment variable
# DOCKGE_STACKS_DIR also has to match and is what tells dockge where your stacks
# directory is in the container
- type: bind
source: /opt/stacks
target: /opt/stacks
bind:
create_host_path: true