An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          

DockMate 🐳


A terminal-based Docker container manager that actually works.













> **Note**: Previously named **DockWatch**.

![DockMate demo gif](assets/demo.gif)

---

## πŸ“₯ 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!