Open Notebook — Self-Host Your Own NotebookLM Alternative with Privacy and Flexibility
Open Notebook — Self-Host Your Own NotebookLM Alternative
Google's NotebookLM demonstrated the power of AI-powered research notebooks: upload documents, ask questions, get AI-generated summaries and even podcasts. But it comes with a catch — your data lives on Google's servers, you're limited to Google's models, and customization is non-existent.
Open Notebook is the open-source answer. With 29,700+ GitHub stars and an MIT license, it gives you the same NotebookLM experience — and then some — entirely on your infrastructure. You choose the AI providers (18+ supported), control every aspect of data privacy, and can even orchestrate everything via a REST API.
Why Is It Trending?
Open Notebook has exploded in popularity for several reasons:
- Privacy backlash against Big Tech AI — Users want their research data to stay private, not feed Google's or OpenAI's training pipelines
- AI model diversity — The ability to use Ollama for free local inference, or mix OpenAI for chat with Groq for speed
- Podcast generation — Multi-speaker AI podcasts (1–4 voices) far surpass NotebookLM's 2-speaker limit
- Self-hosting renaissance — Docker-based deployment makes it accessible to anyone with a server
- Open source extensibility — Full REST API, MCP integration, and active community on Discord
Prerequisites
- A server with Docker and Docker Compose installed (any Linux VPS, Raspberry Pi, or local machine)
- An AI provider API key (OpenAI, Anthropic, Groq — or none if using Ollama locally)
- 2 GB RAM minimum (4 GB recommended for production use)
Architecture Overview
Open Notebook uses a three-tier architecture:
| Component | Technology | Port | Role |
|---|---|---|---|
| Frontend | Next.js / React | 8502 | Web UI for notebooks, chat, settings |
| Backend | Python / FastAPI | 5055 | Core logic, AI orchestration, REST API |
| Database | SurrealDB | 8000 | Document store for notebooks, sources, notes |
The frontend communicates with the FastAPI backend, which handles all business logic: document ingestion, RAG (Retrieval-Augmented Generation), podcast generation, and AI provider routing. SurrealDB stores all data — notebooks, sources, notes, API key configurations, and transformation results.
Installation
Deploying Open Notebook takes about two minutes:
1. Create the Docker Compose file
curl -o docker-compose.yml https://raw.githubusercontent.com/lfnovo/open-notebook/main/docker-compose.yml
2. Set your encryption key
Edit the docker-compose.yml and change:
- OPEN_NOTEBOOK_ENCRYPTION_KEY=change-me-to-a-secret-string
Replace change-me-to-a-secret-string with a strong, unique secret.
3. Start the services
docker compose up -d
Wait 15–20 seconds, then open http://localhost:8502.
4. Configure an AI provider
- Go to Settings → API Keys
- Click Add Credential
- Choose your provider (OpenAI, Anthropic, Google, Groq, etc.)
- Paste your API key and click Save
- Click Test Connection → Discover Models → Register Models
Free Local AI with Ollama
For a fully local, zero-cost setup, use the Ollama compose profile:
curl -O https://raw.githubusercontent.com/lfnovo/open-notebook/main/examples/docker-compose-ollama.yml
docker compose -f docker-compose-ollama.yml up -d
This deploys Ollama alongside Open Notebook, letting you run llama3, mistral, or other local models.
Configuration
Available Environment Variables
| Variable | Description | Default |
|---|---|---|
OPEN_NOTEBOOK_ENCRYPTION_KEY |
Encrypts API keys in the database | change-me-to-a-secret-string |
SURREAL_URL |
SurrealDB connection URL | ws://surrealdb:8000/rpc |
SURREAL_USER |
Database user | root |
SURREAL_PASSWORD |
Database password | root |
PASSWORD |
Optional UI password protection | (none) |
Password Protection
For public deployments, set the PASSWORD environment variable to require login before accessing the UI.
Key Features
Multi-Notebook Organization
Create separate notebooks for different research projects. Each notebook has its own sources, notes, and chat history.
Universal Content Support
Upload PDFs, videos, audio files, web pages, Office documents, and more. Open Notebook indexes everything for search and AI context.
Multi-Model AI (18+ Providers)
Choose from OpenAI, Anthropic, Ollama, Google, Groq, Mistral, DeepSeek, Perplexity, xAI, OpenRouter, and more. Each provider can be used for different tasks — text generation, embeddings, speech-to-text, and text-to-speech.
Podcast Generation
Create professional AI podcasts with 1–4 speakers. Customize episode profiles, speaker voices, and script style. This is the standout feature — NotebookLM only supports 2 speakers with no customization.
Intelligent Search
Full-text and vector search across all your content. The "Ask" mode uses RAG to automatically find relevant chunks, while "Chat" sends full context to the LLM.
REST API
Every feature is accessible via a programmatic REST API at http://localhost:5055/docs (Swagger UI). Automate notebook creation, source ingestion, and transformations.
Verification Checklist
After deployment, verify everything works:
- Web UI accessible at
http://localhost:8502 - REST API accessible at
http://localhost:5055/docs - Can add an AI provider API key in Settings
- Can create a new notebook
- Can upload a PDF or add a web page as a source
- Can chat with AI about the source content
- Podcast generation works (select sources → Generate Podcast)
- Search returns results from ingested content
Resources
- GitHub: github.com/lfnovo/open-notebook
- Website: open-notebook.ai
- Documentation: docs/open-notebook
- Discord Community: discord.gg/37XJPXfz2w
- Docker Hub: lfnovo/open_notebook