A modern, dark-themed dashboard for visualizing and managing Diun (Docker Image Update Notifier) webhook data. Built with Rust and Actix-web for high performance and reliability.
- 🎨 Modern Dark UI - Beautiful dark theme optimized for monitoring dashboards
- 📊 Grid View - Visual grid display of all container images with essential information
- 🔍 Hover Details - Detailed information appears on hover for each image
⚠️ Age Indicators - Color-coded cards based on image age:- Normal (within 1 week)
- Yellow (over 1 week old)
- Red (over 1 month old)
- 🗑️ Admin Panel - Delete images directly from the admin interface (
/admin) - 🔗 Quick Links - Click any image card to open its Docker Hub page
- 📅 Smart Dates - Relative time display (e.g., "2h ago", "3d ago")
- 🔄 Auto-refresh - Automatically updates every 30 seconds
The dashboard displays container images in a responsive grid layout with:
- Image name at the top
- Whale icon in the center
- Full image path
- Last updated timestamp
- Age-based color coding
# Build the image
docker build -t diundash .
# Run the container
docker run -d \
-p 5030:5030 \
-v $(pwd)/data:/app/data \
--name diundash \
diundash# Clone the repository
git clone <repository-url>
cd DiunWeb
# Build the project
cargo build --release
# Run the application
./target/release/diundashConfigure Diun to send webhooks to DiunDash:
# diun.yml
notif:
webhook:
endpoint: http://your-server:5030/api/diun
method: POST
headers:
Content-Type: application/json- URL:
http://localhost:5030/ - View all container images in a grid layout
- Click any card to open the Docker Hub page
- Hover over cards to see detailed information
- Fixed admin button (⚙️) in the bottom-right corner
- URL:
http://localhost:5030/admin - Same view as main dashboard with delete functionality
- Click the ✕ button on any card to delete it from the database
- Confirmation dialog prevents accidental deletions
GET /api/webhooks- Get all container imagesPOST /api/diun- Receive Diun webhook (used by Diun)DELETE /api/webhooks/{image}- Delete an image (admin only)
DiunDash uses SQLite to store webhook data. The database is located at:
- Local:
./data/diun.db - Docker:
/app/data/diun.db(mounted volume)
- Rust 1.75 or later
- Cargo
cargo build --releasecargo run- Backend: Rust with Actix-web
- Database: SQLite (via rusqlite)
- Frontend: Vanilla JavaScript with modern CSS
- Containerization: Docker with multi-stage builds
DiunWeb/
├── src/
│ └── main.rs # Main application code
├── static/
│ └── index.html # Frontend dashboard
├── data/ # SQLite database (created at runtime)
├── Cargo.toml # Rust dependencies
├── Dockerfile # Docker build configuration
└── README.md # This file
[Add your license here]
Contributions are welcome! Please feel free to submit a Pull Request.
- Built for use with Diun - Docker Image Update Notifier
- Inspired by the need for better visualization of container image updates
Made with ❤️ and Rust