added another service called dockscope check the docs
This commit is contained in:
@@ -19,6 +19,7 @@ This is a real, running homelab — not a demo. It's deployed on a home Ubuntu s
|
||||
| **Monitoring stack** | `monitoring-grafana-promethues-cadvisor-node-exporter/` | Prometheus for metrics collection, Grafana for dashboards, cAdvisor for per-container resource stats, node-exporter for host-level metrics |
|
||||
| **Pi-hole** | `pihole/` | Network-wide DNS-level ad and tracker blocking |
|
||||
| **Portainer** | `portainer/` | Web UI for managing and monitoring all Docker containers on the host |
|
||||
| **DockScope** | `dockscope/` | 3D visual dashboard mapping containers, networks, and dependencies, with anomaly detection and crash diagnostics — see [DockScope](docs/DockScope.md) |
|
||||
| **n8n** | `n8n/` | Workflow automation engine, backed by Postgres |
|
||||
| **Samba** | `samba/` | Network file sharing across LAN devices |
|
||||
| **Filebrowser** | `filebrowser/` | Web-based file manager for the server's storage |
|
||||
@@ -40,6 +41,8 @@ homelab/
|
||||
│ └── .env.example
|
||||
├── portainer/
|
||||
│ └── docker-compose.yml
|
||||
├── dockscope/
|
||||
│ └── docker-compose.yml
|
||||
├── n8n/
|
||||
│ ├── docker-compose.yaml
|
||||
│ └── .env.example
|
||||
@@ -79,6 +82,7 @@ homelab/
|
||||
│ ├── Reverse-Proxy.md
|
||||
│ ├── Lessons-Learned.md
|
||||
│ ├── Semaphore.md
|
||||
│ ├── DockScope.md
|
||||
│ └── images/
|
||||
└── .gitignore
|
||||
```
|
||||
@@ -98,6 +102,7 @@ docker compose up -d
|
||||
- All `.env` files, runtime config directories, and databases are excluded via `.gitignore` — only deployment definitions (`docker-compose.yml`) and `.env.example` placeholders are tracked.
|
||||
- Passwords referenced in compose files are injected via environment variables, never hardcoded.
|
||||
- The AI coding agent (`openhands/`) currently uses a third-party API aggregator as its LLM backend — see [AI Coding Agent](docs/AI-Agent.md) for details and caveats. It has no access to the Docker socket or other containers on the host.
|
||||
- **DockScope** (`dockscope/`) mounts `/var/run/docker.sock`, the same as Portainer — this grants it effectively root-equivalent access to the Docker host, and it currently has no built-in authentication on its web UI, so it's kept LAN-only and not exposed through the reverse proxy. See [DockScope](docs/DockScope.md).
|
||||
|
||||
## Lessons learned
|
||||
|
||||
|
||||
18
dockscope/docker-compose.yml
Normal file
18
dockscope/docker-compose.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
services:
|
||||
semaphore:
|
||||
image: semaphoreui/semaphore:latest
|
||||
container_name: semaphore
|
||||
ports:
|
||||
- "3001:3000"
|
||||
environment:
|
||||
SEMAPHORE_DB_DIALECT: sqlite
|
||||
SEMAPHORE_DB_PATH: /var/lib/semaphore/database.db
|
||||
SEMAPHORE_ADMIN: admin
|
||||
SEMAPHORE_ADMIN_PASSWORD: rezayaghobi1386
|
||||
SEMAPHORE_ADMIN_EMAIL: rezay5639@gmail.com
|
||||
SEMAPHORE_ADMIN_NAME: Admin
|
||||
SEMAPHORE_SECRET_KEY: cc4b3a5a90d31b963bee48a9dee089472bef5e0461f934db7891fc68161d36f7
|
||||
volumes:
|
||||
- ./data:/var/lib/semaphore
|
||||
- ./playbooks:/playbooks
|
||||
restart: unless-stopped
|
||||
62
docs/DockScope.md
Normal file
62
docs/DockScope.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# DockScope
|
||||
|
||||
A 3D visual dashboard for the Docker host — lets you see every container, network, and dependency as an interactive node graph instead of scrolling through `docker ps` output.
|
||||
|
||||
## Why I added it
|
||||
|
||||
Portainer already covers day-to-day container management, but it doesn't give a great sense of *how things relate to each other* — which containers share a network, which services depend on which, and what would break if a given container went down. [DockScope](https://github.com/ManuelR-T/dockscope) fills that gap: it builds a live, interactive map of the whole Docker environment, grouping containers by Compose project and drawing connections based on shared networks. The graph updates in real time as containers start, stop, or restart.
|
||||
|
||||
## What it actually adds beyond the visuals
|
||||
|
||||
The 3D graph is the first thing you notice, but the more useful part is what's built into each container's detail panel:
|
||||
|
||||
- **Info tab** — image, status, container ID, uptime, restart policy, ports, connected networks, and live CPU/memory graphs
|
||||
- **Env tab** — the environment variables the container was started with
|
||||
- **Top tab** — running processes inside the container
|
||||
- **Logs tab** — live-tailing logs
|
||||
- **Exec tab** — an in-browser shell into the container
|
||||
|
||||
In practice this covers most of what I'd otherwise reach for `docker exec`, `docker logs -f`, or `docker top` to check — all in one UI, one click away, without opening a terminal.
|
||||
|
||||
It also has a few features aimed specifically at troubleshooting:
|
||||
|
||||
- **Anomaly detection** — flags CPU/memory spikes using outlier detection, with a pulsing indicator on the affected node
|
||||
- **Crash diagnostics** — when a container dies, it looks at the exit code, OOM status, and recent logs to suggest a likely cause
|
||||
- **Dependency impact view** — highlights everything that would be affected if a specific container went down
|
||||
- **Health check event stream** — a live feed of container health check transitions
|
||||
|
||||
## Installation
|
||||
|
||||
Same pattern as everything else in this repo — one Compose file, no database to set up:
|
||||
|
||||
```yaml
|
||||
services:
|
||||
dockscope:
|
||||
image: ghcr.io/manuelr-t/dockscope:latest
|
||||
container_name: dockscope
|
||||
ports:
|
||||
- "4681:4681"
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
restart: unless-stopped
|
||||
pull_policy: always
|
||||
```
|
||||
|
||||
Start it and open the web UI — it discovers the existing Docker environment automatically, no manual configuration needed.
|
||||
|
||||
## Security note
|
||||
|
||||
Like Portainer, DockScope needs access to `/var/run/docker.sock` to see and manage containers — that socket is effectively root-equivalent access to the host, so it's worth treating this container with the same trust level as any other tool with Docker socket access. As of this writing, DockScope also has no built-in authentication on its web UI, so it's only reachable inside the LAN here, not exposed through the reverse proxy.
|
||||
|
||||
## Screenshot from this homelab
|
||||
|
||||
The Info tab for `cadvisor`, showing live CPU/memory usage, network I/O, and history graphs pulled straight from the running container:
|
||||
|
||||

|
||||
|
||||
## Further reading
|
||||
|
||||
- [DockScope on GitHub](https://github.com/ManuelR-T/dockscope/tree/main)
|
||||
- [Virtualization Howto: This Free Docker Dashboard Shows Your Entire Stack in 3D](https://www.virtualizationhowto.com/2026/07/this-free-docker-dashboard-shows-your-entire-stack-in-3d/) — the writeup that pointed me to this project
|
||||
|
||||
[← Back to Home](Home.md)
|
||||
@@ -14,6 +14,7 @@ Documentation for a self-hosted homelab running entirely on Docker Compose. This
|
||||
- [AI Coding Agent](AI-Agent.md)
|
||||
- [Reverse Proxy](Reverse-Proxy.md)
|
||||
- [Semaphore](Semaphore.md)
|
||||
- [DockScope](DockScope.md)
|
||||
|
||||
## At a glance
|
||||
|
||||
@@ -21,7 +22,7 @@ Documentation for a self-hosted homelab running entirely on Docker Compose. This
|
||||
|---|---|
|
||||
| **Host** | Ubuntu Server |
|
||||
| **Orchestration** | Docker Compose, one stack per service |
|
||||
| **Management** | Portainer |
|
||||
| **Management** | Portainer, **DockScope** (3D visual dashboard) |
|
||||
| **Monitoring** | Prometheus + Grafana + cAdvisor + node-exporter |
|
||||
| **Network** | Pi-hole (DNS filtering), Samba (file sharing), nginx (proxy managing) |
|
||||
| **Automation** | n8n + **Semaphore** (Ansible Web UI) || **Media** | Plex + Sonarr/Radarr/Prowlarr + qBittorrent |
|
||||
|
||||
BIN
docs/images/Screenshot 2026-07-25 173703.png
Normal file
BIN
docs/images/Screenshot 2026-07-25 173703.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 351 KiB |
BIN
docs/images/dockscope-cadvisor-info-tab.png
Normal file
BIN
docs/images/dockscope-cadvisor-info-tab.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 351 KiB |
Reference in New Issue
Block a user