Files
DiunDashboard/docs/index.md
Jean-Luc Makiola d664e88fff
All checks were successful
CI / build-test (push) Successful in 1m2s
**docs:** expand index.md with architecture, quick start, and tech stack
- 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
2026-02-27 15:31:49 +01:00

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!*