How usamaabdulkader/dockyard works
Dockyard accepts Docker artifact or image inputs in its dashboard, queues selected analyses, runs them in a background worker, stores graded results, and streams status updates back to connected browsers. The graph also preserves the separate linting, Compose validation, base-image advice, image-size, security, history, and live-stats capabilities documented in the README. Runtime wiring is grounded in the supplied Flask, worker, and tool excerpts; some capability details and proxy routing come from the README and tree rather than sampled implementation.
Main entry points: app.py Flask API and Socket.IO · __init__.py Tool dispatcher · dashboard.js Browser dashboard · redis_keys.py Redis queue and state
Components 17
Web experience
- Browser dashboard
app/static/js/dashboard.js - Dashboard template
app/templates/index.html - Flask API and Socket.IO
app/app.py
Scan processing
- Scan worker
app/scanner.py
Analysis tools
- Tool dispatcher
app/tools/__init__.py - Dockerfile linter
app/tools/linter.py - Compose validator
app/tools/compose.py - Base image advisor
app/tools/image.py - Image size analyzer
app/tools/image_size.py - Security scanner
app/tools/security.py
Runtime services
- Nginx proxy
nginx/nginx.conf - Redis queue and state
app/redis_keys.py
Other components
- Developer
- Docker daemon
- Hadolint
- Trivy
- Container registries
Connections 24
- Developer → Browser dashboard: uses
- Browser dashboard → Nginx proxy: sends requests
- Nginx proxy → Flask API and Socket.IO: proxies traffic
- Flask API and Socket.IO → Dashboard template: renders dashboard
- Browser dashboard → Flask API and Socket.IO: submits scans
- Flask API and Socket.IO → Redis queue and state: queues and stores
- Flask API and Socket.IO → Browser dashboard: emits pending updates
- Browser dashboard → Flask API and Socket.IO: fetches history and stats
- Flask API and Socket.IO → Redis queue and state: reads history and stats
- Scan worker → Redis queue and state: dequeues jobs
- Scan worker → Tool dispatcher: dispatches tool
- Tool dispatcher → Dockerfile linter: runs lint
- Tool dispatcher → Compose validator: validates compose
- Tool dispatcher → Base image advisor: advises image
- Tool dispatcher → Image size analyzer: analyzes size
- Tool dispatcher → Security scanner: scans image
- Dockerfile linter → Hadolint: invokes when available
- Compose validator → Docker daemon: validates with CLI
- Image size analyzer → Docker daemon: inspects image
- Security scanner → Trivy: scans image
- Base image advisor → Container registries: fetches tag metadata
- Scan worker → Redis queue and state: writes results and publishes events
- Flask API and Socket.IO → Redis queue and state: listens for events
- Flask API and Socket.IO → Browser dashboard: pushes scan updates