pptxgenjs sur Node.js ne peut pas charger les URLs qui nécessitent une auth ou des cookies. On fetch maintenant chaque imageUrl côté serveur et on la convertit en data URI base64 avant d'appeler buildPresentation. Si le fetch échoue (timeout 8s, 4xx/5xx), l'imageUrl est supprimée et le placeholder texte s'affiche à la place. Co-authored-by: Cursor <cursoragent@cursor.com>
Memento
A smart, AI-powered note-taking app. Like Google Keep, but with notebooks, semantic search, AI agents, and a built-in MCP server.
Lire en francais / Read in French | Full documentation
Features
Notes & Organization
- Rich text (Notion-like), checklist, Markdown, and plain text notes
- Notebooks with contextual labels
- Responsive masonry grid and tabs (OneNote-style) view
- Image upload, note sharing, archive, and trash
- 10 pastel color themes + dark mode
- Note history with version restore
- Drag-and-drop card reordering
AI & Automation
- Semantic search powered by embeddings
- Auto-generated tags and title suggestions
- Configurable AI agents with custom instructions and scheduling
- Persistent AI chat conversations
- Memory Echo - discover hidden connections between notes
- Batch auto-organization and smart labels
- AI-generated notebook summaries
- Visual workflow builder
- In-app notifications for agent results
Integrations
- MCP Server with 22 tools - connect Claude Desktop, N8N, or any MCP client
- REST API for custom integrations
- RSS feed support
- Canvas/Lab whiteboard (Excalidraw)
Platform
- 15 languages (EN, FR, AR, DE, ES, FA, HI, IT, JA, KO, NL, PL, PT, RU, ZH)
- Progressive Web App (PWA)
- Reminder system with recurrence
- Data export/import (JSON)
- Admin panel for AI providers, SMTP, and settings
Quick Start
Docker (recommended)
The interactive deploy script handles everything - environment config, container build, and startup:
git clone https://github.com/yourusername/Momento.git
cd Momento
# macOS / Linux
./scripts/deploy-docker.sh
# Windows PowerShell
.\scripts\deploy-docker.ps1
The script will ask for your ADMIN_EMAIL (the first user registered with this email gets ADMIN role), AI provider, and other settings. It auto-generates secrets.
Or manually:
cp .env.docker.example .env.docker
# Edit .env.docker: set NEXTAUTH_URL, NEXTAUTH_SECRET, and ADMIN_EMAIL
docker compose up -d
Local Development
git clone https://github.com/yourusername/Momento.git
cd Momento
# macOS / Linux
./scripts/deploy-local.sh
# Windows PowerShell
.\scripts\deploy-local.ps1
Or manually:
cd Momento/memento-note
cp .env.example .env
# Edit .env with your DATABASE_URL, NEXTAUTH_SECRET, ADMIN_EMAIL, etc.
npm install --legacy-peer-deps
npx prisma migrate dev
npm run dev
AI Providers
Memento supports 8 AI providers, configurable independently for tags, embeddings, and chat:
| Provider | Type | Setup |
|---|---|---|
| Ollama | Local, free | docker compose --profile ollama up -d |
| OpenAI | Cloud, paid | Set OPENAI_API_KEY |
| DeepSeek | Cloud, paid | Set DEEPSEEK_API_KEY |
| OpenRouter | Cloud, paid | Set OPENROUTER_API_KEY |
| Mistral AI | Cloud, paid | Set MISTRAL_API_KEY |
| Z.AI | Cloud, paid | Set ZAI_API_KEY |
| LM Studio | Local, free | Set LMSTUDIO_BASE_URL |
| Custom | Any OpenAI-compatible API | Set base URL + API key |
Example for 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"
All AI settings can also be configured from the admin panel at /admin/settings.
MCP Server
Connect AI agents to your notes via the Model Context Protocol.
// claude_desktop_config.json
{
"mcpServers": {
"memento": {
"command": "docker",
"args": ["exec", "-i", "memento-mcp", "node", "index.js"]
}
}
}
22 tools available - notes CRUD, notebooks, labels, reminders, search, export/import. Each API key is scoped to a user so only their notes are accessible.
For N8N or HTTP clients, use Streamable HTTP mode: http://localhost:3001/mcp with x-api-key header auth.
Tech Stack
| Layer | Technology |
|---|---|
| Framework | Next.js 16, React 19, TypeScript 5 |
| Styling | Tailwind CSS 4, shadcn/ui |
| Database | PostgreSQL 16, Prisma ORM 5 |
| Auth | NextAuth.js v5 |
| AI | Vercel AI SDK (OpenAI, Ollama, DeepSeek, OpenRouter, Mistral, Z.AI, LM Studio) |
| MCP | @modelcontextprotocol/sdk |
| Nodemailer (SMTP) / Resend |
Documentation
For the complete installation, deployment, and configuration guide, see GUIDE.en.md.
Project Structure
Momento/
├── docker-compose.yml # Multi-container orchestration
├── .env.docker.example # Docker environment template
├── scripts/ # Deployment scripts
│ ├── deploy-docker.sh # Docker deploy (macOS/Linux)
│ ├── deploy-local.sh # Local deploy (macOS/Linux)
│ ├── deploy-docker.ps1 # Docker deploy (Windows)
│ └── deploy-local.ps1 # Local deploy (Windows)
├── memento-note/ # Next.js application
│ ├── app/ # App Router (pages, actions, API)
│ ├── components/ # React UI components
│ ├── lib/ # Business logic (AI, DB, mail, i18n)
│ ├── prisma/ # Schema + migrations
│ ├── locales/ # 15 i18n JSON files
│ └── Dockerfile # Multi-stage build
├── mcp-server/ # MCP server (22 tools)
│ ├── index.js # stdio mode
│ ├── index-sse.js # HTTP Streamable mode
│ ├── tools.js # Tool definitions
│ ├── auth.js # API key authentication
│ └── Dockerfile # Container build
└── n8n-memento-workflow.json # Pre-configured N8N workflow
Environment Variables
See .env.docker.example for the complete list. Key variables:
| Variable | Required | Description |
|---|---|---|
NEXTAUTH_URL |
Yes | Public URL of the app |
NEXTAUTH_SECRET |
Yes | JWT secret (openssl rand -base64 32) |
ADMIN_EMAIL |
Yes | Email that automatically gets ADMIN role on registration |
POSTGRES_PASSWORD |
Rec. | PostgreSQL password (default: memento) |
AI_PROVIDER_TAGS |
No | AI provider for tags: ollama, openai, custom |
OPENAI_API_KEY |
If OpenAI | Your OpenAI API key |
Contributing
Contributions are welcome!
- Bug reports: Open an issue
- Feature ideas: Start a discussion
- Pull requests: Fork, create a branch, and submit a PR
Support
If you find Memento useful, consider supporting its development:
- Ko-fi - One-time or monthly support
- GitHub Sponsors - Recurring sponsorship
- Star the repo - It's free and helps visibility
License
Apache License 2.0 with Commons Clause Restriction.
Free for personal, educational, and non-commercial use. Commercial use requires written permission from the author. See LICENSE for details.