Transforme tes photos de notes manuscrites en Markdown structure, synchronise avec Obsidian.
photo -> IA vision -> Markdown -> vault Obsidian
- Apercu
- 100% gratuit
- Configuration IA
- Stack
- Installation
- Configuration
- Deploiement
- Sync Obsidian
- Prompts personnalises
- Structure
Scrip est une PWA qui transforme automatiquement tes photos de cours en notes Markdown structurees, puis les synchronise avec ton vault Obsidian via WebDAV.
[Photo] -> [OCR + IA vision] -> [Markdown structure] -> [Obsidian vault]
|
Structuration automatique
Correction OCR contextuelle
Regions visuelles detectees
| Composant | Option gratuite |
|---|---|
| OCR + structuration | Ollama - gemma4:31b-cloud en cloud, sans GPU (recommande) |
| Alt. cloud | Google AI Studio - Gemini avec quota genereux |
| Hebergement | VPS ~3-5 EUR/mois, ou en local |
| Sync Obsidian | WebDAV integre, aucun service tiers |
Config recommandee :
PIPELINE_MODE=ollama+OLLAMA_MODEL=gemma4:31b-cloud- aucune cle API requise.
Choisis ton provider selon tes besoins - tu peux en activer plusieurs, Scrip bascule automatiquement :
Ollama - recommande, 100% gratuit
Les modeles :cloud sont heberges sur les serveurs Ollama. Pas de GPU, pas de frais, pas de cle API.
Linux (serveur) :
curl -fsSL https://ollama.com/install.sh | sh
systemctl enable ollama && systemctl start ollama
ollama pull gemma4:31b-cloudMac / Windows : telecharger sur ollama.com, puis :
ollama pull gemma4:31b-cloudModeles recommandes - voir tous les modeles vision+cloud :
| Modele | Qualite | Quota |
|---|---|---|
gemma4:31b-cloud |
Tres bon sur le francais | Modere - recommande |
qwen3-vl:32b-cloud |
Excellent sur tableaux et schemas | Eleve |
qwen3.5:cloud |
Tres bonne comprehension | Modere+ |
.env :
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=gemma4:31b-cloud
OLLAMA_VALIDATION=trueGoogle Gemini - quota gratuit genereux
- Va sur aistudio.google.com/apikey
- Clique Create API key - pas de carte bancaire requise
- Copie dans
.env:
GOOGLE_API_KEY=ta_cle_iciScrip essaie gemini-2.5-flash en premier et bascule automatiquement sur gemini-1.5-flash-latest puis gemini-1.5-flash-8b si le quota est atteint.
NVIDIA Build - quota offert a la creation
- Cree un compte sur build.nvidia.com
- Genere une cle dans API Keys
- Copie dans
.env:
PIPELINE_MODE=nvidia
NVIDIA_API_KEY=ta_cle_iciMistral - OCR manuscrit dedie
Utilise pixtral-large-latest pour l'OCR des notes manuscrites - excellent sur l'ecriture a la main.
- Cree un compte sur console.mistral.ai
- Genere une cle dans API Keys
- Copie dans
.env:
PIPELINE_MODE=mistral
MISTRAL_API_KEY=ta_cle_iciOpenRouter - dizaines de modeles gratuits
OpenRouter donne acces a des dizaines de modeles, dont plusieurs gratuits (suffixe :free).
- Cree un compte sur openrouter.ai
- Cree une cle dans Keys
- Copie dans
.env:
OPENROUTER_API_KEY=ta_cle_iciModeles gratuits recommandes (configurables via OPENROUTER_VISION_MODEL) :
google/gemma-4-26b-a4b-it:freegoogle/gemma-4-31b-it:freemeta-llama/llama-3.3-70b-instruct:free
Scrip bascule sur openrouter/auto si la limite journaliere est atteinte.
| Couche | Technologies |
|---|---|
| Backend | Node.js 20, Express, lowdb (JSON) |
| Frontend | React 18, Vite, Tailwind CSS |
| IA | Ollama / Google Gemini / NVIDIA / Mistral / OpenRouter |
| Sync | WebDAV natif, compatible Obsidian Remotely Save |
Prerequis : Node.js 20+, Ollama (recommande, gratuit)
git clone https://github.com/Gabizoc/Scrip.git
cd Scrip
chmod +x setup.sh && ./setup.shLe script installe toutes les dependances, pose les questions de configuration (auth, pipeline, cles API, modeles) et genere le .env automatiquement.
Installation manuelle (sans le script)
cp .env.example .env
# Editer .env manuellement
npm install
cd backend && npm install && cd ..
cd frontend && npm install && npm run build && cd ..Minimum requis dans
.env:AUTH_PASSWORD,SESSION_SECRET
Copier .env.example en .env et remplir :
| Variable | Requis | Description |
|---|---|---|
AUTH_PASSWORD |
oui | Mot de passe pour se connecter |
SESSION_SECRET |
oui | Secret aleatoire (32+ chars) |
PUBLIC_URL |
non | URL publique (pour les liens WebDAV) |
GOOGLE_API_KEY |
non | Cle Google AI Studio pour Gemini |
OLLAMA_BASE_URL |
non | URL du serveur Ollama |
PIPELINE_MODE |
non | auto (defaut) / ollama / google / nvidia / mistral |
Generer un SESSION_SECRET :
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"Developpement local
cd backend && npm install && cd ..
npm run devOuvre http://localhost:5000
Le frontend est servi par Vite en dev - pas besoin de le builder.
Production (VPS + PM2)
cd backend && npm install && cd ..
cd frontend && npm run build && cd ..
pm2 start ecosystem.config.cjsReset de la base de donnees :
node backend/scripts/reset-db.jsNginx
cp nginx/scrip.conf.example /etc/nginx/sites-available/scrip
# Editer le fichier et remplacer YOUR_DOMAIN par ton domaine
ln -s /etc/nginx/sites-available/scrip /etc/nginx/sites-enabled/scrip
nginx -t && systemctl reload nginxHTTPS avec Certbot (Let's Encrypt)
apt install certbot python3-certbot-nginx
certbot --nginx -d ton-domaine.comCertbot modifie automatiquement la config Nginx et renouvelle le certificat via un cron. Pour verifier le renouvellement automatique :
certbot renew --dry-run- Installer le plugin Remotely Save dans Obsidian
- Choisir WebDAV, entrer l'URL :
https://ton-domaine.com/webdav - Identifiant et mot de passe : configures dans Parametres > WebDAV
- Remote base dir : meme valeur que "Dossier de synchronisation" dans Parametres
Reglages recommandes dans Remotely Save :
| Parametre | Valeur recommandee |
|---|---|
| Synchronisation automatique au demarrage | Une fois, 1 seconde apres le demarrage |
| Sync a la sauvegarde (experimental) | Activer |
| Annuler la sync si modification superieure a % | 100 (protection desactivee) |
Ajouter un fichier dans backend/prompts/ en suivant le template prompt.example.js :
export const name = 'Ma matiere';
export const prompt = `Ton prompt personnalise...`;Il apparait automatiquement dans le dropdown lors de la creation d'une matiere.
Un bug ? Une question sur l'installation ? Tu veux adapter Scrip a ta propre utilisation ?
- Ouvre une issue GitHub
- Ou contacte-moi sur gabizoc.fr
D'autres projets disponibles sur gabizoc.fr.