# 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](README.md)** | **[Guide complet](GUIDE.md)** | **[Guide utilisateur (captures)](docs/guide-utilisateur/README.md)** --- ## 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 : ```bash 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 : ```bash cp .env.docker.example .env.docker # Editer .env.docker : definir NEXTAUTH_URL, NEXTAUTH_SECRET et ADMIN_EMAIL docker compose up -d ``` ### Developpement local ```bash git clone https://github.com/yourusername/Momento.git cd Momento # macOS / Linux ./scripts/deploy-local.sh # Windows PowerShell .\scripts\deploy-local.ps1 ``` Ou manuellement : ```bash 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 : ```bash # .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. ```json // 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 | | Email | Nodemailer (SMTP) / Resend | --- ## Documentation Pour le guide complet d'installation, deploiement et configuration, voir **[GUIDE.md](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](.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](https://github.com/yourusername/Momento/issues) - **Idees de fonctionnalites** : [Lancer une discussion](https://github.com/yourusername/Momento/discussions) - **Pull requests** : Fork, creer une branche, et soumettre une PR --- ## Soutenir Si Memento vous est utile, pensez a soutenir son developpement : - **[Ko-fi](https://ko-fi.com/yourusername)** - Soutien ponctuel ou mensuel - **[GitHub Sponsors](https://github.com/sponsors/yourusername)** - 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](LICENSE) pour les details.