homepage/README.md
Nathan Leclercq f795cc48b5 Homepage dashboard : horloge animée, todo, notes, RSS, pomodoro, recherche
- Frontend Vue 3 (Composition API) + Vite + Vue Router
- Backend Go (stdlib) : API REST todo/notes + proxy RSS + auth token
- Docker Compose : SPA nginx + backend + Miniflux + Postgres
- Widgets : horloge canvas météo, todo 3 colonnes, notes persistées,
  agrégateur RSS multi-feeds, pomodoro, recherche DuckDuckGo (Ctrl+K)
- Auth : dashboard public, todo/notes protégés par token
- Widgets expandables (mode agrandi centré)
2026-04-09 12:49:55 +02:00

53 lines
1.7 KiB
Markdown

# Homepage
Dashboard personnel avec horloge animée, widgets todo/notes, agrégateur RSS, pomodoro et recherche rapide.
## Stack
- **Frontend** : Vue 3 (Composition API) + Vite + Vue Router
- **Backend** : Go (stdlib uniquement) — API REST pour todo, notes, proxy RSS
- **Déploiement** : Docker Compose (SPA nginx + backend Go + Miniflux + Postgres)
## Démarrage rapide
```bash
# 1. Configurer l'environnement
cp .env.example .env
# Éditer .env : changer les mots de passe et API_TOKEN
# 2. Lancer tout (backend + frontend dev)
make dev
# 3. Ouvrir http://localhost:5173
```
## Commandes
| Commande | Description |
|---|---|
| `make install` | Installer les dépendances npm |
| `make dev` | Lancer le backend (Docker) + frontend (Vite) |
| `make build` | Build de production dans `dist/` |
| `make up` | Lancer toute la stack Docker |
| `make down` | Arrêter la stack |
## Widgets
- **Horloge** : Canvas animé avec données météo (Open-Meteo), position solaire, 3 villes
- **Todo** : Vue 3 colonnes (hier/ajd/demain), persisté côté serveur, protégé par token
- **Notes** : Notes éphémères, persistées côté serveur, protégées par token
- **RSS** : Agrégateur multi-feeds (configurable via `src/data/feeds.json`)
- **Pomodoro** : Timer 25/5 min
- **Recherche** : Ctrl+K, DuckDuckGo avec support des bangs
- **Liens** : Panel de navigation (configurable via `src/data/links.json`)
## Authentification
Le dashboard est public. Les widgets todo et notes sont protégés par un token (`API_TOKEN` dans `.env`). Cliquer sur le cadenas en bas de page pour se connecter.
## Configuration
- **Liens** : `src/data/links.json`
- **Flux RSS** : `src/data/feeds.json`
- **Ports / tokens** : `.env`