135 lines
6.9 KiB
Markdown
135 lines
6.9 KiB
Markdown
---
|
|
title: HymnoScribe
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, document-management, paroles, chants, lyrique, typescript, nodejs]
|
|
confidence: medium
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=document-management, https://github.com/jeremyvigneron/hymnoscribe]
|
|
---
|
|
|
|
# HymnoScribe 🎼
|
|
|
|
> **Gestionnaire de paroles de chants/cantiques/hymnes** : uploadez vos textes liturgiques ou musicaux, HymnoScribe les indexe, les classe par thème/langue/tonalité, et permet la recherche/transposition pour les chefs de chœur.
|
|
|
|
| Métadonnée | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | À compléter (projet jeune) |
|
|
| **GitHub** | https://github.com/jeremyvigneron/hymnoscribe |
|
|
| **License** | MIT (à vérifier) |
|
|
| **Langage** | TypeScript / Node.js (Express + React) |
|
|
| **Étoiles** | ⭐0 |
|
|
| **Dernière MAJ** | 2026-03-20 (1ère release) |
|
|
| **Catégorie** | [[cat-document-management]] |
|
|
|
|
## Description
|
|
|
|
HymnoScribe est un **projet de niche** (0 étoiles sur GitHub, en démarrage) destiné à combler un manque dans la **gestion de répertoires de chants** pour les communautés religieuses, chœurs paroissiaux, chorales, et formations musicales. Le problème résolu : un chef de chœur ou un organiste accumule souvent des **centaines de partitions/textes** (PDF, scans de vieux recueils, fichiers Word) éparpillés entre Dropbox, email, clés USB, sans aucun moyen de les retrouver par tonalité, tempo, langue, ou thème liturgique.
|
|
|
|
L'**objectif** de HymnoScribe est d'offrir une **base de données structurée** de chants avec : **métadonnées riches** (titre original, traduction, auteur, compositeur, année, tonalité, tempo, durée, langue, thème liturgique — Avent, Carême, Pâques, etc.), **recherche multi-critères** (par langue, tonalité, occasion), **transposition automatique** (modèle ABC), **exports** PDF propre, slides pour vidéoprojection, et **impression** de recueil.
|
|
|
|
L'**architecture** est volontairement **simple** : backend Node.js (Express + Prisma), frontend React, base **SQLite** par défaut. Le projet est **naissant** (quelques mois de développement), avec une équipe solo. Il est listé ici à titre informatif pour les communautés qui auraient le besoin spécifique — l'**adoption doit être prudente** (0 étoiles, peu de retours communautaires, breaking changes probables). Idéal pour des testeurs/contributeurs prêts à remonter des bugs.
|
|
|
|
## Installation
|
|
|
|
### Via Docker Compose (recommandé)
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
services:
|
|
hymnoscribe:
|
|
image: ghcr.io/jeremyvigneron/hymnoscribe:latest
|
|
container_name: hymnoscribe
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8087:3000"
|
|
environment:
|
|
- DATABASE_URL=file:/data/hymnoscribe.db
|
|
- UPLOAD_DIR=/data/uploads
|
|
- JWT_SECRET=Change...50
|
|
- APP_URL=https://chants.example.com
|
|
- NODE_ENV=production
|
|
volumes:
|
|
- hymnoscribe-data:/data
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--spider", "-q", "http://localhost:3000/"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
|
|
volumes:
|
|
hymnoscribe-data:
|
|
```
|
|
|
|
> **Avertissement** : le tag `latest` peut être instable, projet en phase alpha. Privilégier un tag pinné (ex: `0.1.0`).
|
|
|
|
### Installation manuelle
|
|
|
|
1. **Pré-requis** : Node.js 18+, npm 9+, SQLite (inclus dans Node).
|
|
2. **Clone & install** : `git clone https://github.com/jeremyvigneron/hymnoscribe && cd hymnoscribe && npm install`.
|
|
3. **Build** : `npm run build` (build frontend React + backend Express).
|
|
4. **Config** : copier `.env.example` vers `.env` et renseigner `JWT_SECRET`, `DATABASE_URL`, `UPLOAD_DIR`.
|
|
5. **Migrations** : `npx prisma migrate deploy`.
|
|
6. **Lancer** : `npm start` (port 3000 par défaut).
|
|
7. **Premier admin** : inscription via l'UI (mode open ou sur invitation).
|
|
|
|
## Configuration
|
|
|
|
- **Premier admin** : créer le compte admin via l'UI (Settings → Users), puis désactiver l'inscription ouverte.
|
|
- **Thèmes liturgiques** : configurer les tags (Avent, Noël, Carême, Pâques, Ordinaire, Mariage, Funérailles, etc.).
|
|
- **Langues** : configurer les langues supportées (fra, lat, eng, deu, etc.) — utile pour les chants trilingues.
|
|
- **Tonalités** : configurer la liste des tonalités (C, D, E, F, G, A, B avec #/b) et les conventions de transposition.
|
|
- **Import massif** : si supporté, importer un CSV/JSON de chants existants.
|
|
- **HTTPS** : obligatoire via reverse proxy.
|
|
- **Backups** : copier le dossier `/data` (DB SQLite + fichiers uploadés).
|
|
- **Partition rendering** : si supporté, configurer une lib de rendu (VexFlow, abcjs) via les options.
|
|
|
|
## Alternatives
|
|
|
|
### Open Source
|
|
- **ChOrd** (Christian Online Resource Database) — index communautaire de chants (non self-hostable, web public)
|
|
- **Hymnary.org** — base académique publique (non self-hostable)
|
|
- **Hymnal.net** — répertoire en ligne
|
|
- **OpenLP** (logiciel de présentation) — gère les paroles, pas vraiment une GED
|
|
- **Quelea** (logiciel de projection) — idem, projection de paroles
|
|
- **Zefania XML** — format d'échange de recueils
|
|
- [[app-papra]] — GED TypeScript minimaliste (plus généraliste)
|
|
- [[app-pdfding]] — gestionnaire PDF (peut stocker des scans de partitions)
|
|
|
|
### Propriétaires
|
|
- **Planning Center Services** — cloud pour équipes de culte (freemium)
|
|
- **Faithlife Proclaim** — présentation + chants (freemium)
|
|
- **SongSelect** (CCLI) — licences + paroles (payant, ~5€/mois)
|
|
- **Multitracks.com** — cloud pour équipes de louange (freemium)
|
|
- **iWorship** (non maintenu) — vieille app
|
|
- **WorshipHouse Media** — ressources + paroles (cloud)
|
|
|
|
## Sécurité
|
|
|
|
- **HTTPS obligatoire** + HSTS via reverse proxy.
|
|
- **JWT** : `JWT_SECRET` long et aléatoire (`openssl rand -hex 64`).
|
|
- **2FA** : non natif (à confirmer en v0.2+).
|
|
- **SSO** : non supporté — compter sur Authelia/Authentik via reverse proxy.
|
|
- **Chiffrement at-rest** : monter le volume sur stockage chiffré.
|
|
- **Permissions** : multi-utilisateurs avec isolation, à confirmer en v0.2+.
|
|
- **Audit** : logs d'accès aux chants et modifications.
|
|
- **Mises à jour** : suivre le repo, breaking changes probables en phase alpha.
|
|
- **CVE** : Node.js/Express à jour, surveiller les issues GitHub.
|
|
- **Backups** : SQLite-based, un `cp` du `.db` suffit.
|
|
- **Attention** : projet 0 étoiles, à tester en profondeur avant déploiement critique (église/paroisse).
|
|
- **RGPD** : les chants peuvent contenir des auteurs vivants (données personnelles), respecter les licences (CCLI, SACEM).
|
|
|
|
## Ressources
|
|
- Site officiel : (à venir / pas encore public)
|
|
- GitHub : https://github.com/jeremyvigneron/hymnoscribe
|
|
- Issues / discussions : https://github.com/jeremyvigneron/hymnoscribe/issues
|
|
- selfh.st : https://selfh.st/apps/?tag=document-management
|
|
|
|
## Pages Liées
|
|
- [[cat-document-management]] — catégorie parente
|
|
- [[app-papra]] — GED TS plus mature (alternative généraliste)
|
|
- [[app-pdfding]] — stockage PDF (peut contenir des partitions)
|
|
- [[recettes-docker-compose]] — templates de déploiement
|
|
- [[securisation-home-lab]] — bonnes pratiques sécurité
|