All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m25s
- Add DeepSeek, OpenRouter, Mistral, Z.AI, LM Studio as AI providers with editable model names via Combobox in admin settings - Fix OpenRouter broken by normalizeProvider bug in config.ts - Convert agent-created notes from Markdown to HTML (TipTap rich text) - Add Notification model + in-app notifications for agent results - Agent notification click opens the created note directly - Add note count display on notebook and inbox headers - Fix checklist toggle in card view (persist state via localCheckItems) - Add checklist creation option in tabs/list view (dropdown on + button) - Fix image description ENOENT error with HTTP fallback - Improve UI contrast across all themes (input, border, checkbox visibility) - Add font family setting (Inter vs System Default) in Appearance settings - Fix CSS font-sans variable conflict (removed dead Geist references) - Update README with new features and 8 providers Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
239 lines
7.4 KiB
Markdown
239 lines
7.4 KiB
Markdown
# 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)**
|
|
|
|
---
|
|
|
|
## 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.
|