# ๐Ÿ“ NoteDiscovery > Your Self-Hosted Knowledge Base ## 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. ![Note Discovery](docs/screenshot.jpg) ## ๐ŸŽฏ 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) | 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 | ### Key Benefits - ๐Ÿ”’ **Total Privacy** - Your notes never leave your server - ๐Ÿ” **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** - Share notes as standalone HTML files ## ๐Ÿš€ Quick Start ### Running from GitHub Container Registry (Easiest & Recommended) Use the pre-built image directly from GHCR - no building required! > **๐Ÿ’ก Tip**: Always use `ghcr.io/gamosoft/notediscovery:latest` to get the newest features and fixes. Images are automatically built when PRs are merged to main. > **๐Ÿ“ Important - Volume Mapping**: The container needs local folders/files to work: > - **Required**: `data` folder (your notes will be stored here) > - **Required**: `themes` folder with theme `.css` files (at least light.css and dark.css) > - **Required**: `plugins` folder (can be empty for basic functionality) > - **Required**: `config.yaml` file (needed for the app to run) > > **Setup Options:** > > 1. **Minimal** (quick test - download just the essentials): > ```bash > # Linux/macOS > mkdir -p data plugins themes > curl -O https://raw.githubusercontent.com/gamosoft/notediscovery/main/config.yaml > # Download at least light and dark themes > curl -o themes/light.css https://raw.githubusercontent.com/gamosoft/notediscovery/main/themes/light.css > curl -o themes/dark.css https://raw.githubusercontent.com/gamosoft/notediscovery/main/themes/dark.css > ``` > > ```powershell > # Windows PowerShell > mkdir data, plugins, themes -Force > Invoke-WebRequest -Uri https://raw.githubusercontent.com/gamosoft/notediscovery/main/config.yaml -OutFile config.yaml > # Download at least light and dark themes > Invoke-WebRequest -Uri https://raw.githubusercontent.com/gamosoft/notediscovery/main/themes/light.css -OutFile themes/light.css > Invoke-WebRequest -Uri https://raw.githubusercontent.com/gamosoft/notediscovery/main/themes/dark.css -OutFile themes/dark.css > ``` > > 2. **Full Setup** (recommended - includes all themes, plugins, sample notes): > ```bash > git clone https://github.com/gamosoft/notediscovery.git > cd notediscovery > # Now you have everything - run docker-compose below > ``` > **๐Ÿ” Security Note**: Authentication is **enabled by default** with password `admin`. For testing/local use, this is fine. If exposing to a network, **change the password immediately** - see [AUTHENTICATION.md](data/AUTHENTICATION.md) for instructions. **Option 1: Docker Compose (Recommended)** > ๐Ÿ’ก **Multi-Architecture Support**: Docker images are available for both `x86_64` and `ARM64` (Raspberry Pi, Apple Silicon, etc.) ```bash # Download the docker-compose file curl -O https://raw.githubusercontent.com/gamosoft/notediscovery/main/docker-compose.ghcr.yml # Or if you cloned the repo, just use it directly docker-compose -f docker-compose.ghcr.yml up -d # Access at http://localhost:8000 # Login with default password: admin # View logs docker-compose -f docker-compose.ghcr.yml logs -f # Stop the application docker-compose -f docker-compose.ghcr.yml down ``` **Option 2: Docker Run (Alternative)** ```bash # Linux/macOS docker run -d \ --name notediscovery \ -p 8000:8000 \ -v $(pwd)/data:/app/data \ -v $(pwd)/plugins:/app/plugins \ -v $(pwd)/themes:/app/themes \ -v $(pwd)/config.yaml:/app/config.yaml \ --restart unless-stopped \ ghcr.io/gamosoft/notediscovery:latest ``` ```powershell # Windows PowerShell docker run -d ` --name notediscovery ` -p 8000:8000 ` -v ${PWD}/data:/app/data ` -v ${PWD}/plugins:/app/plugins ` -v ${PWD}/themes:/app/themes ` -v ${PWD}/config.yaml:/app/config.yaml ` --restart unless-stopped ` ghcr.io/gamosoft/notediscovery:latest ``` Access at http://localhost:8000 **Why use the GHCR image?** - โœ… No build time - instant deployment - โœ… Always up-to-date with the latest release - โœ… Tested and verified builds - โœ… Smaller download with optimized layers ### Running with Docker Compose (Recommended for Development) Docker ensures consistent environment and easy deployment: ```bash # Clone the repository git clone https://github.com/gamosoft/notediscovery.git cd notediscovery # Start with Docker Compose docker-compose up -d # Access at http://localhost:8000 # View logs docker-compose logs -f # Stop the application docker-compose down ``` **Requirements:** - Docker - Docker Compose ### Running Locally (Without Docker) For development or if you prefer running directly: ```bash # 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) **Dependencies installed:** - FastAPI - Web framework - Uvicorn - ASGI server - PyYAML - Configuration handling - aiofiles - Async file operations ## ๐Ÿ“š Documentation Want to learn more? **The full documentation lives inside the app as interactive notes!** Once you've started NoteDiscovery, you'll find comprehensive guides on: - ๐ŸŽจ **THEMES.md** - Theme customization and creating custom themes - โœจ **FEATURES.md** - Complete feature list and keyboard shortcuts - ๐Ÿงฎ **MATHJAX.md** - LaTeX/Math notation examples and syntax reference - ๐Ÿ”Œ **PLUGINS.md** - Plugin system and available plugins - ๐ŸŒ **API.md** - REST API documentation and examples - ๐Ÿ” **AUTHENTICATION.md** - Enable password protection for your instance **Can't wait to start the app?** Browse the documentation notes directly on GitHub in the [`data/`](data/) folder! ๐Ÿ’ก **Tip:** These documentation files are regular markdown notesโ€”edit them, add your own notes, or use them as templates. It's your knowledge base! ## ๐Ÿ’– Support Development If you find NoteDiscovery useful, consider [โ˜• buying me a coffee](https://ko-fi.com/gamosoft) to help keep the project going. Every bit helps with new features, bug fixes, and improvements. Thank you! ## ๐Ÿ”’ 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 ENABLED by default** with password: `admin` - โš ๏ธ **CHANGE THE DEFAULT PASSWORD IMMEDIATELY** if exposing to a network! - See **[AUTHENTICATION.md](data/AUTHENTICATION.md)** for complete setup instructions - To disable auth, set `security.enabled: false` in `config.yaml` - Change password with Docker: `docker-compose exec notediscovery python generate_password.py` - 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 `data/` - 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