Something went wrong. Try again.
This repository has no description
Something went wrong. Try again.
TypeScript 90%
CSS 8%
Dockerfile 2%
JavaScript <1%
README.md
Toutou 🐶 #
Carnet de bord mobile-first pour suivre son chiot : repas, poids, vaccins et santé. Application web installable (PWA), authentifiée par OIDC — un seul chiot, pas de gestion de permissions.
Stack #
- Next.js 15 (App Router) + TypeScript
- Auth.js v5 — provider OIDC générique, session JWT
- Prisma + PostgreSQL
- Tailwind CSS v4
Développement #
cp .env.example .env # renseigner OIDC_* et AUTH_SECRET (openssl rand -base64 32)
docker compose up -d db # PostgreSQL local
npm install
npm run db:push # crée le schéma
npm run dev # http://localhost:3000
Configuration OIDC #
Déclarer un client sur ton SSO (Keycloak, Authentik…) avec l'URL de callback :
{AUTH_URL}/api/auth/callback/oidc
Puis renseigner OIDC_ISSUER, OIDC_CLIENT_ID, OIDC_CLIENT_SECRET, AUTH_URL et AUTH_SECRET.
Structure #
prisma/schema.prisma Modèle : Dog, Meal, Vaccine, WeightEntry, HealthEvent
src/auth.ts Config Auth.js (OIDC)
src/middleware.ts Protection de toutes les routes
src/lib/db.ts Client Prisma
src/lib/actions.ts Server Actions (ajout repas / poids / vaccin)
src/app/ Pages mobile : accueil, repas, poids, vaccins, profil
src/components/ Navigation basse type app native
public/manifest.webmanifest PWA installable
Production #
docker build -t toutou .
Image standalone prête à déployer (Dockerfile fourni). Pour le homelab : chart Helm générique + config
(Ingress, hostname, IP allowlist) côté GitOps.