Files
snotes/README.md
2026-09-22 16:11:20 -07:00

57 lines
1.6 KiB
Markdown

# 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