No description
  • Vue 47.7%
  • HTML 22.2%
  • JavaScript 14.1%
  • Go 12.7%
  • Makefile 1.8%
  • Other 1.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-11-03 07:18:27 +01:00
backend feat: onglets favoris/partage, widget partages MicroBin, connexion unique (cookie + ForwardAuth) 2026-11-03 07:18:27 +01:00
public Homepage dashboard : horloge animée, todo, notes, RSS, pomodoro, recherche 2026-04-09 12:49:55 +02:00
src feat: onglets favoris/partage, widget partages MicroBin, connexion unique (cookie + ForwardAuth) 2026-11-03 07:18:27 +01:00
.dockerignore Homepage dashboard : horloge animée, todo, notes, RSS, pomodoro, recherche 2026-04-09 12:49:55 +02:00
.env.example feat: widget rss branché sur miniflux, remplace feeds.json 2026-07-11 09:54:50 +02:00
.gitignore Homepage dashboard : horloge animée, todo, notes, RSS, pomodoro, recherche 2026-04-09 12:49:55 +02:00
.nvmrc Homepage dashboard : horloge animée, todo, notes, RSS, pomodoro, recherche 2026-04-09 12:49:55 +02:00
clock-lille.html Homepage dashboard : horloge animée, todo, notes, RSS, pomodoro, recherche 2026-04-09 12:49:55 +02:00
docker-compose.yml feat: widget rss branché sur miniflux, remplace feeds.json 2026-07-11 09:54:50 +02:00
Dockerfile feat: onglets favoris/partage, widget partages MicroBin, connexion unique (cookie + ForwardAuth) 2026-11-03 07:18:27 +01:00
index.html Homepage dashboard : horloge animée, todo, notes, RSS, pomodoro, recherche 2026-04-09 12:49:55 +02:00
Makefile chore: makefile auto-détecte podman/docker 2026-07-11 09:54:50 +02:00
nginx.conf Homepage dashboard : horloge animée, todo, notes, RSS, pomodoro, recherche 2026-04-09 12:49:55 +02:00
package-lock.json Homepage dashboard : horloge animée, todo, notes, RSS, pomodoro, recherche 2026-04-09 12:49:55 +02:00
package.json Homepage dashboard : horloge animée, todo, notes, RSS, pomodoro, recherche 2026-04-09 12:49:55 +02:00
README.md feat: onglets favoris/partage, widget partages MicroBin, connexion unique (cookie + ForwardAuth) 2026-11-03 07:18:27 +01:00
vite.config.js Homepage dashboard : horloge animée, todo, notes, RSS, pomodoro, recherche 2026-04-09 12:49:55 +02:00

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, et veille RSS (proxy Miniflux)
  • Veille RSS : Miniflux externe (MINIFLUX_URL), interrogé par le backend en Basic auth
  • Déploiement : k3s (repo infra-homelab : images construites par kaniko dans le cluster, playbook 60j, puis playbook 60 tag homepage). Docker Compose reste utilisable en local.

Démarrage rapide

# 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)
  • Partages : partages MicroBin actifs et temps restant (MICROBIN_URL, page /list lue par le backend)
  • Onglets favoris / partage : Linkding et MicroBin intégrés en iframe (/favoris, /partage), visibles une fois déverrouillé

Authentification

Le dashboard est public. Todo, notes, partages et onglets sont protégés par le mot de passe du dashboard (API_TOKEN), saisi via le cadenas en bas de page.

Connexion unique : /api/auth pose aussi le cookie signé hp_sso sur SSO_COOKIE_DOMAIN (30 jours, clé dérivée d'API_TOKEN : le changer déconnecte partout). Traefik interroge /api/verify (ForwardAuth) avant Linkding et MicroBin : cookie valide = 200 + Remote-User, sinon redirection vers le dashboard avec ?next=, qui y renvoie après déverrouillage. /api/logout (cadenas) supprime le cookie. CORS_ORIGIN doit être l'URL exacte du dashboard pour que le navigateur accepte le cookie.

Configuration

  • Liens : src/data/links.json
  • Flux RSS : src/data/feeds.json
  • Ports / tokens : .env