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
- π§βπΌ 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 #414: Set/Update Friendly Name (by https://github.com/lohrbini)
- PR #438: Docker Compose Pull Skip Local Images (by https://github.com/vladaurosh)
- PR #575: Theme Options Enabled in Settings (by https://github.com/CampaniaGuy)
- PR #576: Add an Update All Button (by https://github.com/DomiiBunn)
- PR #593: Group stacks by its agent (by https://github.com/ESPGranEdu)
- PR #623: Added Support for Pasting Text in the Terminal (by https://github.com/lukasondrejka)
- 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 #642: Remove Useless Scrollbar (by https://github.com/cyril59310)
- PR #649: Add Container Control Buttons (by https://github.com/mizady)
- PR #685: Preserve YAML Comments (by https://github.com/turnah)
- PR #700: Add Resource Usage Stats (by https://github.com/justwiebe)
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.
# 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
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 fields [USER]
, [CONFIG_LOCATION_FOR_DOCKGE]
, and [PATH_TO_STACKS_DIRECTORY]
:
services:
dockge:
image: cmcooper1980/dockge:experimental
container_name: dockge
restart: unless-stopped
environment:
# Tell Dockge where is your stacks directory
DOCKGE_STACKS_DIR: /opt/stacks
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: /home/[USER]/[CONFIG_LOCATION_FOR_DOCKGE]
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. Left Stacks Path === Right Stacks Path (MUST)
- type: bind
source: /home/[USER]/[PATH_TO_STACKS_DIRECTORY]
target: /opt/stacks
bind:
create_host_path: true