2023-10-26 05:23:45 +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-10-23 11:30:58 +00:00
2023-11-10 13:52:38 +00:00
A fancy, easy-to-use and reactive docker `compose.yaml` stack oriented manager.
2023-11-06 15:21:18 +00:00
2023-11-06 16:13:07 +00:00
< img src = "https://github.com/louislam/dockge/assets/1336778/26a583e1-ecb1-4a8d-aedf-76157d714ad7" width = "900" alt = "" / >
2023-11-06 15:52:43 +00:00
2023-10-26 05:23:45 +00:00
## ⭐ Features
2023-10-23 11:30:58 +00:00
2023-11-07 12:47:16 +00:00
- Manage `compose.yaml`
- Interactive Editor for `compose.yaml`
- Interactive Web Terminal
2023-11-06 15:25:54 +00:00
- Reactive
2023-11-07 12:47:16 +00:00
- Everything is just responsive. Progress (Pull/Up/Down) and terminal output are in real-time
2023-11-06 15:25:54 +00:00
- Easy-to-use & fancy UI
- If you love Uptime Kuma's UI/UX, you will love this too
2023-11-07 12:47:16 +00:00
- Convert `docker run ...` commands into `compose.yaml`
2023-10-23 11:30:58 +00:00
2023-11-06 14:54:20 +00:00
## 🔧 How to Install
2023-11-10 13:52:38 +00:00
### Basic
Default stacks directory is `/opt/stacks` .
```
# Create a directory that stores your stacks
mkdir -p /opt/stacks
# Create a directory that stores dockge's compose.yaml
mkdir -p /opt/dockge
cd /opt/dockge
# Download the compose.yaml
wget https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml
# Start Server
docker-compose up -d
```
### Advanced
If you want to store your stacks in another directory, you can change the `DOCKGE_STACKS_DIR` environment variable and volumes.
For exmaples, if you want to store your stacks in `/my-stacks` :
2023-11-06 14:54:20 +00:00
```yaml
version: "3.8"
services:
dockge:
2023-11-10 13:52:38 +00:00
image: louislam/dockge:1
restart: unless-stopped
2023-11-06 14:54:20 +00:00
ports:
- 5001:5001
volumes:
- /var/run/docker.sock:/var/run/docker.sock
2023-11-10 13:52:38 +00:00
- ./data:/app/data
# Your stacks directory in the host
# (The paths inside container must be the same as the host)
- /my-stacks:/my-stacks
environment:
# Tell Dockge where is your stacks directory
- DOCKGE_STACKS_DIR=/my-stacks
2023-11-06 14:54:20 +00:00
```
2023-10-23 11:30:58 +00:00
## Motivations
2023-11-06 07:15:55 +00:00
- 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-05 17:18:02 +00:00
- Try to develop with ES Module + TypeScript (Originally, I planned to use Deno or Bun.js, but they do not support for arm64, so I stepped back to Node.js)
2023-10-26 05:23:45 +00:00
If you love this project, please consider giving this project a ⭐.
2023-10-23 11:30:58 +00:00
2023-11-06 15:25:54 +00:00
2023-11-06 15:51:08 +00:00
## FAQ
2023-11-06 15:25:54 +00:00
2023-11-06 15:51:08 +00:00
#### "Dockge"?
"Dockge" is a coinage word which is created by myself. I hope it sounds like `Badge` but replacing with `Dock` - `Dock-ge` .
The naming idea was coming from Twitch emotes like `sadge` , `bedge` or `wokege` . They are all ending with `-ge` .
If you are not comfortable with the pronunciation, you can call it `Dockage`
2023-11-06 15:25:54 +00:00
2023-11-10 13:52:38 +00:00
#### Can I manage a single container without `compose.yaml`?
The main objective of Dockge is that try to use docker `compose.yaml` for everything. If you want to manage a single container, you can just use Portainer or Docker CLI.
2023-10-26 05:23:45 +00:00
## More Ideas?
2023-10-23 11:30:58 +00:00
2023-11-05 17:18:02 +00:00
- Stats
- File manager
2023-10-26 05:23:45 +00:00
- App store for yaml templates
- Get app icons
- Switch Docker context
2023-10-29 07:25:52 +00:00
- Support Dockerfile and build
- Support Docker swarm
2023-11-05 17:18:02 +00:00
2023-11-06 15:55:22 +00:00
# Others
Dockge is built on top of [Compose V2 ](https://docs.docker.com/compose/migrate/ ). `compose.yaml` is also known as `docker-compose.yml` .