Dashboard
Dockform includes a fullscreen terminal dashboard that gives you a live, at‑a‑glance view of your stacks, containers, and logs.
Launching
- Basic:
dockform dashboard - With a specific manifest:
dockform dashboard --config path/to/dockform.yaml
The dashboard uses your manifest to discover stacks and services, and your Docker context to query runtime state. If --config is omitted, Dockform resolves the manifest path from the current working directory or your configured base directory.
Layout
The UI is split into three columns:
- Stacks (left)
- One entry per service across all manifest stacks
- Shows service name or resolved container name, image, and a one‑line status
- Filterable by stack name, service, container name, or image
- Logs (center)
- Live stream of the selected container’s logs
- Auto‑scrolls to the newest lines; supports scrolling back
- Info (right)
- Dockform: version, identifier, manifest path
- Docker: context name, host endpoint, engine version
- Volumes: volumes attached to the selected service/container
- Networks: networks attached to the selected service/container
Headers highlight the active pane with a subtle gradient. Colors are tuned for a dark terminal theme.
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
? |
Toggle help |
q or Ctrl+C |
Quit |
/ |
Filter stacks |
↑/k, ↓/j |
Move selection |
→/l/pgdn, ←/h/pgup |
Next/previous page |
Tab |
Cycle pane (Stacks ↔ Logs) |
Enter |
Focus logs (from Stacks) |
Ctrl+P |
Open command palette (Pause/Restart/Stop/Delete selected container) |
When filtering, type to search across stack, service, container, and image fields. Press Esc to leave filter mode.
Command Palette
Press Ctrl+P to open a floating command palette centered over the dashboard. The palette shows the currently selected container and offers the following operations:
Pause — runs docker container pause for the container
Restart — runs docker container restart
Stop — runs docker container stop
Delete — force removes the container with docker container rm -f
Use j/k or the arrow keys to highlight a command, Enter to execute it, and Esc to close the palette without acting. If no container is selected, the palette indicates it and actions are disabled. After a command runs, the regular status polling and logs stream reflect the new container state automatically.
What You See
- Status bullets per service
- Green: running (healthy or no healthcheck issues detected)
- Yellow: starting, created, or restarting
- Red: exited/unhealthy/other error states
- The rightmost line shows Docker’s status string (for example, “Up 2m (healthy)”).
- Resolved container names
- If a service has an explicit
container_name, it’s shown and used for log streaming - Otherwise Dockform locates the container by labels:
io.dockform.identifier+com.docker.compose.service
- If a service has an explicit
- Volumes and networks
- The right column lists all volumes and networks in the Docker context and highlights only those attached to the selected service/container
- Volume entries show name, mountpoint, and driver; networks show name and driver
Interaction Model
- Selecting an item in Stacks automatically starts tailing that container’s logs in the center pane (with a small debounce to avoid rapid restarts while navigating)
- Press
Enterto bring focus to the Logs pane; use the same navigation keys to scroll - Press
Tabto toggle focus between Stacks and Logs - Command palette actions operate on the currently selected container; once Docker finishes the operation, statuses and attachments refresh on the next poll
Data Flow and Sources
Under the hood, the dashboard combines static data from Compose with live information from Docker:
- Stack and service discovery
- The loader reads your manifest, resolves each stack’s working directory, and calls
docker compose configto build a merged view of services, images, networks, and volumes - Services are shown per stack, sorted alphabetically
- The loader reads your manifest, resolves each stack’s working directory, and calls
- Live status polling
- Every 2 seconds, the dashboard queries
docker ps(including stopped containers) filtered byio.dockform.identifierwhen set - For each service, it prefers an explicit
container_name; otherwise it matches bycom.docker.compose.service - Status color is selected from the container state plus health hints in Docker’s status text
- Every 2 seconds, the dashboard queries
- Logs streaming
- When a service/container is selected,
docker logs --follow --tail=300streams into the Logs pane - Switching selection cancels the prior stream and starts a new one
- When a service/container is selected,
- Volumes and networks
- The dashboard lists volumes (name, driver, mountpoint) and networks (name, driver) from the Docker context
- Attachments are inferred from Compose service definitions and mapped to either
container_nameor service name
- Docker context info
- Host endpoint and engine version come from
docker versionfor the active context
- Host endpoint and engine version come from
Note
- If Docker is unreachable, Docker info shows “(unknown)” and live status/logs may be empty
- Stacks with no services appear as “(no services)” with an empty status
- Volumes/networks are shown from the context; only attachments for the selected entry are highlighted

