A fancy, easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager
Go to file
syko9000 a8d95d06b9
UI for editing .env file (#218)
* Add .env file editing with syntax highlighting

* Add example env file to new compose

* Changed .env editing section title

* Better stack constuctor parameter order

* Minor

---------

Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
2023-12-03 18:12:54 +08:00
.github Add ARM github runner and change Node.js version (#210) 2023-11-29 14:59:39 +08:00
backend UI for editing .env file (#218) 2023-12-03 18:12:54 +08:00
docker WIP (#211) 2023-11-30 16:10:37 +08:00
extra Add pnpm run reset-password (#212) 2023-11-30 16:11:00 +08:00
frontend UI for editing .env file (#218) 2023-12-03 18:12:54 +08:00
.dockerignore Init (#1) 2023-11-11 22:18:37 +08:00
.editorconfig Init (#1) 2023-11-11 22:18:37 +08:00
.eslintrc.cjs ESLint, update vite to 5.0.0 and other dependencies (#63) 2023-11-18 13:59:40 +08:00
.gitignore Init (#1) 2023-11-11 22:18:37 +08:00
compose.yaml Update compose.yaml 2023-11-28 00:53:18 +08:00
CONTRIBUTING.md Update CONTRIBUTING.md 2023-11-26 18:53:17 +08:00
LICENSE Init (#1) 2023-11-11 22:18:37 +08:00
package.json Add pnpm run reset-password (#212) 2023-11-30 16:11:00 +08:00
pnpm-lock.yaml Add @actions/github 2023-11-22 01:12:54 +08:00
README.md Update README.md 2023-11-29 09:28:47 +08:00
SECURITY.md Add workflows, templates and docs (#134) 2023-11-22 00:55:34 +08:00
tsconfig.json Add workflows, templates and docs (#134) 2023-11-22 00:55:34 +08:00

Dockge

A fancy, easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager.

GitHub Repo stars GitHub issues GitHub pull requests Docker Pulls Docker Image Version (latest semver) GitHub last commit (branch) GitHub

View Video: https://youtu.be/AWAlOQeNpgU?t=48

Features

  • Manage compose.yaml
    • Create/Edit/Start/Stop/Restart/Delete
    • Update Docker Images
  • 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
    • If you love Uptime Kuma's UI/UX, you will love this one too
  • Convert docker run ... commands into compose.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

🔧 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)
  • 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

Interactive compose.yaml generator is available on: https://dockge.kuma.pet

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 (Originally, I planned to use Deno or Bun.js, but they don't have support for arm64, so I stepped back to Node.js)

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 hope it sounds like Dodge.

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:

  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

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.

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.