Your Self-Hosted Knowledge Base
See the code
Your Self-Hosted Knowledge Base
NoteDiscovery is a lightweight, self-hosted note-taking application that puts you in complete control of your knowledge base. Write, organize, and discover your notes with a beautiful, modern interface—all running on your own server.
Write · Find · Discover
| Feature | NoteDiscovery | Commercial Apps |
|---|---|---|
| Cost | 100% Free | $xxx/month/year |
| Privacy | Your server, your data | Their servers, their terms |
| Speed | Lightning fast | Depends on internet |
| Offline | Always works | Limited or requires sync |
| Customization | Full control | Limited options |
| No Lock-in | Plain markdown files | Proprietary formats |
drawing-*.png next to your notes — see documentation/DRAWING.md
NoteDiscovery includes a built-in Model Context Protocol (MCP) server, letting AI assistants directly interact with your notes:
| What AI Can Do | Example |
|---|---|
| 🔍 Search & Discover | "Find all my notes about Docker deployment" |
| 📝 Create & Edit | "Create a meeting notes template for tomorrow" |
| 📁 Organize | "Move all project notes to the archive folder" |
| 🏷️ Tag & Categorize | "List all notes tagged with #urgent" |
| 📊 Explore Connections | "Show me the knowledge graph of my notes" |
| ✍️ Append Ideas | "Add this thought to my daily journal" |
One-line setup for Cursor, Claude Desktop, and other MCP-compatible tools:
{
"mcpServers": {
"notediscovery": {
"command": "docker",
"args": ["run", "--rm", "-i", "-e", "NOTEDISCOVERY_URL=http://host.docker.internal:8000", "ghcr.io/gamosoft/notediscovery:latest", "python", "-m", "mcp_server"]
}
}
}
💡 See MCP.md for complete setup instructions and all available tools.
🧪 Want a fully local setup with a bundled LLM? OLLAMA-STACK.md spins up NoteDiscovery + Ollama + Open WebUI with one command.
▶ Small walkthrough — sharing, favorites, search, backlinks, and more
Linux/macOS:
mkdir -p notediscovery/data && cd notediscovery
docker run -d --name notediscovery -p 8000:8000 \
-v $(pwd)/data:/app/data \
ghcr.io/gamosoft/notediscovery:latest
Windows (PowerShell):
mkdir notediscovery\data; cd notediscovery
docker run -d --name notediscovery -p 8000:8000 `
-v ${PWD}/data:/app/data `
ghcr.io/gamosoft/notediscovery:latest
Open http://localhost:8000 — done! 🎉
💡 Your notes are saved in
./data/. Themes, plugins, locales and default configuration values are included in the image.
Two docker-compose files are provided:
| File | Use Case |
|---|---|
docker-compose.ghcr.yml | Recommended - Uses pre-built image from GitHub Container Registry |
docker-compose.yml | For development - Builds from local source |
docker-compose.ollama-stack.yml | Bundled local AI stack (NoteDiscovery + Ollama + Open WebUI) — see OLLAMA-STACK.md |
Option 1: Pre-built image (fastest)
Linux/macOS:
mkdir -p notediscovery/data && cd notediscovery
curl -O https://raw.githubusercontent.com/gamosoft/notediscovery/main/docker-compose.ghcr.yml
docker-compose -f docker-compose.ghcr.yml up -d
Windows (PowerShell):
mkdir notediscovery\data; cd notediscovery
Invoke-WebRequest -Uri https://raw.githubusercontent.com/gamosoft/notediscovery/main/docker-compose.ghcr.yml -OutFile docker-compose.ghcr.yml
docker-compose -f docker-compose.ghcr.yml up -d
Option 2: Build from source (for development)
git clone https://github.com/gamosoft/notediscovery.git
cd notediscovery
docker-compose up -d
See Advanced Docker Setup for volume details.
For development or if you prefer running directly:
# Clone the repository
git clone https://github.com/gamosoft/notediscovery.git
cd notediscovery
# Install dependencies
pip install -r requirements.txt
# Run the application
python run.py
# Access at http://localhost:8000
Requirements:
Modern Linux distributions enforce PEP 668, which prevents system-wide pip installs. Use a virtual environment instead:
# Clone the repository
git clone https://github.com/gamosoft/notediscovery.git
cd notediscovery
# Create a virtual environment
python -m venv venv
# Activate it (choose your shell):
source venv/bin/activate # Bash/Zsh (most Linux distros)
source venv/bin/activate.fish # Fish (CachyOS, etc.)
source venv/bin/activate.csh # Csh/Tcsh
.\venv\Scripts\activate # Windows PowerShell
# Install dependencies and run
pip install -r requirements.txt
python run.py
⚠️ Warning
You'll need to activate the virtual environment (source venv/bin/activate) each time you open a new terminal before running the app
The image includes bundled config, themes, plugins, and locales. To customize, you must:
| Volume | Purpose | Bundled? |
|---|---|---|
data/ | Your notes | ❌ You must create |
config.yaml | App settings | ✅ Yes |
themes/ | Custom themes | ✅ Yes |
plugins/ | Custom plugins | ✅ Yes |
locales/ | Translations | ✅ Yes |
An official icon for NoteDiscovery is now available on Dashboard Icons!
Use it in your self-hosted dashboards like Homepage, Homarr, Dashy, Heimdall, etc...
Want to learn more?
drawing-*.png), save behavior, and API notesNoteDiscovery supports multiple interface languages via JSON locale files in locales/. Open Settings (gear icon) → Language to choose one; the list reflects whatever locales are installed (bundled files, mounts, or your own additions).
To add your own language: See the Contributing Guidelines for instructions on creating translation files.
Docker users: Mount your custom locales folder to add or override translations:
volumes:
- ./locales:/app/locales # Custom translations
💡 Pro Tip: If you clone this repository, you can mount the documentation/ folder to view these docs inside the app:
# In your docker-compose.yml
volumes:
- ./data:/app/data # Your personal notes
- ./documentation:/app/data/docs:ro # Mount docs subfolder inside the data folder (read-only)
Then access them at http://localhost:8000 - the docs will appear as a docs/ folder in the file browser!
Before submitting a pull request, especially for major changes, please:
NoteDiscovery is designed for self-hosted, private use. Please keep these security considerations in mind:
0.0.0.0:8000 (all network interfaces)admin)authentication.enabled: false in config.yamldata/ folderlocalhost or a private network onlydata/ directoryTL;DR: Perfect for personal use on your local machine or home network. Enable built-in password protection if needed, or use a reverse proxy with authentication if exposing to wider networks.
MIT License - Free to use, modify, and distribute.
Made with ❤️ for the self-hosting community
139 followers · starred Dec 2025
148 followers · starred Nov 2025
313 followers · starred Feb 2026
291 followers · starred Nov 2025
Your Self-Hosted Knowledge Base
See the code
Your Self-Hosted Knowledge Base
NoteDiscovery is a lightweight, self-hosted note-taking application that puts you in complete control of your knowledge base. Write, organize, and discover your notes with a beautiful, modern interface—all running on your own server.
Write · Find · Discover
| Feature | NoteDiscovery | Commercial Apps |
|---|---|---|
| Cost | 100% Free | $xxx/month/year |
| Privacy | Your server, your data | Their servers, their terms |
| Speed | Lightning fast | Depends on internet |
| Offline | Always works | Limited or requires sync |
| Customization | Full control | Limited options |
| No Lock-in | Plain markdown files | Proprietary formats |
drawing-*.png next to your notes — see documentation/DRAWING.md
NoteDiscovery includes a built-in Model Context Protocol (MCP) server, letting AI assistants directly interact with your notes:
| What AI Can Do | Example |
|---|---|
| 🔍 Search & Discover | "Find all my notes about Docker deployment" |
| 📝 Create & Edit | "Create a meeting notes template for tomorrow" |
| 📁 Organize | "Move all project notes to the archive folder" |
| 🏷️ Tag & Categorize | "List all notes tagged with #urgent" |
| 📊 Explore Connections | "Show me the knowledge graph of my notes" |
| ✍️ Append Ideas | "Add this thought to my daily journal" |
One-line setup for Cursor, Claude Desktop, and other MCP-compatible tools:
{
"mcpServers": {
"notediscovery": {
"command": "docker",
"args": ["run", "--rm", "-i", "-e", "NOTEDISCOVERY_URL=http://host.docker.internal:8000", "ghcr.io/gamosoft/notediscovery:latest", "python", "-m", "mcp_server"]
}
}
}
💡 See MCP.md for complete setup instructions and all available tools.
🧪 Want a fully local setup with a bundled LLM? OLLAMA-STACK.md spins up NoteDiscovery + Ollama + Open WebUI with one command.
▶ Small walkthrough — sharing, favorites, search, backlinks, and more
Linux/macOS:
mkdir -p notediscovery/data && cd notediscovery
docker run -d --name notediscovery -p 8000:8000 \
-v $(pwd)/data:/app/data \
ghcr.io/gamosoft/notediscovery:latest
Windows (PowerShell):
mkdir notediscovery\data; cd notediscovery
docker run -d --name notediscovery -p 8000:8000 `
-v ${PWD}/data:/app/data `
ghcr.io/gamosoft/notediscovery:latest
Open http://localhost:8000 — done! 🎉
💡 Your notes are saved in
./data/. Themes, plugins, locales and default configuration values are included in the image.
Two docker-compose files are provided:
| File | Use Case |
|---|---|
docker-compose.ghcr.yml | Recommended - Uses pre-built image from GitHub Container Registry |
docker-compose.yml | For development - Builds from local source |
docker-compose.ollama-stack.yml | Bundled local AI stack (NoteDiscovery + Ollama + Open WebUI) — see OLLAMA-STACK.md |
Option 1: Pre-built image (fastest)
Linux/macOS:
mkdir -p notediscovery/data && cd notediscovery
curl -O https://raw.githubusercontent.com/gamosoft/notediscovery/main/docker-compose.ghcr.yml
docker-compose -f docker-compose.ghcr.yml up -d
Windows (PowerShell):
mkdir notediscovery\data; cd notediscovery
Invoke-WebRequest -Uri https://raw.githubusercontent.com/gamosoft/notediscovery/main/docker-compose.ghcr.yml -OutFile docker-compose.ghcr.yml
docker-compose -f docker-compose.ghcr.yml up -d
Option 2: Build from source (for development)
git clone https://github.com/gamosoft/notediscovery.git
cd notediscovery
docker-compose up -d
See Advanced Docker Setup for volume details.
For development or if you prefer running directly:
# Clone the repository
git clone https://github.com/gamosoft/notediscovery.git
cd notediscovery
# Install dependencies
pip install -r requirements.txt
# Run the application
python run.py
# Access at http://localhost:8000
Requirements:
Modern Linux distributions enforce PEP 668, which prevents system-wide pip installs. Use a virtual environment instead:
# Clone the repository
git clone https://github.com/gamosoft/notediscovery.git
cd notediscovery
# Create a virtual environment
python -m venv venv
# Activate it (choose your shell):
source venv/bin/activate # Bash/Zsh (most Linux distros)
source venv/bin/activate.fish # Fish (CachyOS, etc.)
source venv/bin/activate.csh # Csh/Tcsh
.\venv\Scripts\activate # Windows PowerShell
# Install dependencies and run
pip install -r requirements.txt
python run.py
⚠️ Warning
You'll need to activate the virtual environment (source venv/bin/activate) each time you open a new terminal before running the app
The image includes bundled config, themes, plugins, and locales. To customize, you must:
| Volume | Purpose | Bundled? |
|---|---|---|
data/ | Your notes | ❌ You must create |
config.yaml | App settings | ✅ Yes |
themes/ | Custom themes | ✅ Yes |
plugins/ | Custom plugins | ✅ Yes |
locales/ | Translations | ✅ Yes |
An official icon for NoteDiscovery is now available on Dashboard Icons!
Use it in your self-hosted dashboards like Homepage, Homarr, Dashy, Heimdall, etc...
Want to learn more?
drawing-*.png), save behavior, and API notesNoteDiscovery supports multiple interface languages via JSON locale files in locales/. Open Settings (gear icon) → Language to choose one; the list reflects whatever locales are installed (bundled files, mounts, or your own additions).
To add your own language: See the Contributing Guidelines for instructions on creating translation files.
Docker users: Mount your custom locales folder to add or override translations:
volumes:
- ./locales:/app/locales # Custom translations
💡 Pro Tip: If you clone this repository, you can mount the documentation/ folder to view these docs inside the app:
# In your docker-compose.yml
volumes:
- ./data:/app/data # Your personal notes
- ./documentation:/app/data/docs:ro # Mount docs subfolder inside the data folder (read-only)
Then access them at http://localhost:8000 - the docs will appear as a docs/ folder in the file browser!
Before submitting a pull request, especially for major changes, please:
NoteDiscovery is designed for self-hosted, private use. Please keep these security considerations in mind:
0.0.0.0:8000 (all network interfaces)admin)authentication.enabled: false in config.yamldata/ folderlocalhost or a private network onlydata/ directoryTL;DR: Perfect for personal use on your local machine or home network. Enable built-in password protection if needed, or use a reverse proxy with authentication if exposing to wider networks.
MIT License - Free to use, modify, and distribute.
Made with ❤️ for the self-hosting community
139 followers · starred Dec 2025
148 followers · starred Nov 2025
313 followers · starred Feb 2026
291 followers · starred Nov 2025