- Fix useBrainstormSocket: stable guestId via useRef, remove setState in cleanup - Fix GhostCursor: direct DOM manipulation via refs, no useState re-renders - Fix all SQL embedding queries: add ::vector cast on text columns - Fix embedding truncation to 15000 chars (under 8192 token limit) - Fix NoteEmbedding INSERT: remove non-existent updatedAt column - Fix billing page: show all quota stats in grid instead of single metric - Fix usage meter: accordion expand/collapse, per-feature detail - Fix semantic search: rebuild 103 note embeddings, ::vector cast on vectorSearch - Fix brainstorm expand/manual-idea/create: ::vector cast on embedding SQL
7.5 KiB
Memento
Une application de prise de notes intelligente et powered by IA. Comme Google Keep, mais avec des notebooks, la recherche semantique, des agents IA et un serveur MCP integre.
Read in English | Guide complet | Guide utilisateur (captures)
Fonctionnalites
Notes et organisation
- Notes texte riche (style Notion), checklists, Markdown et texte brut
- Notebooks avec labels contextuels
- Grille masonry responsive et vue onglets (style OneNote)
- Upload d'images, partage de notes, archive et corbeille
- 10 themes pastel + mode sombre
- Historique des notes avec restauration de versions
- Reorganisation des cartes par drag-and-drop
IA et automatisation
- Recherche semantique par embeddings
- Generation automatique de tags et suggestions de titre
- Agents IA configurables avec instructions personnalisees et planification
- Conversations chat IA persistees
- Memory Echo - decouverte de connexions entre notes
- Organisation automatique par batch et labels intelligents
- Resumes de notebooks generes par IA
- Workflows visuels
- Notifications in-app pour les resultats des agents
Integrations
- Serveur MCP avec 22 outils - connecter Claude Desktop, N8N, ou tout client MCP
- API REST pour integrations personnalisees
- Support de flux RSS
- Tableau blanc Canvas/Lab (Excalidraw)
Plateforme
- 15 langues (FR, EN, AR, DE, ES, FA, HI, IT, JA, KO, NL, PL, PT, RU, ZH)
- Progressive Web App (PWA)
- Systeme de rappels avec recurrence
- Export/import de donnees (JSON)
- Panneau admin pour providers IA, SMTP et parametres
Demarrage rapide
Docker (recommande)
Le script de deploiement interactif s'occupe de tout - configuration, build et demarrage :
git clone https://github.com/yourusername/Momento.git
cd Momento
# macOS / Linux
./scripts/deploy-docker.sh
# Windows PowerShell
.\scripts\deploy-docker.ps1
Le script demande votre ADMIN_EMAIL (le premier utilisateur inscrit avec cet email obtient le role ADMIN), le provider IA et d'autres parametres. Les secrets sont generes automatiquement.
Ou manuellement :
cp .env.docker.example .env.docker
# Editer .env.docker : definir NEXTAUTH_URL, NEXTAUTH_SECRET et ADMIN_EMAIL
docker compose up -d
Developpement local
git clone https://github.com/yourusername/Momento.git
cd Momento
# macOS / Linux
./scripts/deploy-local.sh
# Windows PowerShell
.\scripts\deploy-local.ps1
Ou manuellement :
cd Momento/memento-note
cp .env.example .env
# Editer .env avec DATABASE_URL, NEXTAUTH_SECRET, ADMIN_EMAIL, etc.
npm install --legacy-peer-deps
npx prisma migrate dev
npm run dev
Providers IA
Memento supporte 8 providers IA, configurables independamment pour les tags, embeddings et chat :
| Provider | Type | Configuration |
|---|---|---|
| Ollama | Local, gratuit | docker compose --profile ollama up -d |
| OpenAI | Cloud, payant | Definir OPENAI_API_KEY |
| DeepSeek | Cloud, payant | Definir DEEPSEEK_API_KEY |
| OpenRouter | Cloud, payant | Definir OPENROUTER_API_KEY |
| Mistral AI | Cloud, payant | Definir MISTRAL_API_KEY |
| Z.AI | Cloud, payant | Definir ZAI_API_KEY |
| LM Studio | Local, gratuit | Definir LMSTUDIO_BASE_URL |
| Custom | Toute API compatible OpenAI | Definir base URL + cle API |
Exemple avec Ollama :
# .env.docker
AI_PROVIDER_TAGS=ollama
AI_PROVIDER_EMBEDDING=ollama
OLLAMA_BASE_URL="http://ollama:11434"
AI_MODEL_TAGS="granite4:latest"
AI_MODEL_EMBEDDING="embeddinggemma:latest"
Tous les parametres IA sont aussi configurables depuis le panneau admin /admin/settings.
Serveur MCP
Connecter des agents IA a vos notes via le Model Context Protocol.
// claude_desktop_config.json
{
"mcpServers": {
"memento": {
"command": "docker",
"args": ["exec", "-i", "memento-mcp", "node", "index.js"]
}
}
}
22 outils disponibles - CRUD notes, notebooks, labels, rappels, recherche, export/import. Chaque cle API est scopee a un utilisateur : seules ses notes sont accessibles.
Pour N8N ou clients HTTP, utiliser le mode HTTP Streamable : http://localhost:3001/mcp avec le header x-api-key.
Stack technique
| Couche | Technologie |
|---|---|
| Framework | Next.js 16, React 19, TypeScript 5 |
| Style | Tailwind CSS 4, shadcn/ui |
| Base de donnees | PostgreSQL 16, Prisma ORM 5 |
| Auth | NextAuth.js v5 |
| IA | Vercel AI SDK (OpenAI, Ollama, DeepSeek, OpenRouter, Mistral, Z.AI, LM Studio) |
| MCP | @modelcontextprotocol/sdk |
| Nodemailer (SMTP) / Resend |
Documentation
Pour le guide complet d'installation, deploiement et configuration, voir GUIDE.md.
Structure du projet
Momento/
├── docker-compose.yml # Orchestration multi-conteneurs
├── .env.docker.example # Template environnement Docker
├── scripts/ # Scripts de deploiement
│ ├── deploy-docker.sh # Deploiement Docker (macOS/Linux)
│ ├── deploy-local.sh # Deploiement local (macOS/Linux)
│ ├── deploy-docker.ps1 # Deploiement Docker (Windows)
│ └── deploy-local.ps1 # Deploiement local (Windows)
├── memento-note/ # Application Next.js
│ ├── app/ # App Router (pages, actions, API)
│ ├── components/ # Composants React
│ ├── lib/ # Logique metier (IA, DB, mail, i18n)
│ ├── prisma/ # Schema + migrations
│ ├── locales/ # 15 fichiers i18n
│ └── Dockerfile # Build multi-stage
├── mcp-server/ # Serveur MCP (22 outils)
│ ├── index.js # Mode stdio
│ ├── index-sse.js # Mode HTTP Streamable
│ ├── tools.js # Definitions des outils
│ ├── auth.js # Authentification par cle API
│ └── Dockerfile # Build conteneur
└── n8n-memento-workflow.json # Workflow N8N preconfigure
Variables d'environnement
Voir .env.docker.example pour la liste complete. Variables cles :
| Variable | Requis | Description |
|---|---|---|
NEXTAUTH_URL |
Oui | URL publique de l'app |
NEXTAUTH_SECRET |
Oui | Secret JWT (openssl rand -base64 32) |
ADMIN_EMAIL |
Oui | Email qui obtient automatiquement le role ADMIN a l'inscription |
POSTGRES_PASSWORD |
Rec. | Mot de passe PostgreSQL (defaut : memento) |
AI_PROVIDER_TAGS |
Non | Provider IA pour tags : ollama, openai, custom |
OPENAI_API_KEY |
Si OpenAI | Cle API OpenAI |
Contribuer
Les contributions sont bienvenues !
- Rapports de bugs : Ouvrir une issue
- Idees de fonctionnalites : Lancer une discussion
- Pull requests : Fork, creer une branche, et soumettre une PR
Soutenir
Si Memento vous est utile, pensez a soutenir son developpement :
- Ko-fi - Soutien ponctuel ou mensuel
- GitHub Sponsors - Parrainage recurrent
- Star le repo - C'est gratuit et ca aide la visibilite
Licence
Apache License 2.0 avec Commons Clause Restriction.
Usage personnel, educatif et non-commercial libre. Usage commercial soumis a autorisation ecrite de l'auteur. Voir LICENSE pour les details.