[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-3681":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":40,"readmeContent":41,"aiSummary":42,"trendingCount":16,"starSnapshotCount":16,"syncStatus":43,"lastSyncTime":44,"discoverSource":45},3681,"dockge","louislam\u002Fdockge","louislam","A fancy, easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager","https:\u002F\u002Fdockge.kuma.pet",null,"TypeScript",23472,757,90,105,0,16,80,308,74,118.64,"MIT License",false,"master",true,[27,28,29,30,31,32,33,34,35,36,37,38,39],"docker","docker-compose","docker-deployment","docker-stack","docker-stack-deploy","docker-ui","responsive","self-hosted","selfhosted","single-page-app","socket-io","webapp","websocket","2026-06-12 04:00:19","\u003Cdiv align=\"center\" width=\"100%\">\n    \u003Cimg src=\".\u002Ffrontend\u002Fpublic\u002Ficon.svg\" width=\"128\" alt=\"\" \u002F>\n\u003C\u002Fdiv>\n\n# Dockge\n\nA fancy, easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager.\n\n[![GitHub Repo stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Flouislam\u002Fdockge?logo=github&style=flat)](https:\u002F\u002Fgithub.com\u002Flouislam\u002Fdockge) [![Docker Pulls](https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fpulls\u002Flouislam\u002Fdockge?logo=docker)](https:\u002F\u002Fhub.docker.com\u002Fr\u002Flouislam\u002Fdockge\u002Ftags) [![Docker Image Version (latest semver)](https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fv\u002Flouislam\u002Fdockge\u002Flatest?label=docker%20image%20ver.)](https:\u002F\u002Fhub.docker.com\u002Fr\u002Flouislam\u002Fdockge\u002Ftags) [![GitHub last commit (branch)](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002Flouislam\u002Fdockge\u002Fmaster?logo=github)](https:\u002F\u002Fgithub.com\u002Flouislam\u002Fdockge\u002Fcommits\u002Fmaster\u002F)\n\n\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Flouislam\u002Fdockge\u002Fassets\u002F1336778\u002F26a583e1-ecb1-4a8d-aedf-76157d714ad7\" width=\"900\" alt=\"\" \u002F>\n\nView Video: https:\u002F\u002Fyoutu.be\u002FAWAlOQeNpgU?t=48\n\n## ⭐ Features\n\n- 🧑‍💼 Manage your `compose.yaml` files\n  - Create\u002FEdit\u002FStart\u002FStop\u002FRestart\u002FDelete\n  - Update Docker Images\n- ⌨️ Interactive Editor for `compose.yaml`\n- 🦦 Interactive Web Terminal\n- 🕷️ (1.4.0 🆕) Multiple agents support - You can manage multiple stacks from different Docker hosts in one single interface\n- 🏪 Convert `docker run ...` commands into `compose.yaml`\n- 📙 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\n\n\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Flouislam\u002Fdockge\u002Fassets\u002F1336778\u002Fcc071864-592e-4909-b73a-343a57494002\" width=300 \u002F>\n\n- 🚄 Reactive - Everything is just responsive. Progress (Pull\u002FUp\u002FDown) and terminal output are in real-time\n- 🐣 Easy-to-use & fancy UI - If you love Uptime Kuma's UI\u002FUX, you will love this one too\n\n![](https:\u002F\u002Fgithub.com\u002Flouislam\u002Fdockge\u002Fassets\u002F1336778\u002F89fc1023-b069-42c0-a01c-918c495f1a6a)\n\n## 🔧 How to Install\n\nRequirements:\n- [Docker](https:\u002F\u002Fdocs.docker.com\u002Fengine\u002Finstall\u002F) 20+ \u002F Podman\n- (Podman only) podman-docker (Debian: `apt install podman-docker`)\n- OS:\n  - Major Linux distros that can run Docker\u002FPodman such as:\n     - ✅ Ubuntu\n     - ✅ Debian (Bullseye or newer)\n     - ✅ Raspbian (Bullseye or newer)\n     - ✅ CentOS\n     - ✅ Fedora\n     - ✅ ArchLinux\n  - ❌ Debian\u002FRaspbian Buster or lower is not supported\n  - ❌ Windows (Will be supported later)\n- Arch: armv7, arm64, amd64 (a.k.a x86_64)\n\n### Basic\n\n- Default Stacks Directory: `\u002Fopt\u002Fstacks`\n- Default Port: 5001\n\n```\n# Create directories that store your stacks and stores Dockge's stack\nmkdir -p \u002Fopt\u002Fstacks \u002Fopt\u002Fdockge\ncd \u002Fopt\u002Fdockge\n\n# Download the compose.yaml\ncurl https:\u002F\u002Fraw.githubusercontent.com\u002Flouislam\u002Fdockge\u002Fmaster\u002Fcompose.yaml --output compose.yaml\n\n# Start the server\ndocker compose up -d\n\n# If you are using docker-compose V1 or Podman\n# docker-compose up -d\n```\n\nDockge is now running on http:\u002F\u002Flocalhost:5001\n\n### Advanced\n\nIf 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.\n\n```\n# Download your compose.yaml\ncurl \"https:\u002F\u002Fdockge.kuma.pet\u002Fcompose.yaml?port=5001&stacksPath=\u002Fopt\u002Fstacks\" --output compose.yaml\n```\n\n- port=`5001`\n- stacksPath=`\u002Fopt\u002Fstacks`\n\nAlso, once compose is generated\u002Fdownloaded, add the `PUID` and `PGID` section below to your compose `environment:` section to set stack ownership, otherwise default is `root`\n\n```\n      # Both PUID and PGID must be set for it to do anything\n      - PUID=1000 # Set the stack file\u002Fdir ownership to this user\n      - PGID=1000 # Set the stack file\u002Fdir ownership to this group\n```\n\nInteractive compose.yaml generator is available on: \nhttps:\u002F\u002Fdockge.kuma.pet\n\n### -OR-\nCopy and paste your compose from the following:\n\nIf you want to store your stacks in another directory, you can change the `DOCKGE_STACKS_DIR` environment variable and volumes.\n\ncompose:\n```\nservices:\n  dockge:\n    image: louislam\u002Fdockge:1\n    restart: unless-stopped\n    ports:\n      # Host Port:Container Port\n      - 5001:5001\n    volumes:\n      - \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock\n      - .\u002Fdata:\u002Fapp\u002Fdata\n        \n      # If you want to use private registries, you need to share the auth file with Dockge:\n      # - \u002Froot\u002F.docker\u002F:\u002Froot\u002F.docker\n\n      # Stacks Directory\n      # Your stacks directory in the host (The paths inside container must be the same as the host)\n      # ⚠️ If you did it wrong, your data could end up be written into a wrong path.\n      # ✔️ CORRECT EXAMPLE: - \u002Fmy-stacks:\u002Fmy-stacks (Both paths match)\n      # ❌ WRONG EXAMPLE: - \u002Fdocker:\u002Fmy-stacks (Both paths do not match)\n      - \u002Fopt\u002Fstacks:\u002Fopt\u002Fstacks\n    environment:\n      # Tell Dockge where your stacks directory is\n      - DOCKGE_STACKS_DIR=\u002Fopt\u002Fstacks\n      # Both PUID and PGID must be set for it to do anything\n      - PUID=1000 # Set the stack file\u002Fdir ownership to this user\n      - PGID=1000 # Set the stack file\u002Fdir ownership to this group\n```\n\n## How to Update\n\n```bash\ncd \u002Fopt\u002Fdockge\ndocker compose pull && docker compose up -d\n```\n\n## Screenshots\n\n![](https:\u002F\u002Fgithub.com\u002Flouislam\u002Fdockge\u002Fassets\u002F1336778\u002Fe7ff0222-af2e-405c-b533-4eab04791b40)\n\n\n![](https:\u002F\u002Fgithub.com\u002Flouislam\u002Fdockge\u002Fassets\u002F1336778\u002F7139e88c-77ed-4d45-96e3-00b66d36d871)\n\n![](https:\u002F\u002Fgithub.com\u002Flouislam\u002Fdockge\u002Fassets\u002F1336778\u002Ff019944c-0e87-405b-a1b8-625b35de1eeb)\n\n![](https:\u002F\u002Fgithub.com\u002Flouislam\u002Fdockge\u002Fassets\u002F1336778\u002Fa4478d23-b1c4-4991-8768-1a7cad3472e3)\n\n\n## Motivations\n\n- 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.\n- Try to develop with ES Module + TypeScript\n\nIf you love this project, please consider giving it a ⭐.\n\n\n## 🗣️ Community and Contribution\n\n### Bug Report\nhttps:\u002F\u002Fgithub.com\u002Flouislam\u002Fdockge\u002Fissues\n\n### Ask for Help \u002F Discussions\nhttps:\u002F\u002Fgithub.com\u002Flouislam\u002Fdockge\u002Fdiscussions\n\n### Translation\nIf you want to translate Dockge into your language, please read [Translation Guide](https:\u002F\u002Fgithub.com\u002Flouislam\u002Fdockge\u002Fblob\u002Fmaster\u002Ffrontend\u002Fsrc\u002Flang\u002FREADME.md)\n\n### Create a Pull Request\n\nBe sure to read the [guide](https:\u002F\u002Fgithub.com\u002Flouislam\u002Fdockge\u002Fblob\u002Fmaster\u002FCONTRIBUTING.md), as we don't accept all types of pull requests and don't want to waste your time.\n\n## FAQ\n\n#### \"Dockge\"?\n\n\"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.\n\nThe naming idea came from Twitch emotes like `sadge`, `bedge` or `wokege`. They all end in `-ge`.\n\n#### Can I manage a single container without `compose.yaml`?\n\nThe 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.\n\n#### Can I manage existing stacks?\n\nYes, you can. However, you need to move your compose file into the stacks directory:\n\n1. Stop your stack\n2. Move your compose file into `\u002Fopt\u002Fstacks\u002F\u003CstackName>\u002Fcompose.yaml`\n3. In Dockge, click the \" Scan Stacks Folder\" button in the top-right corner's dropdown menu\n4. Now you should see your stack in the list\n\n#### Is Dockge a Portainer replacement?\n\nYes 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.\n\nIf you want to manage your container with docker-compose only, the answer may be yes.\n\nIf you still need to manage something like docker networks, single containers, the answer may be no.\n\n#### Can I install both Dockge and Portainer?\n\nYes, you can.\n\n## Others\n\nDockge is built on top of [Compose V2](https:\u002F\u002Fdocs.docker.com\u002Fcompose\u002Fmigrate\u002F). `compose.yaml`  also known as `docker-compose.yml`.\n","Dockge 是一个美观易用且响应式的自托管 Docker compose.yaml 堆栈管理器。它允许用户创建、编辑、启动、停止、重启和删除 `compose.yaml` 文件，并支持更新 Docker 镜像。项目提供了交互式 `compose.yaml` 编辑器和 Web 终端，还能够将 `docker run ...` 命令转换为 `compose.yaml` 文件。此外，Dockge 支持多代理管理，可以在单一界面中管理来自不同 Docker 主机的多个堆栈。其基于文件的结构确保了配置文件不会被锁定，而是存储在用户的驱动器上，便于使用常规的 `docker compose` 命令进行操作。该项目具有高度响应性，所有操作进度和终端输出均为实时显示。Dockge 适合需要通过直观友好的界面来管理和部署 Docker 应用程序的开发者或运维人员使用。",2,"2026-06-11 02:55:29","top_language"]