dc0408cd5c531e2528c5a79c8e4435defc2e590a
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
#tagsparsed 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
commonspace - 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
cp .env.example .env
uv sync
./run-local
Docker
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
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
Description
Languages
Python
49.6%
JavaScript
28.1%
CSS
16.4%
Shell
3.5%
HTML
2.1%
Other
0.3%