PromptHub
Developer Tools Self-hosting

Stop Paying for Notion! NoteDiscovery Is the Self-Hosted Secret

B

Bright Coding

Author

13 min read
5 views
Stop Paying for Notion! NoteDiscovery Is the Self-Hosted Secret

Stop Paying for Notion! NoteDiscovery Is the Self-Hosted Secret Developers Are Switching To

What if I told you that every note you've ever written in Notion, Evernote, or Obsidian Sync is sitting on someone else's server—waiting for a price hike, a privacy breach, or an unexpected shutdown? The subscription trap is real. Developers are bleeding hundreds of dollars annually for tools that lock their own ideas behind paywalls. But here's the secret the self-hosting community doesn't want you to miss: NoteDiscovery is rewriting the rules entirely. This lightweight, open-source knowledge base puts your data back where it belongs—on your server, under your control, with zero recurring costs. And yes, it renders stunning Mermaid diagrams natively, integrates with AI assistants like Claude and Cursor, and runs anywhere Docker does. Ready to reclaim your second brain? Let's dive into why NoteDiscovery is becoming the underground favorite for privacy-obsessed developers and knowledge workers.

What Is NoteDiscovery?

NoteDiscovery is a lightweight, self-hosted note-taking application created by gamosoft and available on GitHub. It represents a deliberate rejection of the SaaS model that has dominated productivity tools for the past decade. Instead of renting access to your own thoughts, NoteDiscovery gives you complete ownership through plain markdown files stored locally on your infrastructure.

The project emerged from a growing frustration within the developer community: commercial note-taking platforms were becoming increasingly expensive, opaque about data handling, and restrictive in customization. NoteDiscovery answers this with radical simplicity. Your notes are plain text. Your server is your own. Your data never leaves your control unless you explicitly choose otherwise.

What's fueling NoteDiscovery's trending status? Three converging forces. First, the self-hosting renaissance—developers are reclaiming infrastructure independence as cloud costs spiral and privacy concerns mount. Second, AI integration anxiety—users want AI-powered features without shipping their sensitive notes to third-party LLM providers. NoteDiscovery's MCP (Model Context Protocol) server solves this elegantly, letting Claude, Cursor, and compatible tools interact with your local instance. Third, the markdown standardization movement—the developer community is increasingly rejecting proprietary formats in favor of portable, future-proof plain text.

The repository shows healthy development velocity with automated Docker publishing, semantic versioning, and MIT licensing that guarantees perpetual freedom. This isn't abandonware—it's a growing ecosystem with active documentation for themes, plugins, templates, math rendering, and more.

Key Features That Make NoteDiscovery Irresistible

NoteDiscovery packs surprising depth beneath its minimalist surface. Here's what separates it from the self-hosted competition:

🔒 Total Privacy by Design — Your notes live as plain markdown files in a local data/ directory. No external APIs phoning home, no analytics tracking, no surprise data monetization. The application is designed for air-gapped deployments if needed.

🤖 Native AI Integration via MCP — This is where NoteDiscovery gets genuinely exciting. The built-in Model Context Protocol server transforms your knowledge base into an AI-augmented brain. Claude can search your notes, create new ones, organize folders, even explore connection graphs—all without your data ever touching Anthropic's servers. The AI interacts with your local instance through structured tool calls.

🕸️ Interactive Graph View — Visualize note relationships as a dynamic network. See how ideas connect, identify orphaned concepts, and navigate your knowledge topology visually. This transforms static note collections into explorable idea spaces.

📊 Native Mermaid Diagram Support — Flowcharts, sequence diagrams, Gantt charts, class diagrams—rendered server-side without external dependencies. Your technical documentation stays self-contained and version-controllable.

🧮 LaTeX/MathJax Rendering — Mathematical notation displays beautifully for researchers, data scientists, and engineering teams who need precise formula representation.

✏️ Built-in Drawing Editor — Sketch diagrams directly in the browser, saved as drawing-*.png files alongside your markdown. No external tools needed for quick visual explanations.

📑 Smart Outline Navigation — Automatic table of contents generation from headings, with click-to-jump functionality. Long documents become instantly navigable.

🎨 Theme System with Hot-Swapping — Multiple bundled themes plus full customization capability. Mount your own themes/ directory for branded or accessibility-optimized interfaces.

🔌 Extensible Plugin Architecture — Hook into the application lifecycle for custom functionality. The plugin system is documented and actively supported.

📱 Responsive by Default — Desktop, tablet, mobile—your knowledge base works everywhere without separate apps or sync complications.

📄 HTML Export & Print — Generate standalone HTML files or print-ready outputs for sharing outside your instance.

Real-World Use Cases Where NoteDiscovery Dominates

1. The Privacy-First Personal Wiki

Journalists, researchers, and activists handling sensitive information can't risk cloud exposure. NoteDiscovery runs on a Raspberry Pi behind a VPN, providing encrypted access to critical notes without third-party visibility. The optional password protection adds a security layer for shared devices.

2. The Developer's Technical Documentation Hub

Engineering teams need living documentation with diagrams, math, and code snippets. NoteDiscovery's Mermaid support means architecture decisions live alongside implementation notes. The MCP integration lets AI assistants answer "How does our auth flow work?" by querying the actual documentation graph.

3. The Academic Research Knowledge Base

PhD candidates and research groups accumulate thousands of papers, notes, and connections. The graph view reveals unexpected conceptual links. LaTeX support handles mathematical models. Plain markdown files sync through existing Git workflows for collaborative annotation.

4. The Homelab Documentation Center

Self-hosters notoriously document nothing—until something breaks. NoteDiscovery becomes the single source of truth for network topology, service configurations, and recovery procedures. Mount it in your infrastructure stack alongside Plex, Home Assistant, and your other services.

5. The AI-Augmented Second Brain

Power users combine NoteDiscovery with Claude Desktop or Cursor for fluid thought capture. Voice-dictate an idea to AI, have it properly formatted and filed in your knowledge base, then explore connections through the graph view. The AI becomes a librarian for your own thoughts.

Step-by-Step Installation & Setup Guide

NoteDiscovery prioritizes deployment flexibility. Choose your path:

Docker Quick Start (Recommended)

The fastest path to running NoteDiscovery uses the pre-built GitHub Container Registry image.

Linux/macOS:

# Create data directory and enter project folder
mkdir -p notediscovery/data && cd notediscovery

# Run container with persistent volume for notes
docker run -d --name notediscovery -p 8000:8000 \
  -v $(pwd)/data:/app/data \
  ghcr.io/gamosoft/notediscovery:latest

Windows (PowerShell):

# Create data directory and enter project folder
mkdir notediscovery\data; cd notediscovery

# Run container with persistent volume for notes
docker run -d --name notediscovery -p 8000:8000 `
  -v ${PWD}/data:/app/data `
  ghcr.io/gamosoft/notediscovery:latest

Access your instance at http://localhost:8000. Your notes persist in ./data/ across container restarts.

Docker Compose (Production-Ready)

For persistent deployments with easier management:

Option 1: Pre-built image (fastest, recommended)

# Create directory structure
mkdir -p notediscovery/data && cd notediscovery

# Download compose configuration
curl -O https://raw.githubusercontent.com/gamosoft/notediscovery/main/docker-compose.ghcr.yml

# Start services in detached mode
docker-compose -f docker-compose.ghcr.yml up -d

Option 2: Build from source (development)

# Clone full repository
git clone https://github.com/gamosoft/notediscovery.git
cd notediscovery

# Build and start
docker-compose up -d

Local Python Development

For customization or contribution:

# Clone repository
git clone https://github.com/gamosoft/notediscovery.git
cd notediscovery

# Install dependencies
pip install -r requirements.txt

# Start development server
python run.py

Modern Linux distributions (Arch, Fedora, Ubuntu 23.04+) enforce PEP 668 preventing system-wide pip installs. Use virtual environments:

# Clone and enter repository
git clone https://github.com/gamosoft/notediscovery.git
cd notediscovery

# Create isolated Python environment
python -m venv venv

# Activate environment (select for your shell)
source venv/bin/activate        # Bash/Zsh
source venv/bin/activate.fish   # Fish shell
source venv/bin/activate.csh    # Csh/Tcsh
.\venv\Scripts\activate         # Windows PowerShell

# Install and run
pip install -r requirements.txt
python run.py

⚠️ Critical: Reactivate the virtual environment with source venv/bin/activate in every new terminal session before running the application.

Volume Configuration for Customization

The Docker image bundles config, themes, plugins, and locales. To customize, map volumes with existing valid content (empty mounts may break the application):

Volume Purpose Required?
data/ Your markdown notes ✅ Yes—create this
config.yaml Application settings Optional—bundled
themes/ Custom UI themes Optional—bundled
plugins/ Extension modules Optional—bundled
locales/ Translation files Optional—bundled

REAL Code Examples from NoteDiscovery

Let's examine actual implementation patterns from the repository, with detailed explanations of what each accomplishes.

Example 1: MCP Server Configuration for AI Integration

NoteDiscovery's killer feature is its Model Context Protocol server. Here's the exact configuration to connect Claude Desktop or Cursor:

{
  "mcpServers": {
    "notediscovery": {
      "command": "docker",
      "args": [
        "run",
        "--rm",           // Remove container after exit (stateless)
        "-i",             // Interactive mode for MCP communication
        "-e",             // Pass environment variable
        "NOTEDISCOVERY_URL=http://host.docker.internal:8000",  // Point to your instance
        "ghcr.io/gamosoft/notediscovery:latest",  // Official image
        "python",
        "-m",
        "mcp_server"      // Execute MCP server module
      ]
    }
  }
}

What's happening here? This JSON configuration registers NoteDiscovery as an MCP server in your AI assistant's settings. When Claude needs to interact with your notes, it spawns a temporary Docker container running the mcp_server module. The --rm flag ensures cleanup after each session. The host.docker.internal DNS name bridges from the container to your host's NoteDiscovery instance. This architecture is brilliant: your AI gets structured tool access to your knowledge base without persistent connections or exposed APIs.

Example 2: Docker Compose with Custom Locales and Documentation

This advanced configuration mounts multiple volumes for full customization:

# docker-compose.yml extension
services:
  notediscovery:
    image: ghcr.io/gamosoft/notediscovery:latest
    ports:
      - "8000:8000"
    volumes:
      # Primary notes storage—MANDATORY
      - ./data:/app/data
      
      # Custom translations (optional)
      - ./locales:/app/locales
      
      # Mount documentation for in-app reading (read-only for safety)
      - ./documentation:/app/data/docs:ro

The :ro suffix is crucial—it mounts the documentation directory read-only, preventing accidental modification through the web interface. This pattern lets you browse project documentation inside NoteDiscovery itself at http://localhost:8000 as a docs/ folder. The separate locales mount enables community translations or organizational terminology customization without rebuilding the image.

Example 3: Virtual Environment Activation Patterns

The README provides shell-specific activation commands that many developers miss:

# Standard Bash/Zsh (Ubuntu, Debian, most defaults)
source venv/bin/activate

# Fish shell (CachyOS, Manjaro variants, custom setups)
source venv/bin/activate.fish

# Csh/Tcsh (BSD systems, legacy environments)
source venv/bin/activate.csh

# Windows PowerShell (modern Windows development)
.\venv\Scripts\activate

Why this matters: Python virtual environment activation isn't universal. The .fish and .csh variants exist because different shells parse commands differently. Fish, for instance, doesn't use Bash-compatible source semantics. NoteDiscovery's documentation prevents the frustrating "command not found" errors that drive developers away from Python projects. This attention to shell diversity signals mature, inclusive documentation.

Example 4: Complete Local Development Workflow

For contributors or those avoiding Docker entirely:

# Step 1: Obtain source code
git clone https://github.com/gamosoft/notediscovery.git
cd notediscovery

# Step 2: Create isolated environment
python -m venv venv

# Step 3: Activate (example: Bash)
source venv/bin/activate

# Step 4: Install pinned dependencies
pip install -r requirements.txt

# Step 5: Launch application
python run.py

# Result: Server available at http://localhost:8000

This workflow emphasizes reproducibility. The requirements.txt pins dependency versions, preventing "works on my machine" syndrome. The virtual environment guarantees no conflicts with system Python packages. For Fedora or Arch users where pip install without --user or virtual environments is blocked by PEP 668, this is the only viable path.

Advanced Usage & Best Practices

Security Hardening for Network Exposure

NoteDiscovery defaults to listening on 0.0.0.0:8000—all network interfaces. For internet-facing deployments:

  1. Enable authentication immediately: Set a strong password in config.yaml (default is dangerously admin)
  2. Deploy behind reverse proxy: Use nginx or Caddy with TLS termination
  3. Consider VPN-only access: WireGuard or Tailscale for zero-trust remote access
  4. Never expose raw port 8000 to the public internet without these protections

Backup Strategy

Since notes are plain markdown files, backup is trivial:

# Automated daily backup via cron
0 2 * * * rsync -av /opt/notediscovery/data/ /backups/notediscovery/$(date +\%Y\%m\%d)/

Or sync through Git for version history:

cd /opt/notediscovery/data
git init
git add .
git commit -m "Daily snapshot $(date)"
git push origin main

Performance Optimization

For large knowledge bases (10,000+ notes):

  • Mount data/ on SSD storage—search performance depends on I/O speed
  • Consider read-only documentation mounts to reduce filesystem watchers
  • Use Docker's --memory and --cpus limits to prevent resource starvation

AI Assistant Workflows

Maximize MCP integration with prompt engineering:

  • Tag notes consistently (#project, #meeting, #architecture) for precise AI retrieval
  • Use the graph view to identify "bridge notes" connecting disparate topics
  • Create template notes for recurring AI-generated content (meeting minutes, incident reports)

Comparison with Alternatives

Feature NoteDiscovery Notion Obsidian (Sync) Outline BookStack
Cost Free forever $8-15/user/mo $8/mo sync Free (self-host) Free (self-host)
Data Ownership ✅ Absolute ❌ Cloud-locked ⚠️ Sync-dependent ✅ Self-hosted ✅ Self-hosted
AI Integration ✅ Native MCP ✅ Built-in ❌ Third-party only ❌ None ❌ None
Mermaid Diagrams ✅ Native ✅ Native ⚠️ Plugin ✅ Native ❌ Limited
Plain Markdown ✅ Filesystem ❌ Proprietary ✅ Filesystem ❌ Database ❌ Database
Graph View ✅ Built-in ❌ None ✅ Core feature ❌ None ❌ None
Drawing Editor ✅ Built-in ✅ Basic ❌ Plugin ❌ None ❌ None
Setup Complexity Low (Docker) None Low Medium Medium
Mobile Experience Responsive web Native apps Native apps Responsive web Responsive web

When to choose NoteDiscovery over alternatives:

  • vs. Notion: When data sovereignty matters, when you need offline-first operation, when subscription fatigue hits
  • vs. Obsidian: When you want web-based access without Electron overhead, when team sharing is needed, when sync infrastructure should be self-controlled
  • vs. Outline/BookStack: When AI integration is priority, when markdown file portability is essential, when diagram rendering must be native

FAQ

Q: Is NoteDiscovery truly free? What's the catch? A: Completely free under MIT license. No feature gates, no upsells, no telemetry. The creator accepts Ko-fi donations but functionality is unrestricted.

Q: Can I migrate from Notion or Evernote? A: Yes—export to markdown (Notion supports this natively), then place files in your data/ directory. NoteDiscovery's folder structure mirrors your filesystem.

Q: How does MCP integration keep my data private? A: The AI assistant communicates with your local NoteDiscovery instance through Docker networking. Your notes never traverse to Anthropic, OpenAI, or any external service unless you explicitly configure otherwise.

Q: What's the minimum hardware for self-hosting? A: A Raspberry Pi 4 handles personal use comfortably. For teams, any VPS with 1GB RAM and Docker support suffices. The application is remarkably lightweight.

Q: Can multiple users collaborate simultaneously? A: Currently optimized for single-user or small trusted teams. For multi-user scenarios, deploy behind a reverse proxy with OAuth/SSO. True real-time collaboration isn't implemented—file-based locking prevents conflicts.

Q: Are my notes searchable within the application? A: Yes—full-text search with instant results is built-in. The search index operates on your markdown files directly.

Q: What happens if development stops? A: Your notes remain plain markdown files, universally readable. No proprietary lock-in means zero migration risk. The MIT license permits community continuation indefinitely.

Conclusion

NoteDiscovery represents something increasingly rare: software that respects its users. No extraction, no dark patterns, no artificial scarcity—just a clean, capable knowledge base that runs where you command it to. The combination of native Mermaid diagram support, MCP-powered AI integration, and genuine data ownership creates a compelling alternative to commercial tools that monetize your attention and information.

For developers who've watched Notion triple in price, who've seen Evernote stagnate, who've felt the subtle anxiety of cloud dependency—NoteDiscovery is liberation. Your second brain deserves a first-class home. Deploy it today, customize it tomorrow, own it forever.

Ready to break free? Star NoteDiscovery on GitHub, spin up the Docker container, and experience what self-hosted knowledge management should have been all along. The future of your notes is yours to control.


Made with ❤️ for the self-hosting community. Join the movement at github.com/gamosoft/NoteDiscovery.

Comments (0)

Comments are moderated before appearing.

No comments yet. Be the first to share your thoughts!

Recommended Prompts

View All
Support us! ☕