2023-11-11 14:18:37 +00:00
< div align = "center" width = "100%" >
< img src = "./frontend/public/icon.svg" width = "128" alt = "" / >
< / div >
2023-10-23 11:22:45 +00:00
# Dockge
2023-11-11 14:18:37 +00:00
2023-11-12 05:41:15 +00:00
A fancy, easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager.
2023-11-11 14:18:37 +00:00
2023-11-21 12:11:02 +00:00
![GitHub Repo stars ](https://img.shields.io/github/stars/louislam/dockge?logo=github ) ![GitHub issues ](https://img.shields.io/github/issues/louislam/dockge?logo=github ) ![GitHub pull requests ](https://img.shields.io/github/issues-pr/louislam/dockge?logo=github ) ![Docker Pulls ](https://img.shields.io/docker/pulls/louislam/dockge?logo=docker ) ![Docker Image Version (latest semver) ](https://img.shields.io/docker/v/louislam/dockge/latest?label=docker%20image%20ver. ) ![GitHub last commit (branch) ](https://img.shields.io/github/last-commit/louislam/dockge/master?logo=github ) ![GitHub ](https://img.shields.io/github/license/louislam/dockge?logo=github )
2023-11-12 18:26:39 +00:00
2023-11-11 14:18:37 +00:00
< img src = "https://github.com/louislam/dockge/assets/1336778/26a583e1-ecb1-4a8d-aedf-76157d714ad7" width = "900" alt = "" / >
2023-11-12 04:51:36 +00:00
View Video: https://youtu.be/AWAlOQeNpgU?t=48
2023-11-11 16:27:05 +00:00
2023-11-11 14:18:37 +00:00
## ⭐ Features
- Manage `compose.yaml`
2023-11-11 18:11:03 +00:00
- Create/Edit/Start/Stop/Restart/Delete
- Update Docker Images
2023-11-11 14:18:37 +00:00
- 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
2023-11-20 16:06:31 +00:00
- If you love Uptime Kuma's UI/UX, you will love this one too
2023-11-11 14:18:37 +00:00
- Convert `docker run ...` commands into `compose.yaml`
2023-11-11 17:55:11 +00:00
- File based structure
2023-11-21 05:28:04 +00:00
- 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
2023-11-11 17:55:11 +00:00
< img src = "https://github.com/louislam/dockge/assets/1336778/cc071864-592e-4909-b73a-343a57494002" width = 300 / >
2023-11-11 14:18:37 +00:00
2023-11-12 04:51:36 +00:00
![](https://github.com/louislam/dockge/assets/1336778/89fc1023-b069-42c0-a01c-918c495f1a6a)
2023-11-11 14:18:37 +00:00
## 🔧 How to Install
Requirements:
2023-11-29 01:27:40 +00:00
- [Docker ](https://docs.docker.com/engine/install/ ) 20+ / Podman
2023-11-12 18:04:10 +00:00
- (Podman only) podman-docker (Debian: `apt install podman-docker` )
2023-11-21 05:28:04 +00:00
- OS:
2023-11-29 01:27:40 +00:00
- 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)
2023-11-11 14:18:37 +00:00
- Arch: armv7, arm64, amd64 (a.k.a x86_64)
### Basic
2023-11-11 17:55:11 +00:00
- Default Stacks Directory: `/opt/stacks`
- Default Port: 5001
2023-11-11 14:18:37 +00:00
```
2023-11-27 10:58:15 +00:00
# Create directories that store your stacks and stores Dockge's stack
2023-11-11 14:18:37 +00:00
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
2023-11-27 10:58:15 +00:00
# Start the server
2023-11-11 14:18:37 +00:00
docker compose up -d
2023-11-12 18:04:10 +00:00
# If you are using docker-compose V1 or Podman
2023-11-21 05:28:04 +00:00
# docker-compose up -d
2023-11-11 14:18:37 +00:00
```
2023-11-11 17:55:11 +00:00
Dockge is now running on http://localhost:5001
2023-11-11 14:18:37 +00:00
### Advanced
2023-11-27 10:58:15 +00:00
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
2023-11-23 03:03:20 +00:00
```
2023-11-11 14:18:37 +00:00
2023-11-27 10:58:15 +00:00
- port=`5001`
- stacksPath=`/opt/stacks`
Interactive compose.yaml generator is available on:
https://dockge.kuma.pet
2023-11-11 14:18:37 +00:00
## How to Update
```bash
2023-11-12 08:44:49 +00:00
cd /opt/dockge
2023-11-26 15:25:52 +00:00
docker compose pull & & docker compose up -d
2023-11-11 14:18:37 +00:00
```
2023-11-11 16:27:05 +00:00
## Screenshots
2023-11-11 18:38:20 +00:00
![](https://github.com/louislam/dockge/assets/1336778/e7ff0222-af2e-405c-b533-4eab04791b40)
2023-11-11 16:27:05 +00:00
![](https://github.com/louislam/dockge/assets/1336778/7139e88c-77ed-4d45-96e3-00b66d36d871)
![](https://github.com/louislam/dockge/assets/1336778/f019944c-0e87-405b-a1b8-625b35de1eeb)
![](https://github.com/louislam/dockge/assets/1336778/a4478d23-b1c4-4991-8768-1a7cad3472e3)
2023-11-11 14:18:37 +00:00
## 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.
2023-11-20 16:06:31 +00:00
- Try to develop with ES Module + TypeScript (Originally, I planned to use Deno or Bun.js, but they don't have support for arm64, so I stepped back to Node.js)
2023-11-11 14:18:37 +00:00
2023-11-20 16:06:31 +00:00
If you love this project, please consider giving it a ⭐.
2023-11-11 14:18:37 +00:00
2023-11-29 01:27:40 +00:00
## 🗣️ Community and Contribution
2023-11-12 05:41:15 +00:00
2023-11-13 05:47:30 +00:00
### Bug Report
https://github.com/louislam/dockge/issues
### Ask for Help / Discussions
https://github.com/louislam/dockge/discussions
2023-11-12 05:41:15 +00:00
2023-11-29 01:28:47 +00:00
### Translation
2023-11-21 04:15:09 +00:00
If you want to translate Dockge into your language, please read [Translation Guide ](https://github.com/louislam/dockge/blob/master/frontend/src/lang/README.md )
2023-11-29 01:28:47 +00:00
### Create a Pull Request
2023-11-29 01:27:40 +00:00
Be sure to read the [guide ](https://github.com/louislam/dockge/blob/master/CONTRIBUTING.md ), as we don't accept all types of pull requests and don't want to waste your time.
2023-11-11 14:18:37 +00:00
## FAQ
#### "Dockge"?
2023-11-13 05:10:07 +00:00
"Dockge" is a coinage word which is created by myself. I hope it sounds like `Dodge` .
2023-11-11 14:18:37 +00:00
2023-11-20 16:06:31 +00:00
The naming idea came from Twitch emotes like `sadge` , `bedge` or `wokege` . They all end in `-ge` .
2023-11-11 14:18:37 +00:00
#### Can I manage a single container without `compose.yaml`?
2023-11-20 16:06:31 +00:00
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.
2023-11-11 14:18:37 +00:00
#### Can I manage existing stacks?
Yes, you can. However, you need to move your compose file into the stacks directory:
1. Stop your stack
2. Move your compose file into `/opt/stacks/<stackName>/compose.yaml`
3. In Dockge, click the " Scan Stacks Folder" button in the top-right corner's dropdown menu
4. Now you should see your stack in the list
2023-11-29 01:27:40 +00:00
#### Is Dockge a Portainer replcement?
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, signle containers, the answer may be no.
2023-11-11 14:18:37 +00:00
2023-11-29 01:27:40 +00:00
#### Can I install both Dockge and Portainer?
2023-11-11 14:18:37 +00:00
2023-11-29 01:27:40 +00:00
Yes, you can.
2023-11-11 14:18:37 +00:00
2023-11-29 01:27:40 +00:00
## Others
2023-11-11 14:18:37 +00:00
2023-11-20 16:06:31 +00:00
Dockge is built on top of [Compose V2 ](https://docs.docker.com/compose/migrate/ ). `compose.yaml` also known as `docker-compose.yml` .