| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
🇫🇷 Version française ⬇️ Faites défiler pour la version française complète ⬇️
Multi-site · Multi-language · On-premise · AGPL-3.0
Quick Start · Features · Screenshots · Architecture · Contributing · 🇫🇷 Version française
In one sentence: SCRIBE turns a shared Word document for crisis management into a real platform — fast, traced, multi-site, and free.
When a major incident hits a hospital — a cyberattack, a mass casualty event, an epidemic peak, a Major Incident Plan activation — crisis directors are often forced to coordinate with the only tool they have at hand: a shared Word document.
No real-time traceability. No reliable timestamps. No capacity overview. No territorial coordination. Just a document everyone edits at the same time, hoping nothing gets lost.
SCRIBE was built to change that.
It is a complete, mature, ready-to-deploy platform that gives crisis directors, CISOs, medical coordinators, and supervisors the structured information they need — without requiring a cloud, a vendor contract, or a six-month integration project.
From large teaching hospitals to community clinics. From a single facility to a territorial network coordinated by a regional health agency. SCRIBE scales down as gracefully as it scales up.
Open source under AGPL-3.0. No commercial license, no enterprise edition, no premium tier. The whole platform, for everyone, forever.
# 1. Download the latest release
wget https://github.com/nocomp/scribe/releases/latest/download/scribe_v2500_master_public.zip
# 2. Unzip
unzip scribe_v2500_master_public.zip
cd scribe_v2500
# 3. Launch
./lancer_scribe.sh
# 4. Open in your browser
open http://localhost:9000
# 5. Login
# Username: supervision
# Password: changeme (change immediately on first login)Once logged in, follow the onboarding wizard (~5 minutes):
Your instance is now live on its own port (8000, 8001, ...) and ready to use.
If you need to wipe everything and start from scratch:
./lancer_scribe.sh --reset # Linux/Mac
LANCER_SCRIBE.bat --reset # WindowsThis clears the onboarding flag, removes all instance databases, and lets you re-run the wizard cleanly.
| Layer | Technology |
|---|---|
| Backend | FastAPI (Python) |
| ORM | SQLAlchemy |
| Database | SQLite (one DB per instance) |
| Frontend | Vanilla JavaScript (SPA) |
| Cartography | Leaflet.js + OSRM (ambulance routing) |
| Tile provider | CartoDB Light |
| AI (optional) | Albert (French government LLM) |
| Design system | DSFR (Système de Design de l'État Français) |
┌─────────────────────────────────┐
│ Master / Collector :9000 │
│ - Onboarding wizard │
│ - Territorial supervision │
│ - Multi-facility aggregator │
└────────────┬────────────────────┘
│
┌──────────────────┼──────────────────┐
│ │ │
┌─────▼─────┐ ┌─────▼─────┐ ┌─────▼─────┐
│ Facility A│ │ Facility B│ │ Facility C│
│ :8000 │ │ :8001 │ │ :8002 │
│ │ │ │ │ │
│ Own SQLite│ │ Own SQLite│ │ Own SQLite│
│ DB │ │ DB │ │ DB │
└───────────┘ └───────────┘ └───────────┘
Patient data Patient data Patient data
STAYS LOCAL STAYS LOCAL STAYS LOCAL
Each facility runs an independent SCRIBE instance with its own database. The master collector aggregates only non-nominative indicators (incidents, capacity tension, transfer counts) — never patient names, identifiers, or medical data.
git clone https://github.com/nocomp/scribe.git
cd scribe
pip install -r requirements.txt
python collecteur/collecteur.pyscribe/ ├── main.py # FastAPI entry point (per-facility instance) ├── app/ │ ├── models.py # SQLAlchemy models (22 tables) │ ├── database.py # DB connection │ ├── api/ # REST routes │ │ ├── v140.py # Main app routes │ │ ├── admin_uf.py # UF administration │ │ ├── cartographie.py # Mapping and geolocation │ │ └── ... │ └── static/ # SPA frontend │ ├── index.html │ └── js/scribe.js ├── master/ │ ├── master_routes.py # Master routes (onboarding, instance management) │ ├── instances_manager.py # Sub-process orchestration │ ├── onboarding.html # Wizard UI │ └── instances.html # Instance management UI ├── collecteur/ │ ├── collecteur.py # Territorial collector (:9000) │ └── collecteur_admin.json # Admin token (auto-generated on first launch) ├── plugins/ # Optional plugins (chat, exercise, etc.) └── data/instances/<SIGLE>/ # Per-instance databases
Each facility's configuration lives in an XML file generated by the wizard. The wizard accepts an Excel template (SCRIBE_config_etablissement.xlsx) to bulk-load:
Issues and pull requests welcome. See CONTRIBUTING.md for guidelines.
Good first issues are tagged with good first issue.
Translation contributions are especially welcome — see the locales/ folder.
SCRIBE is an open project. Contributions are welcome from healthcare professionals, developers, translators, and anyone interested in hospital resilience.
See CONTRIBUTING.md for development setup and code style guidelines.
We follow the Contributor Covenant. See CODE_OF_CONDUCT.md.
If you discover a security vulnerability, please do not open a public issue. Email nocomp@gmail.com instead.
See SECURITY.md for the full disclosure policy.
If SCRIBE is useful to you, your team, or your facility — please star the repo. It helps other hospitals discover the project.
SCRIBE is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
This means you are free to:
Under the condition that:
See LICENSE for the full text.
SCRIBE was built in parallel with the author's CISO duties at a French hospital. Special thanks to the beta-testing teams who provided detailed feedback over months of testing — their input shaped the maturity of v2.5.0.
Built with FastAPI, SQLAlchemy, Leaflet, OSRM, and the DSFR.
En une phrase : SCRIBE transforme le fichier Word partagé pour la gestion de crise en une vraie plateforme — rapide, tracée, multi-sites, et libre.
Quand un incident majeur survient dans un hôpital — cyberattaque, afflux massif, pic épidémique, déclenchement du Plan Blanc — les directeurs de crise sont souvent forcés de coordonner avec le seul outil qu'ils ont sous la main : un document Word partagé.
Pas de traçabilité temps réel. Pas d'horodatage fiable. Pas de vision capacitaire globale. Pas de coordination territoriale. Juste un document que tout le monde modifie en même temps en espérant que rien ne se perde.
SCRIBE a été conçu pour changer cela.
C'est une plateforme complète, mature et prête au déploiement, qui donne aux directeurs de crise, aux RSSI, aux médecins coordinateurs et aux superviseurs l'information structurée dont ils ont besoin — sans cloud, sans contrat éditeur, sans projet d'intégration de six mois.
Du CHU au centre hospitalier de proximité. D'un établissement unique à un réseau territorial coordonné par une ARS. SCRIBE s'adapte aussi élégamment vers le bas que vers le haut.
Open source sous licence AGPL-3.0. Pas de licence commerciale, pas d'édition entreprise, pas d'offre premium. Toute la plateforme, pour tous, pour toujours.
# 1. Télécharger la dernière release
wget https://github.com/nocomp/scribe/releases/latest/download/scribe_v2500_master_public.zip
# 2. Décompresser
unzip scribe_v2500_master_public.zip
cd scribe_v2500
# 3. Lancer
./lancer_scribe.sh
# 4. Ouvrir dans le navigateur
open http://localhost:9000
# 5. Se connecter
# Identifiant : supervision
# Mot de passe : changeme (à changer immédiatement)Une fois connecté, suivez le wizard d'onboarding (~5 minutes) :
Votre instance est maintenant en ligne sur son propre port (8000, 8001, ...) et prête à l'emploi.
Si vous avez besoin de tout effacer et recommencer :
./lancer_scribe.sh --reset # Linux/Mac
LANCER_SCRIBE.bat --reset # WindowsCela nettoie le flag d'onboarding, supprime toutes les bases d'instance, et vous permet de relancer le wizard proprement.
| Couche | Technologie |
|---|---|
| Backend | FastAPI (Python) |
| ORM | SQLAlchemy |
| Base de données | SQLite (une base par instance) |
| Frontend | JavaScript Vanilla (SPA) |
| Cartographie | Leaflet.js + OSRM (routing ambulance) |
| Fond de carte | CartoDB Light |
| IA (optionnel) | Albert (LLM du gouvernement français) |
| Design system | DSFR (Système de Design de l'État) |
┌─────────────────────────────────┐
│ Master / Collecteur :9000 │
│ - Wizard d'onboarding │
│ - Supervision territoriale │
│ - Agrégateur multi-établis. │
└────────────┬────────────────────┘
│
┌──────────────────┼──────────────────┐
│ │ │
┌─────▼─────┐ ┌─────▼─────┐ ┌─────▼─────┐
│ Étabt A │ │ Étabt B │ │ Étabt C │
│ :8000 │ │ :8001 │ │ :8002 │
│ │ │ │ │ │
│ Base SQL │ │ Base SQL │ │ Base SQL │
│ propre │ │ propre │ │ propre │
└───────────┘ └───────────┘ └───────────┘
Données Données Données
patient LOCALES patient LOCALES patient LOCALES
Chaque établissement fait tourner une instance SCRIBE indépendante avec sa propre base. Le collecteur master n'agrège que des indicateurs non-nominatifs (incidents, tension capacitaire, comptages de transferts) — jamais de noms, identifiants ou données médicales patient.
git clone https://github.com/nocomp/scribe.git
cd scribe
pip install -r requirements.txt
python collecteur/collecteur.pyscribe/ ├── main.py # Point d'entrée FastAPI (instance par établissement) ├── app/ │ ├── models.py # Modèles SQLAlchemy (22 tables) │ ├── database.py # Connexion DB │ ├── api/ # Routes REST │ │ ├── v140.py # Routes principales │ │ ├── admin_uf.py # Administration UF │ │ ├── cartographie.py # Cartographie et géolocalisation │ │ └── ... │ └── static/ # Frontend SPA │ ├── index.html │ └── js/scribe.js ├── master/ │ ├── master_routes.py # Routes master (onboarding, gestion instances) │ ├── instances_manager.py # Orchestration sous-process │ ├── onboarding.html # UI du wizard │ └── instances.html # UI de gestion des instances ├── collecteur/ │ ├── collecteur.py # Collecteur territorial (:9000) │ └── collecteur_admin.json # Token admin (auto-généré au 1er lancement) ├── plugins/ # Plugins optionnels (chat, exercice, etc.) └── data/instances/<SIGLE>/ # Bases par instance
La configuration de chaque établissement vit dans un fichier XML généré par le wizard. Le wizard accepte un modèle Excel (SCRIBE_config_etablissement.xlsx) pour charger en lot :
Issues et pull requests bienvenues. Voir CONTRIBUTING.md pour les conventions.
Les "good first issues" sont marquées avec le tag good first issue.
Les contributions en traduction sont particulièrement bienvenues — voir le dossier locales/.
SCRIBE est un projet ouvert. Les contributions sont bienvenues de la part des professionnels de santé, des développeurs, des traducteurs, et de quiconque s'intéresse à la résilience hospitalière.
Voir CONTRIBUTING.md pour la configuration de l'environnement de développement et les conventions de code.
Nous suivons le Contributor Covenant. Voir CODE_OF_CONDUCT.md.
Si vous découvrez une vulnérabilité de sécurité, n'ouvrez pas d'issue publique. Envoyez un email à nocomp@gmail.com à la place.
Voir SECURITY.md pour la politique de divulgation complète.
Si SCRIBE vous est utile, à vous, votre équipe ou votre établissement — mettez une étoile au repo. Cela aide d'autres hôpitaux à découvrir le projet.
SCRIBE est sous licence GNU Affero General Public License v3.0 (AGPL-3.0).
Cela signifie que vous êtes libres de :
À condition que :
Voir LICENSE pour le texte complet.
SCRIBE a été construit en parallèle des missions de RSSI de son auteur dans un hôpital français. Remerciements particuliers aux équipes de bêta-test qui ont fourni des retours détaillés sur plusieurs mois — leur contribution a façonné la maturité de la v2.5.0.
Construit avec FastAPI, SQLAlchemy, Leaflet, OSRM et le DSFR.
| Back | FazBrowse Home | New Git URL |