Deploy Dockge on Ubuntu — the reactive Docker Compose stack manager with a live terminal, from the creator of Uptime Kuma.
Grab the automated bash script from GitHub to follow along with the video.
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/management/dockge/dockge-ubuntu.sh
chmod +x dockge-ubuntu.sh
sudo bash dockge-ubuntu.sh
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/management/dockge/dockge-ubuntu.sh
chmod +x dockge-ubuntu.sh
The script installs Docker if needed, then deploys Dockge with stack storage at /opt/stacks automatically.
sudo bash dockge-ubuntu.sh
Open your browser and navigate to:
http://<your-server-ip>:5001
Create and deploy Docker Compose stacks directly from the Dockge web interface.
# In the Dockge UI:
# 1. Click "+ Compose" to create a new stack
# 2. Paste your docker-compose.yml content
# 3. Click "Deploy" — Dockge runs docker compose up -d
# Or add an existing stack:
# Place your compose file in /opt/stacks/your-stack-name/compose.yaml
# Dockge detects it automatically
| Port | Purpose |
|---|---|
| 5001 | Dockge Web UI |
Dockge is a self-hosted, reactive Docker Compose stack management UI created by the author of Uptime Kuma. Unlike Portainer's full-featured container management, Dockge is laser-focused on Docker Compose stacks: you write and edit compose files in a live web editor, deploy with one click, and watch the terminal output in real time. Every stack is stored as a plain docker-compose.yml file in /opt/stacks/ — there is no proprietary database to lock you in. The reactive UI updates container status, resource usage, and logs live without page refreshes. It is the ideal middle ground between editing compose files in a terminal and the overhead of full Portainer management.
Portainer is powerful but adds abstraction layers over compose files and stores stack state in its own database. Dockge keeps everything in plain docker-compose.yml files — you can manage them with git, edit them in Dockge's live UI, or fall back to the terminal at any time. The live terminal inside the browser means you never need to SSH just to watch docker compose up output. For operators who think in compose files, Dockge feels like a natural extension of the CLI rather than a replacement for it.
Dockge runs on port 5001 by default. Restrict this port to your local network or VPN — Dockge has full Docker access and should not be exposed to the public internet. The Docker socket mount (/var/run/docker.sock) is required for Dockge to manage containers. The stacks directory (/opt/stacks) must be mounted to persist compose files across container restarts.
Portainer (full-featured UI for containers, images, networks, and volumes — more powerful but more complex), Yacht (simpler UI, template-based deployment), Lazydocker (terminal UI, no browser needed), Kompose (for Kubernetes migration from compose). Dockge is the right choice when you want compose-file-native management with a browser UI and zero abstraction overhead.
Skip Dockge if you need to manage individual containers not defined in compose files — use Portainer instead. Also skip it for Kubernetes or Docker Swarm workloads — Dockge only understands Docker Compose. If your entire workflow is already terminal-based and you are comfortable with docker compose commands, Dockge adds a browser UI but no fundamental new capability.
PrismaTechWork provides end-to-end infrastructure services — from initial deployment and security hardening to ongoing monitoring, automated backups, and dedicated support. Whether you need a single-server setup or a multi-site network, our team ensures your infrastructure is built right, secured properly, and maintained reliably.
Portainer is a comprehensive Docker management platform covering containers, images, networks, volumes, stacks, registries, and users — powerful but complex. Dockge is compose-focused only: it manages Docker Compose stacks, stores them as plain yml files, and provides a live terminal. Dockge is far simpler and lighter. Choose Portainer if you need full Docker management; choose Dockge if you work exclusively with compose files and want a clean, fast UI.
Dockge stores all stacks in /opt/stacks/ on the host, mounted into the container. Each stack lives in its own subdirectory: /opt/stacks/STACK-NAME/compose.yaml. These are plain YAML files you can edit with any text editor, manage with git, or manipulate with docker compose CLI commands directly — Dockge adds no proprietary format or database. This makes Dockge stacks fully portable and independent of the tool.
Yes. Copy any existing docker-compose.yml into /opt/stacks/STACK-NAME/compose.yaml (note: the filename must be compose.yaml, not docker-compose.yml). Dockge auto-detects the file and displays the stack in the UI. If the stack was already running before the import, Dockge shows it as running and lets you manage it from the UI. No import wizard or special steps are required.
Yes, but each Dockge instance manages only its own host. Install a separate Dockge on each server you want to manage — they are independent. Access each server's Dockge via its own URL. There is no built-in multi-server aggregation view. For multi-server management from one UI, Portainer Business Edition has agent-based multi-server support. For homelab use, separate Dockge instances per server is the typical approach.
Yes — but be careful not to edit the same file simultaneously in both places. Since compose files are stored as plain files in /opt/stacks/, you can edit them with nano or vim on the server and Dockge will reflect the changes on the next page load. The recommended workflow: use Dockge for routine edits and the terminal for complex refactors. Avoid editing a running stack's compose file outside Dockge while Dockge has it open.
Yes. Place a .env file in the same directory as the compose.yaml (/opt/stacks/STACK-NAME/.env). Dockge's compose editor picks it up automatically, and the variables are substituted when the stack is deployed — the same behaviour as docker compose up with a .env file. You can also edit the .env file directly in the Dockge UI alongside the compose.yaml for a fully browser-based workflow.
Dockge is widely used in production for homelab and small-team environments. It is actively maintained by the creator of Uptime Kuma and receives regular updates. For enterprise production (multi-server, RBAC, audit logs, Kubernetes), Portainer Enterprise or Kubernetes-native tools are more appropriate. For single-server or small multi-server compose deployments, Dockge is reliable and production-suitable.
Dockge can manually pull new images and recreate stacks: open the stack, click Pull, then Deploy. This is a manual, one-click update — not automatic. For automatic scheduled updates, combine Dockge with Watchtower: Dockge handles your compose file editing and manual deployments, while Watchtower handles overnight automatic image pulls and container recreation. The two tools complement each other well.