# snotes (SchmeeveNotes) A simple hosted markdown notes app. Notes are stored as plain `.md` files on a filesystem mount (NAS), with metadata and full-text search kept in SQLite. ## Features - Rich text editor (TipTap) with markdown round-trip - Twitter-style `#tags` parsed automatically from note text - Front page with recent notes, most-used tags, and search (SQLite FTS5) - Multi-user spaces selected via cookie, plus a shared `common` space - Local (LAN) access needs no password; remote access needs one set in `.env` - Append-only note history recording time, IP, and user-agent ## Quick Start ```bash cp .env.example .env uv sync ./run-local ``` Open http://localhost:8000 ## Docker ```bash docker compose up --build ``` Runs on http://localhost:8019, mounting `/mnt/aura/snotes` for notes. ## Configuration | Variable | Default | Description | |---|---|---| | `DATA_DIR` | `data/notes` | Filesystem directory for `.md` notes | | `DATABASE_PATH` | `snotes.db` | SQLite metadata + FTS index | | `USERS` | `schmeeve,ilya` | Comma-separated fixed usernames | | `COMMON_SPACE` | `common` | Shared space name | | `REMOTE_PASS` | _(empty)_ | Remote-access password | | `SECRET_KEY` | `change-me-...` | Signing key for auth cookies | | `LAN_CIDRS` | `192.168.1.0/24` | Subnets allowed in without a password | ## Tests ```bash uv run pytest ``` ## Stack - **Backend**: Python / FastAPI / aiosqlite (FTS5) - **Editor**: TipTap (ProseMirror) + marked + Turndown for markdown round-trip - **Storage**: Markdown files on a mounted filesystem; SQLite for metadata - **Deploy**: Docker