Skip to content

Latest commit

 

History

139 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DockScope

npm version Docker Image CI License: MIT

See your Docker stack instead of listing it.

DockScope draws your containers as a live 3D dependency graph, then lets you dig into any one of them: logs, metrics, a shell, and a guess at why it died.

DockScope demo

Run it

You need Docker running. That is the only prerequisite. Either command below serves the dashboard at http://localhost:4681, with nothing to configure and no account to make.

Docker

The image is published at ghcr.io/manuelr-t/dockscope.

docker run --name dockscope --restart unless-stopped -p 4681:4681 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v dockscope-data:/data \
  ghcr.io/manuelr-t/dockscope
docker-compose.yml
services:
  dockscope:
    image: ghcr.io/manuelr-t/dockscope
    container_name: dockscope
    restart: unless-stopped
    ports:
      - '4681:4681'
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - dockscope-data:/data

volumes:
  dockscope-data:

dockscope-data is what keeps your access token and installed plugins. Without it they sit in the container's writable layer and vanish the next time you recreate the container, pulling a new image for instance. See Where state lives.

Compose project management (up and down) is the one feature unavailable in a container, since it cannot reach your host's compose files.

With Node

No container, and it opens your browser for you:

npx dockscope up

Or npm install -g dockscope for a permanent dockscope command. This route can manage Compose projects, since it runs on the host. Every flag it takes, including -H to point at a remote Docker daemon, is in dockscope up options.

What you can do with it

Read the whole stack at a glance

Compose stack rendered as a 3D graph, with cache sized largest because everything depends on it

Containers are spheres, coloured by health and wired together by depends_on arrows and shared networks. Size is not decorative: it scales with how central a container is, so the thing everything leans on is visibly the biggest. Compose projects sit in their own enclosure, so a stack reads as one thing.

Search by name or image, filter by running, stopped or unhealthy, and colour the links by network when you need to see the wiring rather than the workload.

A container just died. Why?

Info tab showing status, image, id, ports, networks and live CPU and memory

DockScope reads the exit code, checks whether the kernel OOM-killed it, and pulls the last log lines, then puts the likely cause in the sidebar instead of making you piece it together from docker inspect and docker logs.

Spikes get caught the same way. CPU and memory are watched for outliers, so a container that starts misbehaving pulses on the graph and raises an alert rather than waiting for you to go looking.

What breaks if I take this down?

Select a node and press I. Everything that depends on it lights up and the rest of the graph dims. Useful before a restart, and useful when something is already broken and you want the blast radius.

What is actually going on in there?

Exec tab with an interactive shell running redis-cli

Every container opens a sidebar of tabs: live logs with colour and in-log search, an interactive shell, env vars with secrets masked, labels, mounts, running processes, and the filesystem diff against the image.

Environment and labels Processes
Env tab with environment variables and Compose labels Processes running inside the container
Filesystem diff Logs
Filesystem changes against the image, added, changed and deleted Live log stream with in-log search

Start, stop, restart, pause, kill and remove are all there, with a confirmation step on the destructive ones. Whole Compose projects go up and down from the project manager.

Something broke last night and you missed it

Hit REC and DockScope records the graph, events and metrics into a JSON file. Load that file on any other DockScope instance and replay it with a scrubber, event markers and 1-8x speed. Live updates and actions are disabled during replay, so a recording is safe to hand to someone else.

For a written postmortem, export the current view as PNG or SVG.

It is not only Docker

Kubernetes ships as an official plugin that talks to your cluster directly, with no kubectl needed. Deployments, StatefulSets, DaemonSets, Pods, Services, Ingresses and HPAs render next to your containers, each pod attached to the controller that owns it, with the same sidebar: metrics, env, logs and a shell. Rollout restart, scale and delete included.

Install it from the Plugins panel, or write your own.

Keyboard shortcuts

Key Action
/ or Ctrl+K Focus search
Escape Close panel, clear search
F Zoom to fit
R Reset camera
C Center on selected node
I Toggle impact view
Space Play or pause replay
? Show this list

Is it safe to run?

On your own machine, yes, and that is the default: DockScope listens on localhost only, and websites you visit cannot reach it.

Two things to know before you expose it anywhere:

  • It controls your Docker daemon, including shell access to containers. Treat access to DockScope as access to the host.
  • The first time you open a reachable instance, it offers to set an access token. Take it. If you already run Authelia, Authentik, oauth2-proxy or Cloudflare Access, DockScope can use that instead.

SECURITY.md has the full picture.

Documentation

Guide What is in it
Configuration Every CLI flag, environment variable and state file
Security Access tokens, reverse proxy auth, the threat model
HTTP API Every endpoint, and the WebSocket messages
Writing plugins Build your own data source, panel or action
Publishing plugins Package, sign and distribute one through a catalog
Operating plugins Loading, permissions, health and quarantine
Contributing Development setup and how to send a PR
Roadmap Where this is going, and what needs doing

Contributing

Contributions are welcome, and there is a short list of issues tagged good first issue that are self-contained enough to pick up cold. Larger open work is tagged help wanted, and ROADMAP.md groups it all by theme.

git clone https://github.com/ManuelR-T/dockscope.git
cd dockscope
npm install
npm run dev

CONTRIBUTING.md covers the rest. Bug reports count too.

Built with Svelte 5, Three.js and Express. No account, no telemetry, no cloud.

License

MIT

About

Visual Docker dashboard with a 3D dependency graph, live metrics, logs, terminal, and container actions

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

108 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages