默认端口是 5001,默认栈目录是 /opt/stacks,改目录要同时改 DOCKGE_STACKS_DIR 和卷映射;卷映射必须宿主机与容器内路径完全一致,否则数据会写到错误路径;要管理已有栈需先把 compose 文件移到 /opt/stacks//compose.yaml 再点 Scan Stacks Folder;用 Podman 或 docker-compose V1 时启动命令要换成 docker-compose up -d。
dockge
louislamMIT活跃维护自托管的 Docker Compose 栈管理面板,用网页界面可视化管理 compose.yaml 文件,支持交互式编辑、启动停止和实时状态更新,省去手敲命令行。
A fancy, easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager
mkdir -p /opt/stacks /opt/dockge
cd /opt/dockge
curl https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml --output compose.yaml
docker compose up -d需要 Docker 20+ 或 Podman(Podman 需装 podman-docker);支持 armv7、arm64、amd64 架构,可在 Ubuntu、Debian Bullseye+、Raspbian Bullseye+、CentOS、Fedora、ArchLinux 上运行;不支持 Windows 和 Debian/Raspbian Buster 及更低版本。README 未提及显存等 GPU 要求。
自托管的 compose.yaml 栈管理器,用网页界面替代命令行管理 Docker Compose 项目
自托管的 Docker Compose 栈管理面板,用网页界面可视化管理 compose.yaml 文件,支持交互式编辑、启动停止和实时状态更新,省去手敲命令行。
核心能力
- 创建、编辑、启停、重启、删除 compose.yaml 栈
- 内置交互式 compose.yaml 编辑器与 Web 终端
- 把 docker run 命令转换成 compose.yaml
- 支持多 agent,在一个界面管理多台 Docker 主机的栈
- 实时显示拉取、启动、停止的进度与终端输出
容易踩的坑
- 1.5.0最新正式版2025-03-30 · 2025-03-30 17:42 UTC
[!WARNING] Breaking change: Due to the security reason, the "Console" feature is now disabled by default. If you need this feature and understand the risk, you can enable it via the environment variable
DOCKGE_ENABLE_CONSOLE=true.🆕 New Features
- Docker client updated to 28.0.4
- Docker Compose updated to 2.34.0
- #767 Console Improvements
⬆️ Improvements
- #642 Remove useless scrollbar (Thanks @cyril59310)
- #473 #507 fix default compose version obsolete (Thanks @cyril59310 @oddysee)
🐛 Bug Fixes
- #685 fix bug #176: preserve YAML comments when reordering items (Thanks @turnah)
- #740 Fix #727 (Thanks @Tor-del)
- #446 Update json-yaml-validate to latest version (Thanks @GrantBirki)
- #617 Fix #356 (Thanks @DomiiBunn)
🦎 Translation Contributions
- #396 #641 Translations update from Kuma Weblate (Thanks @Aluisio @Casp054a @Celer21 @CosmoAbdon @DogukanK @Dumach @Eventyret @Faisalalali @GunnarNorin @Jumala9163 @MatyiFKBT @MrEddX @NexiaMoe @ahmedtalaltwd7 @aindriu80 @albertparlys @altendorfme @brmvnml @bunducdragos @cyril59310 @djismgaming @er2de2 @erkenbilgin @gergepalfi @jgtorcal @k1llo @kiznick @letterlock @marco-doerig @mikeleord @pacoculebras @retmas-gh @rumplin @stanol @teatower @vipnetant @wial88)
- #425 Added Irish language (Thanks @aindriu80)
- #506 Translation keys (Thanks @cyril59310)
⬆️ Security Fixes
- GHSA-7vx4-hf96-mqq6
Others
- Other small changes, code refactoring and comment/doc updates in this repo:
- #636 #766
Please let me know if your username is missing, if your pull request has been merged in this version, or your commit has s been included in one of the pull requests.
- 1.4.22024-01-21 · 2024-01-21 17:02 UTC
查看更新说明
🐛 Bug Fixes
- #380 Fixed the startup issue that Dockge is no longer working after restart
- #342 Fixed the login placeholder issue (Thanks @cyril59310)
🦎 Translation Contributions
- #340 #376 #381 Translations update from Kuma Weblate (Thanks @dng-nguyn @401U @Alanimdeo @MrEddX @NexiaMoe @Yirade @Zaid-maker @catfishlty @cyril59310 @gergepalfi @marco-doerig @nazo6 @oplexz @pacoculebras @queeup @stanol @tomeczekstecc)
- #344 Added Hungarian (Thanks @gergepalfi)
- #377 Added catalan (Thanks @pacoculebras)
- #368 Added translate key (Thanks @cyril59310)
Please let me know if your username is missing, if your pull request has been merged in this version, or your commit has been included in one of the pull requests.
- 1.4.02024-01-03 · 2024-01-03 12:29 UTC
查看更新说明
🆕 New Features
- #200 Initial support for multiple Dockge instances
🦎 Translation Contributions
- #318 #324 Translations update from Kuma Weblate (Thanks @Alanimdeo @Bloeckchengrafik @D3-3109 @FreddieDK @GunnarNorin @MrEddX @NexiaMoe @RappyTV @Zandor300 @abnerssantana @cyril59310 @demonisius @djismgaming @dng-nguyn @leonsk29 @marco-doerig @rumplin @salvacmp @stanol)
- Added a new language: Bahasa Indonesia (Thanks @NexiaMoe)
- #332 Added Vietnamese language (Thanks @dng-nguyn)
Please let me know if your username is missing, if your pull request has been merged in this version, or your commit has been included in one of the pull requests.
How to setup multiple instances
Assume that you have 4 Dockge instances currently.
- Find one Dockge instance as your primary Dockge
- Login to your primary Dockge
- In the homepage, you can connect to other Dockge instances by clicking
New Agent. - Now you should see all instances are online and all stacks across all Dockge instances are in the stack list.
How it works?
- Your browser only need to connect to
Dockge 1.Dockge 2/3/4are connected fromDockge 1. Dockge 1works like a proxy, it will forward requests/responses fromDockge 2/3/4to your browser.
- 1.4.0-beta.0pre-release2023-12-26 · 2023-12-26 12:00 UTC
查看更新说明
🆕 New Features
- #200 Multiple Dockge instances
🦎 Translation Contributions
- #318 Translations update from Kuma Weblate (Thanks @NexiaMoe @leonsk29 @rumplin @GunnarNorin @stanol @FreddieDK @demonisius)
- Added a new language: Bahasa Indonesia (Thanks @NexiaMoe)
Please let me know if your username is missing, if your pull request has been merged in this version, or your commit has been included in one of the pull requests.
How to switch to the beta version?
Open dockge's
compose.yamland change the image tag from1tobetalike:... services: dockge: image: louislam/dockge:beta ...And then update and restart the stack:
docker compose pull docker compose up -dHow to setup multiple instances
Assume that you have 4 Dockge instances currently.
- Find one Dockge instance as your primary Dockge
- Login to your primary Dockge
- In the homepage, you can add new agent. Connect all 3 other Dockge instances.
- Now you should see all instances are online and all stacks across all Dockge instances are in the stack list.
How it works?
- Your browser only need to connect to
Dockge 1.Dockge 2/3/4are connected fromDockge 1. Dockge 1works like a proxy, it will forward requests/responses fromDockge 2/3/4to your browser.
- 1.3.42023-12-16 · 2023-12-16 15:34 UTC
查看更新说明
⬆️ Improvements
- #299 The stack list no longer shows folders without a yaml file (Thanks @Ozy-Viking)
- #285 Improved terminals' width. (Thanks @Ozy-Viking)
🐛 Bug Fixes
- #301 Fixed an envsubst issue that it won't work if the yaml contains non-string primitive types
- #303 Updated Docker Dompose plugin from 2.21.0 to 2.23.3, which may fixed some upstream bugs
🦎 Translation Contributions
- #302 Translations update from Kuma Weblate (Thanks @JinToSek @MrEddX @PeterDaveHello @alexdelprete @cyril59310 @rumplin @stanol @watchakorn-18k)
Please let me know if your username is missing, if your pull request has been merged in this version, or your commit has been included in one of the pull requests.
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Dockge
A fancy, easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager.
View Video: https://youtu.be/AWAlOQeNpgU?t=48
⭐ Features
- 🧑💼 Manage your
compose.yamlfiles- 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 composecommands
- 🚄 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
🔧 How to Install
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)
Basic
- 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 http://localhost:5001
Advanced
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
Also, once compose is generated/downloaded, add the PUID and PGID section below to your compose environment: section to set stack ownership, otherwise default is root
# Both PUID and PGID must be set for it to do anything
- PUID=1000 # Set the stack file/dir ownership to this user
- PGID=1000 # Set the stack file/dir ownership to this group
Interactive compose.yaml generator is available on: https://dockge.kuma.pet
-OR-
Copy and paste your compose from the following:
If you want to store your stacks in another directory, you can change the DOCKGE_STACKS_DIR environment variable and volumes.
compose:
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
# Stacks Directory
# 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 your stacks directory is
- DOCKGE_STACKS_DIR=/opt/stacks
# Both PUID and PGID must be set for it to do anything
- PUID=1000 # Set the stack file/dir ownership to this user
- PGID=1000 # Set the stack file/dir ownership to this group
How to Update
cd /opt/dockge
docker compose pull && docker compose up -d
Screenshots
Motivations
- 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
If you love this project, please consider giving it a ⭐.
🗣️ Community and Contribution
Bug Report
https://github.com/louislam/dockge/issues
Ask for Help / Discussions
https://github.com/louislam/dockge/discussions
Translation
If you want to translate Dockge into your language, please read Translation Guide
Create a Pull Request
Be sure to read the guide, as we don't accept all types of pull requests and don't want to waste your time.
FAQ
"Dockge"?
"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.
Can I manage a single container without compose.yaml?
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.
Can I manage existing stacks?
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
Is Dockge a Portainer replacement?
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.
Can I install both Dockge and Portainer?
Yes, you can.
Others
Dockge is built on top of Compose V2. compose.yaml also known as docker-compose.yml.