This repository has no description
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.