Skip to content

cmcooper1980/dockge

 
 

Repository files navigation

Dockge

A fancy, easy-to-use and reactive self-hosted docker compose stack-oriented manager forked from louislam/dockge that has had several Pull Requests merged.

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

image

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

Available Architectures

Docker Tag Architecture
pinned version # amd64 / arm64 / armv7
latest

⭐ Features

  • 🧑‍💼 Manage your compose.yaml files
    • 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 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
  • 🚄 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

⭐ Pull Requests Merged:

  • PR #23 Compose override editor (by eliasfloreteng)
  • PR #387 Global.env editor and usage in docker operations (by syko9000)
  • PR #414 Set/Update Friendly Name (by lohrbini)
  • PR #575 Theme Options Enabled in Settings (by CampaniaGuy)
  • PR #582 Remove logging of terminal buffer to console (by black-dragon74)
  • PR #593 Group stacks by [](its agent (by ESPGranEdu)
  • PR #634 Build Frontend During Docker Build (by Jamie-)
  • PR #637 Implement RIGHT and LEFT KEYS terminal navigation (by lukasondrejka)
  • PR #649 Add Container Control Buttons (by mizady)
  • PR #700 Add Resource Usage Stats (by justwiebe)
  • PR #714 Conditional stack files deletion (by husa)
  • PR #724 Adds force delete button when the delete option has failed (by DomiiBunn)
  • PR #730 Add an Update All Button (by DomiiBunn)
  • PR #785 Add Cloudflare Turnstile captcha (by Kambaa)
  • PR #786 Replace editor with Codemirror (by andersmmg)
  • PR #800 Improved stack list ui when using agents (by maca134)
  • PR #813 Fix "Exited" Status when Expected (by Aymendje)
  • PR #822 Add clipboard copy/paste support to terminal component (by Dimariqe)
    • be sure to allow the permission in the browser to take effect
  • PR #827 Fullscreen yaml editor (by Joshua-Beatty)
  • PR #834 Add prune image on update process (by MazziaRick)
  • PR #863 Add Docker Images Management Feature (by felix068)
  • Commit fc96f4e (by Dracrius)
    • switch to a button group and matched existing UI style (no more eye searing stop and restart buttons)
    • Fixed message output to include a space after Service
    • Added Processing prop and Start,Stop,Restart events
  • Commit 789f25a (by Dracrius)
    • Hide container controls if there is only one container
      Final change to PR #649 as there is no need for the container controls if there is only a single container.

🔧 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/cmcooper1980/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 and change the image from louislam/dockge:1 to cmcooper1980/dockge after downloading if you want to use this fork; or see and update the example docker-compose.yml file at the bottom of this page.

Download your compose.yaml

(in the link, change 5001 to your custom port and the /opt/stacks portion to your custom stack location)

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

bash
cd /opt/dockge
docker compose pull && docker compose up -d

Screenshots

image image image image

Others

Dockge is built on top of Compose V2. compose.yaml also known as docker-compose.yml.

compose.yaml file above is great if cloning and building locally, otherwise, you can use this docker-compose.yml file to run docker command: docker compose up -d just edit the appropriate field, [CONFIG_LOCATION_FOR_DOCKGE] (difference from compose.yaml is it does not have the build parameter):

services:
  dockge:
    image: cmcooper1980/dockge:latest
    container_name: dockge
    restart: unless-stopped
    environment:
      # Tell Dockge where your stacks directory is
      DOCKGE_STACKS_DIR: /opt/stacks #must be the same as the source and target bind mounted volume
      # Uncomment the following and enter valid Cloudflare Turnstile keys to activate CAPTCHA
      # *NOTE*: Turnstile should only be enabled on the dockge instance you consider to be the
      #         master if using remote agents, otherwise remote agents will not be able to
      #         connect due to the CAPTCHA challenge and if you must, only expose the master
      #         to the internet for access.
      #- TURNSTILE_SITE_KEY=0x4AAAAAAXXXXXXXX # uncomment this line to activate
      #- TURNSTILE_SECRET_KEY=0x4AAAAAAXXXX   # uncomment this line to activate
    ports:
      # Host Port : Container Port
      - 5001:5001
    volumes:
      - type: bind
        source: /var/run/docker.sock
        target: /var/run/docker.sock
        bind:
          create_host_path: true
      - type: bind
        source: [CONFIG_LOCATION_FOR_DOCKGE] # or wherever you keep your app data
        target: /app/data
        bind:
          create_host_path: true
      # If you want to use private registries, you need to share the auth file with Dockge:
      # - /root/.docker/:/root/.docker

      # Stacks Directory
      # ⚠️ READ IT CAREFULLY. If you did it wrong, your data could end up writing into a WRONG PATH.
      # ⚠️ 1. FULL path only. No relative path (MUST)
      # ⚠️ 2. source: and target: can be your preference but have to match, the environment variable
      #       DOCKGE_STACKS_DIR also has to match and is what tells dockge where your stacks
      #       directory is in the container
      - type: bind
        source: /opt/stacks
        target: /opt/stacks
        bind:
          create_host_path: true

About

A fancy, easy-to-use and reactive self-hosted docker compose stack-oriented manager forked from louislam/dockge that has had several Pull Requests merged.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • TypeScript 49.8%
  • Vue 44.1%
  • SCSS 3.4%
  • JavaScript 1.3%
  • Dockerfile 0.7%
  • Go 0.4%
  • HTML 0.3%