Terminal-themed markdown diary

Single-user diary served as one Rust binary with the Svelte frontend
embedded.

- axum 0.8 + SQLite (sqlx), migrations run at startup
- stateless HMAC session cookie; credentials from .env, compared in
  constant time
- FTS5 full-text search, user input rewritten into quoted prefix terms
- media uploads linked to entries by scanning bodies for /api/media/<id>,
  which scopes share-token media access and entry deletion
- unguessable share links (192-bit token) serving a public read-only page
- vim keybindings via CodeMirror plus a modal browse layer and : command
  line; disabled on touch devices
This commit is contained in:
nvrl committed 2026-09-05 05:39:25 +02:00
commit 4002a35305
41 files changed
+6195

No files matched your search

+24
View File
@@ -0,0 +1,24 @@
.PHONY: dev dev-api dev-web build run check clean
# Two terminals: `make dev-api` and `make dev-web` (http://127.0.0.1:4243).
dev-api:
cargo run
dev-web:
cd web && bun run dev
# Everything, as one self-contained release binary at target/release/narl-diary.
build:
cd web && bun install && bun run build
cargo build --release
run: build
./target/release/narl-diary
check:
cargo clippy --all-targets -- -D warnings
cd web && bun run check
clean:
cargo clean
rm -rf web/dist web/node_modules