NoteDiscovery

gamosoftMIT活跃维护

自托管的 Markdown 知识库,用 Docker 一键部署,可替代 Evernote、Notion 等笔记工具,数据完全掌握在自己手里。

Your Self-Hosted Knowledge Base

v0.34.0发布于 2026-11-02 17:39 UTC2,874star +2 / 7 天249fork同步于 2026-11-10 05:41 UTC

怎么上手

从 README 代码块原样提取,可能是其中一种安装方式
docker run -d --name notediscovery -p 8000:8000 \
docker run -d --name notediscovery -p 8000:8000 `
curl -O https://raw.githubusercontent.com/gamosoft/notediscovery/main/docker-compose.ghcr.yml
docker-compose -f docker-compose.ghcr.yml up -d
硬件要求按 README 关键词推断
有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

这个项目的说明还在生成中,先参考下面「最近发版」和 README。

最近发版

5 个版本v0.34.0
  1. v0.34.0最新正式版2026-11-02 · 2026-11-02 17:39 UTC

    What's Changed

    • MCP edit_note lets a client replace one exact piece of a note. The text must match once, or nothing is written. Thanks to @juanlb (#329).
    • Accent-insensitive search. esparragos finds Espárragos, and the result snippet, the editor, and the preview highlight the word as written. strasse also finds Straße. Thanks to @juanlb (#332, #335, closes #327).
    • Theme preload. The app and the login page apply the saved theme, or the configured default, before the first paint, so a reload no longer flashes the wrong theme. Thanks to @fbartels , #315, #330.
    • Hide system folders now also leaves notes under _-prefixed folders off the graph (#333).
    • Percentage scroll sync is gone. It was buggy. Editor and preview now stay aligned by headings, images, tables, and code blocks (#334).

    Docker Images

    This release is available as a Docker image:

    docker pull ghcr.io/gamosoft/NoteDiscovery:0.34.0
    

    Full Changelog: https://github.com/gamosoft/NoteDiscovery/compare/v0.33.0...v0.34.0

  2. v0.33.02026-10-25 · 2026-10-25 17:49 UTC
    查看更新说明

    What's Changed

    • Saving a note no longer silently overwrites a copy that changed on disk. If the file was edited elsewhere (another tab, a sync tool, an agent), the editor asks whether to reload it or overwrite it. Thanks to @Leylines-Prism in #324 (#323).
    • Typing [[ suggests notes and ![[ suggests media files. Arrow keys move through the list, Enter or Tab inserts the link, Esc dismisses it. Thanks to @smolvik1 (#312, #325).

    Docker Images

    This release is available as a Docker image:

    docker pull ghcr.io/gamosoft/NoteDiscovery:0.33.0
    

    Full Changelog: https://github.com/gamosoft/NoteDiscovery/compare/v0.32.1...v0.33.0

  3. v0.32.12026-10-14 · 2026-10-14 09:34 UTC
    查看更新说明

    What's Changed

    • Renaming a shared note, or a folder that contains one, keeps its share link. Moving that folder does too (#318).
    • Export as HTML works when the note title contains non-Latin text, emoji, or a typographic apostrophe (#319).
    • Creating a note no longer wipes another one. Names that contain # are rejected, and b no longer overwrites B (#317). Heading links inside a note are unchanged.

    Docker Images

    This release is available as a Docker image:

    docker pull ghcr.io/gamosoft/NoteDiscovery:0.32.1
    

    Full Changelog: https://github.com/gamosoft/NoteDiscovery/compare/v0.32.0...v0.32.1

  4. v0.32.0v0.32.0 - NoteDiscovery can serve MCP itself over HTTP2026-10-13 · 2026-10-13 08:37 UTC
    查看更新说明

    What's Changed

    • AI clients can connect to http://your-server:8000/mcp (Streamable HTTP) instead of spawning the stdio server or using mcp-proxy.
    • Off by default. Turn it on with MCP_ENABLED=true or mcp.enabled: true in config.yaml.
    • The existing Cursor and Claude Desktop stdio setup is unchanged when the flag is left off.
    • With authentication on, an API key is required or /mcp stays disabled. With authentication off, the endpoint is open, same as the REST API.
    • Clients send the key as Authorization: Bearer or X-API-Key.
    • Docs in documentation/MCP.md now describe the URL setup and drop the mcp-proxy/SSE section.

    Thanks to @airbornelamb!!! 🙏

    Docker Images

    This release is available as a Docker image:

    docker pull ghcr.io/gamosoft/NoteDiscovery:0.32.0
    

    Full Changelog: https://github.com/gamosoft/NoteDiscovery/compare/v0.31.7...v0.32.0

  5. v0.31.72026-09-28 · 2026-09-28 15:15 UTC
    查看更新说明

    What's Changed

    • Features/homepage list view (6815855)

    Docker Images

    This release is available as a Docker image:

    docker pull ghcr.io/gamosoft/NoteDiscovery:0.31.7
    

    Full Changelog: https://github.com/gamosoft/NoteDiscovery/compare/v0.31.6...v0.31.7

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    What is NoteDiscovery?

    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.

    🎯 Who is it for?

    • Privacy-conscious users who want complete control over their data
    • Developers who prefer markdown and local file storage
    • Knowledge workers building a personal wiki or second brain
    • Teams looking for a self-hosted alternative to commercial apps
    • Anyone who values simplicity, speed, and ownership


    ✨ Why NoteDiscovery?

    vs. Commercial Apps (Notion, Evernote, Obsidian Sync)

    FeatureNoteDiscoveryCommercial Apps
    Cost100% Free$xxx/month/year
    PrivacyYour server, your dataTheir servers, their terms
    SpeedLightning fastDepends on internet
    OfflineAlways worksLimited or requires sync
    CustomizationFull controlLimited options
    No Lock-inPlain markdown filesProprietary formats

    Key Benefits

    • 🔒 Total Privacy - Your notes never leave your server
    • 📴 No CDN Required - The app and its shared links serve every browser library locally, so they work on air-gapped networks — see documentation/THIRD_PARTY.md
    • 🔐 Optional Authentication - Simple password protection for self-hosted deployments
    • 💰 Zero Cost - No subscriptions, no hidden fees
    • 🚀 Fast & Lightweight - Instant search and navigation
    • 🎨 Beautiful Themes - Multiple themes, easy to customize
    • 🔌 Extensible - Plugin system for custom features
    • 📱 Responsive - Works on desktop, tablet, and mobile
    • 📂 Simple Storage - Plain markdown files in folders
    • 🧮 Math Support - LaTeX/MathJax for beautiful equations
    • 📄 HTML Export & Print - Export notes as standalone HTML or print
    • 🕸️ Graph View - Interactive visualization of connected notes
    • ✏️ Drawing editor - In-app sketches as drawing-*.png next to your notes — see documentation/DRAWING.md
    • ⭐ Favorites - Star your most-used notes for instant access
    • 📑 Outline Panel - Navigate headings with click-to-jump TOC
    • 🤖 AI Assistant Ready - MCP integration for Claude, Cursor & more

    🤖 AI-Powered Note Management

    NoteDiscovery includes a built-in Model Context Protocol (MCP) server, letting AI assistants directly interact with your notes:

    What AI Can DoExample
    🔍 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"]
        }
      }
    }
    

    🌐 Prefer a URL? Set MCP_ENABLED=true and point your client at http://your-server:8000/mcp (Streamable HTTP).

    💡 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.

    📺 Watch the tour

    🚀 Quick Start

    Quick Setup

    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.

    Using Docker Compose

    Two docker-compose files are provided:

    FileUse Case
    docker-compose.ghcr.ymlRecommended - Uses pre-built image from GitHub Container Registry
    docker-compose.ymlFor development - Builds from local source
    docker-compose.ollama-stack.ymlBundled 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.

    Running Locally (Without Docker)

    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:

    • Python 3.8 or higher
    • pip (Python package manager)
    Using Virtual Environments (Recommended for Arch/Fedora/Ubuntu 23.04+)

    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

    Advanced Docker Setup

    The image includes bundled config, themes, plugins, and locales. To customize, you must:

    1. Map the volume in your docker-compose or docker run command
    2. Provide content - the file/folder must exist with valid content (empty = app might break!)
    VolumePurposeBundled?
    data/Your notes❌ You must create
    config.yamlApp settings✅ Yes
    themes/Custom themes✅ Yes
    plugins/Custom plugins✅ Yes
    locales/Translations✅ Yes

    Dashboard Integration

    An official icon for NoteDiscovery is now available on Dashboard Icons!
    Use it in your self-hosted dashboards like Homepage, Homarr, Dashy, Heimdall, etc...

    📚 Documentation

    Want to learn more?

    • 🎨 THEMES.md - Theme customization and creating custom themes
    • ✨ FEATURES.md - Complete feature list and keyboard shortcuts
    • ✏️ DRAWING.md - Built-in drawing editor (drawing-*.png), save behavior, and API notes
    • 🏷️ TAGS.md - Organize notes with tags and combined filtering
    • 📋 TEMPLATES.md - Create notes from reusable templates with dynamic placeholders
    • 🧮 MATHJAX.md - LaTeX/Math notation examples and syntax reference
    • 📊 MERMAID.md - Diagram creation with Mermaid (flowcharts, sequence diagrams, and more)
    • 🔌 PLUGINS.md - Plugin system and available plugins
    • 🧩 plugins/contrib/ - Optional community plugins and how to install them
    • 🌐 API.md - REST API documentation and examples
    • 🤖 MCP.md - AI assistant integration (Claude, Cursor, and more)
    • 🔐 AUTHENTICATION.md - Enable password protection for your instance
    • 🔧 ENVIRONMENT_VARIABLES.md - Configure settings via environment variables
    • 📦 THIRD_PARTY.md - Locally hosted browser libraries, licences, and how to update them

    🌍 Multiple Languages

    NoteDiscovery 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!

    🤝 Contributing

    Before submitting a pull request, especially for major changes, please:

    • Read our Contributing Guidelines
    • Open an issue first to discuss major features or significant changes
    • Ensure your code follows the project's style and philosophy

    🔒 Security Considerations

    NoteDiscovery is designed for self-hosted, private use. Please keep these security considerations in mind:

    Network Security

    • ⚠️ Do NOT expose directly to the internet without additional security measures
    • Run behind a reverse proxy (nginx, Caddy) with HTTPS for production use
    • Keep it on your local network or use a VPN for remote access
    • By default, the app listens on 0.0.0.0:8000 (all network interfaces)

    Authentication

    • Password protection is DISABLED by default (default password: admin)
    • ⚠️ ENABLE AUTHENTICATION AND CHANGE THE DEFAULT PASSWORD if exposing to a network!
    • See AUTHENTICATION.md for complete setup instructions
    • To disable auth, set authentication.enabled: false in config.yaml
    • Perfect for single-user or small team deployments
    • For multi-user setups, consider a reverse proxy with OAuth/SSO

    Data Privacy

    • Your notes are stored as plain text markdown files in the data/ folder
    • No data is sent to external services
    • Regular backups are recommended

    Best Practices

    • Run on localhost or a private network only
    • Use Docker for isolation and easier security management
    • Keep your system and dependencies updated
    • Review and audit any plugins you install
    • Set appropriate file permissions on the data/ directory

    TL;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.

    📄 License

    MIT License - Free to use, modify, and distribute.


    Made with ❤️ for the self-hosting community