Should I self-host Evernote?
Trilium's tree-of-notes beats Evernote for structured thinkers on desktop. The mobile story is a synced web app and the OCR-of-photos job doesn't exist — worth it if your notes live on a keyboard.
Native mobile apps with offline + camera capture — Trilium mobile is a web view
Evernote's OCR on photos and scans
10GB of someone else's storage
notes with hierarchy/links · web clipping · search · mobile capture · OCR of images/handwriting
* Percent of the subscription price. Your time is priced at the slider's rate — $0/h ("my homelab time is free and I love it") is a legitimate position. Every number is derived from the record, never hand-written. Price source, checked 2026-08-06.
Runs comfortably on a Raspberry Pi.


Project moved: zadam/trilium is archived, TriliumNext is the maintained fork — star counts and docker tags split across the two confuses every comparison
# Trilium Notes (TriliumNext) — hierarchical personal knowledge base (replaces Evernote's
# desktop half; the mobile + OCR gap is the KINDA)
services:
trilium:
image: triliumnext/notes:latest
container_name: trilium
restart: unless-stopped
environment:
TRILIUM_DATA_DIR: /home/node/trilium-data
ports:
- "8091:8080"
volumes:
- trilium-data:/home/node/trilium-data
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://localhost:8080/api/health-check >/dev/null || wget -qO- http://localhost:8080 >/dev/null || exit 1"]
interval: 5s
timeout: 5s
retries: 24
start_period: 20s
volumes:
trilium-data:
Want a guided install instead? caniselfhostit.com/evernote has AI-agent prompts that assume a bare machine — that's their half of the stool, and it's good.
FULL TIMED LOG
# Timed setup log: Evernote → trilium **Protocol:** v1 · **Verified by:** zernonia · **Date:** 2026-08-10 **Assistant:** claude-code · **Environment:** containerized runner, 2 vCPU class, Docker 29.3 / Compose v5.1 ## Timeline | Step | Time | |---|---| | Read upstream docs, draft compose with healthcheck | ~13 min | | **Boot: all services healthy in 26 s (measured, `compose up --wait`)** | — | | Endpoint-level workflow check (login/health/API serve) + re-run from clean volumes | ~13 min | | **Total: ~40 min** | | Boot and endpoint checks are machine-verified; `setup_min` is the wall-clock total for this session including authoring, diagnosis and re-runs. Endpoint-level ≠ full human UI workflow — dispute anything that doesn't reproduce (CONTRIBUTING.md). ## What broke - Project moved: zadam/trilium is archived, TriliumNext is the maintained fork — star counts and docker tags split across the two confuses every comparison ## Verdict-relevant notes - Web clipper extension works against self-hosted instances.