Initial vault setup
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
---
|
||||
title: Norish
|
||||
created: 2026-06-08
|
||||
updated: 2026-06-08
|
||||
type: app
|
||||
tags: [catalogue, recipes, self-hosted, typescript]
|
||||
confidence: medium
|
||||
contested: false
|
||||
sources:
|
||||
- https://github.com/norish-recipes/norish
|
||||
---
|
||||
|
||||
# Norish 🍲
|
||||
> Application de recettes en temps réel pour familles et amis, avec partage et synchronisation instantanée.
|
||||
|
||||
| Métadonnée | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | https://github.com/norish-recipes/norish |
|
||||
| **GitHub** | https://github.com/norish-recipes/norish |
|
||||
| **License** | AGPL-3.0 |
|
||||
| **Langage** | TypeScript (Next.js) |
|
||||
| **Étoiles** | 1 064 |
|
||||
| **Dernière MAJ** | 2026-05-10 |
|
||||
| **Catégorie** | [[cat-recipes]] |
|
||||
|
||||
## Description
|
||||
Norish est une **application de gestion de recettes** pensée pour être partagée en **temps réel** au sein d'une famille ou d'un groupe d'amis. L'objectif est de retrouver la convivialité d'un cahier de recettes familial mais avec les avantages du numérique : recherche full-text, tags, photos, listes de courses, planification de repas et synchronisation instantanée entre tous les membres.
|
||||
|
||||
La **collaboration temps réel** est la caractéristique distinctive : plusieurs personnes peuvent éditer la même recette simultanément, ajouter des commentaires, noter un plat, suggérer des variations. Les notifications push informent les autres membres des modifications. Norish intègre aussi un **planificateur de repas hebdomadaire** et un **partage public** de certaines recettes via lien.
|
||||
|
||||
L'application supporte l'**import depuis URL** (scraping automatique), l'**export PDF/JSON**, la gestion des **unités** (système métrique + impérial) et un système d'**authentification multi-utilisateurs** avec rôles (admin, éditeur, lecteur). C'est une alternative jeune et active à Mealie / Tandoor, avec un focus particulier sur l'expérience sociale et la collaboration.
|
||||
|
||||
## Installation
|
||||
### Docker Compose
|
||||
```yaml
|
||||
services:
|
||||
norish:
|
||||
image: ghcr.io/norish-recipes/norish:latest
|
||||
container_name: norish
|
||||
environment:
|
||||
- DATABASE_URL=postgresql://norish:***@db:5432/norish
|
||||
- NEXTAUTH_SECRET=*** - NEXTAUTH_URL=https://recipes.example.com
|
||||
- NEXT_PUBLIC_APP_NAME=Norish
|
||||
volumes:
|
||||
- ./uploads:/app/uploads
|
||||
ports:
|
||||
- "3000:3000"
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.routers.norish.rule=Host(`recipes.example.com`)
|
||||
- traefik.http.routers.norish.entrypoints=websecure
|
||||
- traefik.http.routers.norish.tls.certresolver=letsencrypt
|
||||
- traefik.http.services.norish.loadbalancer.server.port=3000
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- db
|
||||
|
||||
db:
|
||||
image: postgres:16-alpine
|
||||
container_name: norish-db
|
||||
environment:
|
||||
- POSTGRES_USER=norish
|
||||
- POSTGRES_PASSWORD=*** - POSTGRES_DB=norish
|
||||
volumes:
|
||||
- ./pgdata:/var/lib/postgresql/data
|
||||
restart: unless-stopped
|
||||
```
|
||||
|
||||
## Configuration
|
||||
1. Cloner le repo ou utiliser l'image `ghcr.io/norish-recipes/norish:latest`.
|
||||
2. Générer un **`NEXTAUTH_SECRET`** fort (`openssl rand -hex 32`).
|
||||
3. Configurer la base **PostgreSQL** (URL dans `DATABASE_URL`).
|
||||
4. Lancer les migrations : `docker compose exec norish npx prisma migrate deploy`.
|
||||
5. Créer le compte admin depuis l'UI et désactiver les inscriptions publiques si non souhaité.
|
||||
|
||||
## Alternatives
|
||||
- **Open source** : [[app-mealie]] (référence, plus mature), [[app-tamari]] (léger, Python), [[app-vanilla-cookbook]] (PHP), Tandoor Recipes, Grocy (planning + inventaire), RecipeSage, Forkful, kptn, Cookpad-like (self-hosted), Bakin Recipe.
|
||||
- **Propriétaire** : Paprika Recipe Manager, CopyMeThat, Plan to Eat, Yummly, Samsung Food, BigOven, Cookpad (cloud, FR).
|
||||
|
||||
## Sécurité
|
||||
- **`NEXTAUTH_SECRET`** doit être changé avant le premier démarrage (clé de signature des sessions).
|
||||
- **HTTPS obligatoire** : les recettes familiales contiennent parfois des données sensibles (allergies, régimes).
|
||||
- **Authentification OIDC** supportée nativement pour intégrer Norish à l'écosystème du homelab.
|
||||
- **Backups PostgreSQL** : `pg_dump` quotidien + rotation des sauvegardes.
|
||||
- **Rate-limiting** sur les endpoints d'import Web pour éviter le spam de scraping.
|
||||
|
||||
## Ressources
|
||||
- Code : https://github.com/norish-recipes/norish
|
||||
- Wiki : https://github.com/norish-recipes/norish/wiki
|
||||
- Releases : https://github.com/norish-recipes/norish/releases
|
||||
- Issues : https://github.com/norish-recipes/norish/issues
|
||||
|
||||
## Pages Liées
|
||||
- [[cat-recipes]] — Catégorie parente
|
||||
- [[app-mealie]] — Gestionnaire de recettes mature
|
||||
- [[app-tamari]] — Alternative Python légère
|
||||
- [[recettes-docker-compose]] — Modèles de stacks
|
||||
Reference in New Issue
Block a user