Go to file
Henrik Jess Nielsen 70418bc45b
All checks were successful
Build and Deploy DevOpsDash / build-image (push) Successful in 31s
Remove host volume from Nomad job — unblocks placement on autobox
The devops-mcp-data host volume is not yet configured on autobox.i80.dk,
causing 'missing compatible host volumes' placement failure.

Comment out the volume + volume_mount blocks so the job can schedule
immediately. Knowledge catalog files are accessed via MCP proxy for now.

Instructions to re-enable (when ready):
  Add to /etc/nomad.d/client.hcl on autobox:
    host_volume "devops-mcp-data" {
      path      = "/opt/devops-mcp/data"
      read_only = false
    }
  Then: mkdir -p /opt/devops-mcp/data && systemctl restart nomad

Also: switch auth to HARBOR_ROBOT_TOKEN pattern (matches devops-mcp.nomad),
add force_pull=true, set provider=consul.
2026-05-09 16:48:06 +02:00
2026-05-09 16:36:47 +02:00

DevOpsDash

Visual dashboard for DevOpsMCP — built as a separate service so updates to DevOpsMCP never break the dashboard.

Live at: https://dash.i80.dk

Features

  • Taskz — Kanban board for all task boards (create/update tasks, add findings, change status/priority)
  • Worklog — Git commit timeline proxied from DevOpsMCP (egmont/personal/all, configurable date range)
  • Standup — AI-generated standup summary via DevOpsMCP
  • Knowledge — Browse ADRs, memories, and knowledge catalog files

Stack

  • Backend: FastAPI (Python 3.11)
  • Frontend: Alpine.js + Tailwind CSS (CDN, no build step)
  • Data: Read-only access to DevOpsMCP's Redis + data directory (bind-mount)

Architecture

DevOpsMCP (devops-mcp.i80.dk)     DevOpsDash (dash.i80.dk)
  Redis ◄────────────────────────────── read same Redis
  /opt/devops-mcp/data (rw) ─────────► /data (read-only bind-mount)
  MCP HTTP API ──────────────────────── worklog proxy calls

Development

# Copy .env.example
cp .env.example .env
# Edit DATA_DIR to point at local DevOpsMCP data directory

# Install dependencies
pip install -r requirements.txt

# Run
python -m uvicorn app.main:app --reload --port 8001

Open http://localhost:8001

Deployment

# Build + push image
docker build -t registry.i80.dk/gitea/devops-dash:latest .
docker push registry.i80.dk/gitea/devops-dash:latest

# Deploy to Nomad
# First: ensure the host volume exists on autobox.i80.dk
# See devops-mcp.nomad for the DevOpsMCP side bind-mount setup

scp devops-dash.nomad autobox.i80.dk:/tmp/
ssh autobox.i80.dk 'NOMAD_ADDR=https://nomad.i80.dk:4646 nomad job run /tmp/devops-dash.nomad'

Nomad Host Volume (one-time setup on autobox.i80.dk)

Add to /etc/nomad.d/client.hcl:

host_volume "devops-mcp-data" {
  path      = "/opt/devops-mcp/data"
  read_only = false
}

Then restart Nomad. The DevOpsDash job mounts the same volume as read-only.

Description
Visual dashboard for DevOpsMCP — Taskz, Worklog, Knowledge
Readme 134 KiB
Languages
HTML 59.9%
Python 34.9%
HCL 3.6%
Makefile 1.1%
Dockerfile 0.5%