diff --git a/docs/index.md b/docs/index.md index 9c06865..58f4cd7 100644 --- a/docs/index.md +++ b/docs/index.md @@ -19,4 +19,70 @@ features: 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 + +
+ +**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. + +
+ +``` +┌───────┐ 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!*