All checks were successful
CI / build-test (push) Successful in 1m2s
- Add detailed architecture and workflow diagram to explain dashboard functionality - Include a "Quick Start" section with Docker Compose setup instructions - Document tech stack and layers used in the project - Enhance feature descriptions for better clarity and user guidance
89 lines
3.0 KiB
Markdown
89 lines
3.0 KiB
Markdown
---
|
|
layout: home
|
|
|
|
hero:
|
|
name: DIUN Webhook Dashboard
|
|
tagline: A modern dashboard for Docker image update notifications
|
|
actions:
|
|
- theme: brand
|
|
text: Get Started
|
|
link: /guide/
|
|
- theme: alt
|
|
text: View on Gitea
|
|
link: https://gitea.jeanlucmakiola.de/makiolaj/DiunDashboard
|
|
|
|
features:
|
|
- title: Real-time Webhooks
|
|
details: Receives DIUN webhook events and displays image updates instantly in a modern dashboard.
|
|
- title: Persistent Storage
|
|
details: Events are stored in SQLite so they survive restarts. No external database required.
|
|
- title: Organize with Tags
|
|
details: Group and tag images to keep your update notifications organized. Dismiss updates you've reviewed.
|
|
- title: Secure by Default
|
|
details: Optional token-based webhook authentication. Just set WEBHOOK_SECRET and you're protected.
|
|
- title: Docker Ready
|
|
details: Ship with a multi-stage Dockerfile and Docker Compose configs for both production and development.
|
|
- title: REST API
|
|
details: Full JSON API for updates, tags, assignments, and acknowledgements. Easy to integrate with other tools.
|
|
---
|
|
|
|
## Quick Start
|
|
|
|
Get up and running in seconds with Docker Compose:
|
|
|
|
```yaml
|
|
# compose.yml
|
|
services:
|
|
diun-dashboard:
|
|
image: gitea.jeanlucmakiola.de/makiolaj/diundashboard:latest
|
|
ports:
|
|
- "8080:8080"
|
|
environment:
|
|
- DB_PATH=/data/diun.db
|
|
- WEBHOOK_SECRET=your-secret-here # optional
|
|
volumes:
|
|
- diun-data:/data
|
|
|
|
volumes:
|
|
diun-data:
|
|
```
|
|
|
|
```bash
|
|
docker compose up -d
|
|
# open http://localhost:8080
|
|
```
|
|
|
|
## How It Works
|
|
|
|
<div class="architecture">
|
|
|
|
**DIUN** detects Docker image updates and sends a webhook to the dashboard. The Go backend persists events to SQLite and serves them via a REST API. The React frontend polls for updates and displays them in a modern, responsive UI.
|
|
|
|
</div>
|
|
|
|
```
|
|
┌───────┐ POST /webhook ┌──────────────┐ SQLite ┌─────────┐
|
|
│ DIUN │ ──────────────────► │ Go Backend │ ◄──────────► │ diun.db │
|
|
└───────┘ └──────┬───────┘ └─────────┘
|
|
│
|
|
GET /api/updates
|
|
│
|
|
┌──────▼───────┐
|
|
│ React SPA │
|
|
│ (Dashboard) │
|
|
└──────────────┘
|
|
```
|
|
|
|
### Tech Stack
|
|
|
|
| Layer | Technology |
|
|
|-------|-----------|
|
|
| Backend | Go, `net/http`, `modernc.org/sqlite` |
|
|
| Frontend | React 19, Vite, Tailwind CSS, shadcn/ui |
|
|
| Database | SQLite (embedded, no external deps) |
|
|
| Tooling | Bun, Docker, Gitea Actions CI/CD |
|
|
|
|
## Screenshot
|
|
|
|
> *Screenshot coming soon — run the dashboard locally to see it in action!*
|