https://github.com/shubh-io/DockMate
Dockmate: The open-source Docker TUI & Podman manager for terminal productivity. A fast, lightweight alternative to lazydocker built in Go.
https://github.com/shubh-io/DockMate
bubble-tea container container-management containers devops-tools docker docker-application docker-compose docker-container docker-monitoring docker-tui dockmate dockmate-tui go golang monitoring-tool podman podman-tui tui tui-app
Last synced: 2 months ago
JSON representation
Dockmate: The open-source Docker TUI & Podman manager for terminal productivity. A fast, lightweight alternative to lazydocker built in Go.
- Host: GitHub
- URL: https://github.com/shubh-io/DockMate
- Owner: shubh-io
- License: mit
- Created: 2025-12-06T14:11:59.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-01-14T06:52:19.000Z (3 months ago)
- Last Synced: 2026-01-14T10:31:38.478Z (3 months ago)
- Topics: bubble-tea, container, container-management, containers, devops-tools, docker, docker-application, docker-compose, docker-container, docker-monitoring, docker-tui, dockmate, dockmate-tui, go, golang, monitoring-tool, podman, podman-tui, tui, tui-app
- Language: Go
- Homepage:
- Size: 49.4 MB
- Stars: 206
- Watchers: 2
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
DockMate π³
A terminal-based Docker container manager that actually works.
> **Note**: Previously named **DockWatch**.

---
## π₯ Installation
### πΊ Homebrew (Recommended)
Works on Linux & macOS.
```bash
brew install shubh-io/tap/dockmate
```
### π¦ Quick Install Script
```bash
curl -fsSL https://raw.githubusercontent.com/shubh-io/DockMate/main/install.sh | sh
```
Click for Manual Install, Source Build & Verification
### User-local Installation
If you lack `sudo` access or prefer local bins:
```bash
curl -fsSL https://raw.githubusercontent.com/shubh-io/DockMate/main/install.sh | INSTALL_DIR=$HOME/.local/bin sh
```
*Ensure `$HOME/.local/bin` is in your PATH.*
### Build from Source
Requires **Go 1.24+**:
```bash
git clone 'https://github.com/shubh-io/DockMate'
cd DockMate
go build -o dockmate
sudo mv dockmate /usr/local/bin/
```
### Verifying Downloads
Releases include SHA256 checksums.
```bash
# Example verification
curl -fsSL -o dockmate https://.../dockmate-linux-amd64
curl -fsSL -o dockmate.sha256 https://.../dockmate-linux-amd64.sha256
sha256sum -c dockmate.sha256
```
Click for Update Guide π
### Standard Methods
| Method | Command |
| :--- | :--- |
| **Homebrew** | `brew upgrade shubh-io/tap/dockmate` |
| **Built-in** | `dockmate update` |
### π οΈ Force Re-install / Troubleshooting
If `dockmate update` reports success but the version does not change, re-run the installer to force-replace the binary:
```bash
# curl
curl -fsSL https://raw.githubusercontent.com/shubh-io/DockMate/main/install.sh | sh
# wget
wget -qO- https://raw.githubusercontent.com/shubh-io/DockMate/main/install.sh | sh
```
**Custom Directory Users:**
If you originally installed to a custom location (e.g., `~/.local/bin`), you must specify it again to avoid installing to the default path:
```bash
curl -fsSL https://raw.githubusercontent.com/shubh-io/DockMate/main/install.sh | INSTALL_DIR="$HOME/.local/bin" sh
```
Click for Troubleshooting Guideβ
## Troubleshooting
### "Permission Denied" when running Compose actions
If the app fails to enter a directory, it is likely a filesystem permission mismatch between your current user and the project folder.
#### Symptoms
You see an error similar to this in the logs or terminal:
> `Error: compose error (docker up): chdir /home/dockertest/my-app: permission denied`
#### The Fix
Ensure your user has ownership of the project directory.
**Example Case:**
If your project is located at `~/path/to-your-folder/`, run:
```bash
# Replace '~/path/to-your-folder/' with your actual project path
sudo chown -R $USER:$USER ~/path/to-your-folder/
```
**Technical Note:**
This command recursively (`-R`) changes the owner to your current logged-in user (`$USER`). This grants **DockMate** the necessary permissions to execute compose commands within that directory.
---
## π Key Features
DockMate is the `htop` for Docker-lightweight, keyboard-driven, and zero-config.
* **β‘ Real-time Monitoring:** Stats for CPU, Memory, Disk I/O, Network, etc.
* **π¦ Compose Management:** Full lifecycle control for Docker Compose and Podman Compose projects.
* **β¨οΈ Instant Control:** Start (`s`), Stop (`x`), Restart (`r`), and Remove (`d`) containers with single keystrokes.
* **π Debugging:** View logs (`l`) or spawn an interactive shell (`e`) instantly.
* **π³ Multi-Runtime:** Native support for **Docker** and **Podman**.
* **π Deep Info Panel:** View Compose metadata, project directories, and source paths.
* **βοΈ Persistent Settings:**
* * **Custom Shell:** Defaults to `/bin/sh`, but configurable to `/bin/bash`, `/bin/zsh`, etc.
* * **Refresh Rates:** Configurable Refresh Interval.
* * **State Saving:** Remembers your runtime (Docker/Podman) and column layouts on restart.
---
## β¨οΈ Controls
Run `dockmate` to start.
### Navigation & Global
| Key | Action |
| --- | --- |
| `β/β` or `j/k` | Move cursor up/down |
| `β/β`| Navigate pages |
| `Tab` | Toggle column selection mode |
| `Enter` | Sort by selected column |
| `l` / `i` / `c` | Toggle **L**ogs / **I**nfo / **C**ompose view |
| `F1` | Help Menu |
| `F2` | Settings |
| `Esc` / `q` | Back / Quit |
### Container Actions (Single)
| Key | Action |
| --- | --- |
| `s` | **S**tart container |
| `x` | Stop container (E**x**it) |
| `r` | **R**estart container |
| `d` | **D**elete container |
| `e` | Open interactive shell (**E**xec) |
### Compose Project Actions (Grouped)
| Key | Action |
| --- | --- |
| `u` / `U` | **U**p (Create & Start all services) |
| `x` / `X` | Stop all services |
| `r` / `R` | **R**estart entire project |
| `p` / `P` | **P**ause / Unpause project |
| `d` / `D` | **D**own (Stop & Remove containers/networks) |
---
## π οΈ Configuration & Runtimes
**Switching Runtimes (Docker β Podman)**
* **In-App:** Open Settings, toggle Runtime, and Save.
* **CLI:** Run `dockmate --runtime` to launch the interactive selector.
**Configuration File**
Settings are saved to `~/.config/dockmate/config.yml`. You can manually edit this to change defaults for refresh rates, preferred shell, and column visibility.
---
## π Why DockMate?
### DockMate vs LazyDocker
| Feature | DockMate | LazyDocker |
| :--- | :--- | :--- |
| **Philosophy** | β‘ **Speed & Simplicity** | π§° Feature-rich Power User |
| **Engine Support** | β
**Docker + Podman (Native)** | β οΈ Docker (Podman via workaround) |
| **Performance** | π **Instant (<2s) / Minimal Deps** | π’ Variable / Heavy Deps |
| **Tech Stack** | π **Bubble Tea (Modern)** | π΄ gocui (Legacy, old) |
| **Maintenance** | π **Built-in (`dockmate update`)** | β Manual updates |
| **Input & UI** | β¨οΈ **Keyboard-only / Text-based** | π±οΈ Mouse + Key / ASCII Graphs |
| **Scope** | π― **Containers & Compose** | π¦ Containers + Images + Layers |
**Choose DockMate if you:**
* Want a fast, "install and go" tool.
* Need native **Podman** support.
* Prefer `htop`-style simplicity over complex dashboards.
---
## πΊοΈ Roadmap
* [x] Docker Compose integration
* [x] Docker Compose management
* [x] Podman Support
* [x] Homebrew distribution
* [ ] Container search / filter
* [ ] Resource monitoring alerts
* [ ] Image management
---
## π€ Contributing & License
**License:** MIT. Do whatever you want, just keep the license intact.
Built by [@shubh-io](https://github.com/shubh-io) while learning Go.
If DockMate saves you keystrokes, consider dropping a β on the repo!