{"id":44068353,"url":"https://github.com/shubh-io/DockMate","last_synced_at":"2026-02-20T01:00:51.681Z","repository":{"id":328167693,"uuid":"1111220851","full_name":"shubh-io/DockMate","owner":"shubh-io","description":"Dockmate: The open-source Docker TUI \u0026 Podman manager for terminal productivity. A fast, lightweight alternative to lazydocker built in Go.","archived":false,"fork":false,"pushed_at":"2026-01-14T06:52:19.000Z","size":51817,"stargazers_count":206,"open_issues_count":1,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-01-14T10:31:38.478Z","etag":null,"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"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shubh-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-06T14:11:59.000Z","updated_at":"2026-01-14T06:52:23.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/shubh-io/DockMate","commit_stats":null,"previous_names":["shubh-io/dockmate"],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/shubh-io/DockMate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shubh-io%2FDockMate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shubh-io%2FDockMate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shubh-io%2FDockMate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shubh-io%2FDockMate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shubh-io","download_url":"https://codeload.github.com/shubh-io/DockMate/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shubh-io%2FDockMate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29637914,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T22:32:43.237Z","status":"ssl_error","status_checked_at":"2026-02-19T22:32:38.330Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["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"],"created_at":"2026-02-08T04:00:24.664Z","updated_at":"2026-02-20T01:00:51.675Z","avatar_url":"https://github.com/shubh-io.png","language":"Go","readme":"\n\u003ch1 align=\"center\"\u003eDockMate 🐳\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\u003cb\u003eA terminal-based Docker container manager that actually works.\u003c/b\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cspan\u003e\u003cimg src=\"https://wakatime.com/badge/github/shubh-io/DockMate.svg\" /\u003e\u003c/span\u003e\n  \u003cspan\u003e\u003cimg src=\"https://img.shields.io/github/stars/shubh-io/DockMate?style=flat\u0026logo=github\" /\u003e\u003c/span\u003e\n  \u003cspan\u003e\u003cimg src=\"https://img.shields.io/github/v/release/shubh-io/DockMate?color=green\" /\u003e\u003c/span\u003e\n  \u003cspan\u003e\u003cimg src=\"https://img.shields.io/github/license/shubh-io/DockMate\" /\u003e\u003c/span\u003e\n  \u003cspan\u003e\u003cimg src=\"https://img.shields.io/badge/Go-1.24+-00ADD8?logo=go\u0026logoColor=white\" /\u003e\u003c/span\u003e\n  \u003cspan\u003e\u003cimg src=\"https://img.shields.io/badge/Platform-Linux%20%7C%20macOS-blue?style=flat\u0026logo=linux\u0026logoColor=white\" /\u003e\u003c/span\u003e\n  \u003cspan\u003e\n    \u003ca href=\"https://www.xda-developers.com/tried-managing-docker-containers-through-terminal-with-app-love-it/\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/Featured%20in-XDA--Developers-blue\" /\u003e\n    \u003c/a\u003e\n  \u003c/span\u003e\n\u003c/p\u003e\n\n\n\u003e **Note**: Previously named **DockWatch**.\n\n![DockMate demo gif](assets/demo.gif)\n\n\n---\n\n## 📥 Installation\n\n### 🍺 Homebrew (Recommended)\nWorks on Linux \u0026 macOS.\n```bash\nbrew install shubh-io/tap/dockmate\n\n```\n\n### 📦 Quick Install Script\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/shubh-io/DockMate/main/install.sh | sh\n\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eClick for Manual Install, Source Build \u0026 Verification\u003c/b\u003e\u003c/summary\u003e\n\n### User-local Installation\n\nIf you lack `sudo` access or prefer local bins:\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/shubh-io/DockMate/main/install.sh | INSTALL_DIR=$HOME/.local/bin sh\n\n```\n\n*Ensure `$HOME/.local/bin` is in your PATH.*\n\n### Build from Source\n\nRequires **Go 1.24+**:\n\n```bash\ngit clone 'https://github.com/shubh-io/DockMate'\ncd DockMate\ngo build -o dockmate\nsudo mv dockmate /usr/local/bin/\n\n```\n\n### Verifying Downloads\n\nReleases include SHA256 checksums.\n\n```bash\n# Example verification\ncurl -fsSL -o dockmate https://.../dockmate-linux-amd64\ncurl -fsSL -o dockmate.sha256 https://.../dockmate-linux-amd64.sha256\nsha256sum -c dockmate.sha256\n\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eClick for Update Guide 🔄\u003c/b\u003e\u003c/summary\u003e\n\n### Standard Methods\n| Method | Command |\n| :--- | :--- |\n| **Homebrew** | `brew upgrade shubh-io/tap/dockmate` |\n| **Built-in** | `dockmate update` |\n\n### 🛠️ Force Re-install / Troubleshooting\nIf `dockmate update` reports success but the version does not change, re-run the installer to force-replace the binary:\n\n```bash\n# curl\ncurl -fsSL https://raw.githubusercontent.com/shubh-io/DockMate/main/install.sh | sh\n\n# wget\nwget -qO- https://raw.githubusercontent.com/shubh-io/DockMate/main/install.sh | sh\n\n```\n\n**Custom Directory Users:**\nIf you originally installed to a custom location (e.g., `~/.local/bin`), you must specify it again to avoid installing to the default path:\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/shubh-io/DockMate/main/install.sh | INSTALL_DIR=\"$HOME/.local/bin\" sh\n\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eClick for Troubleshooting Guide❗\u003c/b\u003e\u003c/summary\u003e\n\n## Troubleshooting\n\n### \"Permission Denied\" when running Compose actions\nIf the app fails to enter a directory, it is likely a filesystem permission mismatch between your current user and the project folder.\n\n#### Symptoms\nYou see an error similar to this in the logs or terminal:\n\u003e `Error: compose error (docker up): chdir /home/dockertest/my-app: permission denied`\n\n#### The Fix\nEnsure your user has ownership of the project directory.\n\n**Example Case:**\nIf your project is located at `~/path/to-your-folder/`, run:\n\n```bash\n# Replace '~/path/to-your-folder/' with your actual project path\nsudo chown -R $USER:$USER ~/path/to-your-folder/\n\n```\n\n**Technical Note:**\nThis 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.\n\n\u003c/details\u003e\n\n\n\n\n\n\n---\n## 🚀 Key Features\n\nDockMate is the `htop` for Docker-lightweight, keyboard-driven, and zero-config.\n\n* **⚡ Real-time Monitoring:** Stats for CPU, Memory, Disk I/O, Network, etc.\n* **📦 Compose Management:** Full lifecycle control for Docker Compose and Podman Compose projects.\n* **⌨️ Instant Control:** Start (`s`), Stop (`x`), Restart (`r`), and Remove (`d`) containers with single keystrokes.\n* **🔍 Debugging:** View logs (`l`) or spawn an interactive shell (`e`) instantly.\n* **🐳 Multi-Runtime:** Native support for **Docker** and **Podman**.\n* **📂 Deep Info Panel:** View Compose metadata, project directories, and source paths.\n* **⚙️ Persistent Settings:**\n*   * **Custom Shell:** Defaults to `/bin/sh`, but configurable to `/bin/bash`, `/bin/zsh`, etc.\n*   * **Refresh Rates:** Configurable Refresh Interval.\n*   * **State Saving:** Remembers your runtime (Docker/Podman) and column layouts on restart.\n\n\n\n---\n\n\n## ⌨️ Controls\n\nRun `dockmate` to start.\n\n### Navigation \u0026 Global\n\n| Key | Action |\n| --- | --- |\n| `↑/↓` or `j/k` | Move cursor up/down |\n| `←/→`| Navigate pages |\n| `Tab` | Toggle column selection mode |\n| `Enter` | Sort by selected column |\n| `l` / `i` / `c` | Toggle **L**ogs / **I**nfo / **C**ompose view |\n| `F1` | Help Menu |\n| `F2` | Settings |\n| `Esc` / `q` | Back / Quit |\n\n### Container Actions (Single)\n\n| Key | Action |\n| --- | --- |\n| `s` | **S**tart container |\n| `x` | Stop container (E**x**it) |\n| `r` | **R**estart container |\n| `d` | **D**elete container |\n| `e` | Open interactive shell (**E**xec) |\n\n### Compose Project Actions (Grouped)\n\n| Key | Action |\n| --- | --- |\n| `u` / `U` | **U**p (Create \u0026 Start all services) |\n| `x` / `X` | Stop all services |\n| `r` / `R` | **R**estart entire project |\n| `p` / `P` | **P**ause / Unpause project |\n| `d` / `D` | **D**own (Stop \u0026 Remove containers/networks) |\n\n---\n\n## 🛠️ Configuration \u0026 Runtimes\n\n**Switching Runtimes (Docker ⇄ Podman)**\n\n* **In-App:** Open Settings, toggle Runtime, and Save.\n* **CLI:** Run `dockmate --runtime` to launch the interactive selector.\n\n**Configuration File**\nSettings are saved to `~/.config/dockmate/config.yml`. You can manually edit this to change defaults for refresh rates, preferred shell, and column visibility.\n\n---\n\n## 🆚 Why DockMate?\n\n### DockMate vs LazyDocker\n\n| Feature | DockMate | LazyDocker |\n| :--- | :--- | :--- |\n| **Philosophy** | ⚡ **Speed \u0026 Simplicity** | 🧰 Feature-rich Power User |\n| **Engine Support** | ✅ **Docker + Podman (Native)** | ⚠️ Docker (Podman via workaround) |\n| **Performance** | 🚀 **Instant (\u003c2s) / Minimal Deps** | 🐢 Variable / Heavy Deps |\n| **Tech Stack** | 🆕 **Bubble Tea (Modern)** | 👴 gocui (Legacy, old) |\n| **Maintenance** | 🔄 **Built-in (`dockmate update`)** | ❌ Manual updates |\n| **Input \u0026 UI** | ⌨️ **Keyboard-only / Text-based** | 🖱️ Mouse + Key / ASCII Graphs |\n| **Scope** | 🎯 **Containers \u0026 Compose** | 📦 Containers + Images + Layers |\n\n**Choose DockMate if you:**\n\n* Want a fast, \"install and go\" tool.\n* Need native **Podman** support.\n* Prefer `htop`-style simplicity over complex dashboards.\n\n---\n\n## 🗺️ Roadmap\n\n* [x] Docker Compose integration\n* [x] Docker Compose management\n* [x] Podman Support\n* [x] Homebrew distribution\n* [ ] Container search / filter\n* [ ] Resource monitoring alerts\n* [ ] Image management\n\n---\n\n## 🤝 Contributing \u0026 License\n\n**License:** MIT. Do whatever you want, just keep the license intact.\n\nBuilt by [@shubh-io](https://github.com/shubh-io) while learning Go.\n\nIf DockMate saves you keystrokes, consider dropping a ⭐ on the repo!\n\n","funding_links":[],"categories":["Go"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshubh-io%2FDockMate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshubh-io%2FDockMate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshubh-io%2FDockMate/lists"}