Categorized link cards for all services across nodes + public domains.
Opens in new tabs. Accessible from sidebar navigation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add All/Running/Stopped filter pills with live counts in toolbar
- Dim stopped service cards (55% opacity, red left border)
- Cards brighten on hover for easy interaction
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Dockerfile: COPY to /app/agent/ and use agent.main:app for proper
package imports
- docker_ops: use low-level API in get_health() to avoid NotFound on
containers stuck in Docker Dead state
- Add comprehensive README with architecture, API docs, and usage
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Single-page dashboard with vanilla HTML/CSS/JS:
- Responsive service card grid with status badges and action buttons
- Sidebar with node health indicators, group navigation
- Slide-out log viewer panel with monospace dark output
- Group editor modal with searchable service checkbox list
- Bulk start/stop/restart with confirmation dialogs
- Toast notifications, auto-refresh every 15s, search filtering
- Dark theme using CSS custom properties
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Python 3.12-slim based image running uvicorn on port 8889. Includes
curl for container health checks.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add agent/main.py with REST endpoints wrapping DockerOps: health, list
containers, start/stop/restart, logs, and pull. DockerOps instantiation
handles missing Docker socket gracefully for test environments.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add DockerOps class wrapping the Docker SDK with methods for listing,
starting, stopping, restarting containers, fetching logs, and pulling
images. Swarm containers are detected via labels and receive special
handling (scale/force-update instead of direct container ops).
Includes 16 passing tests using mocked Docker client.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>