Obsidian + CouchDB livesync — moja zamiana Notion
Notion był wygodny, ale dane na cudzym serwerze i lock-in formatu. Obsidian + CouchDB livesync daje to samo, lokalnie, z markdown na dysku. Pokazuję setup.

Notion miałem 3 lata. Działał. Aż któregoś dnia wpadłem na to, że eksport mojej bazy zajmie dwie godziny i wyjdzie HTML chaos. Zmigrowałem do Obsidian z CouchDB livesync, markdown na dysku, sync między urządzeniami, zero zewnętrznego SaaS.
Dlaczego Obsidian
Trzy rzeczy:
- Pliki to markdown. Mogę otworzyć bez aplikacji. grepować. backupować jak każdy folder.
- Lokalność. Storage to mój dysk. Nie ma "cloud sync" jako default, sam decyduję czy i gdzie sync.
- Plugins. Społeczność jest większa niż Notion miało za czasów świetności.
Czemu CouchDB
Self-hosted livesync wymaga jakiejś bazy. Plugin obsidian-livesync wspiera CouchDB i kilka innych. Wybrałem CouchDB bo:
- działa offline-first (replikacja)
- end-to-end encryption (passphrase, plugin sam szyfruje)
- jest stabilny (od 2005)
Architektura
[iPhone Obsidian] ←→ [Mini PC: CouchDB] ←→ [Macbook Obsidian]
↓
[Daily backup: pg_dump-like]Każde urządzenie utrzymuje lokalny vault na dysku. Plugin syncuje deltami przez CouchDB. CouchDB żyje u mnie na mini PC, dostępny przez obsidian-sync.kamilkaletka.dev (Cloudflare tunnel + Zero Trust).
Setup CouchDB
Docker compose:
services:
couchdb:
image: couchdb:3.3
environment:
COUCHDB_USER: admin
COUCHDB_PASSWORD: ...
ports:
- "127.0.0.1:5984:5984"
volumes:
- couchdb-data:/opt/couchdb/data
volumes:
couchdb-data:Po docker compose up -d wchodzisz na localhost:5984/_utils, tworzysz bazę obsidian-vault, generujesz user-a non-admina, i już.
Konfiguracja pluginu
W Obsidian: Settings → Community plugins → Self-hosted LiveSync.
Pola:
- URI:
https://obsidian-sync.kamilkaletka.dev - DB name:
obsidian-vault - Username/Password: non-admin user
- E2E encryption passphrase: zapisuję w 1Password
Passphrase to KLUCZOWA rzecz. Bez niej zsynchronizowane dane są w plain-text na CouchDB. Jak ktoś złamie auth, czyta. Z passphrase, zaszyfrowane jak fort knox.
Workflow który zadziałał
Daily notes na telefonie. Dictate Siri → Obsidian quick capture → automatycznie syncuje. Wracam do domu, otwieram Macbooka, kontynuuję notatkę.
Linki między notatkami. [[koncept-x]] daje 2-way link. Buduje się z czasem graf, którego w Notion (z tableami i pageami) nigdy nie miałem.
Tagi vs foldery. Foldery do "od kiedy" (rok-miesiąc), tagi do "o czym". Tag może być na 50 notatkach, folder zwykle ma 1.
Pułapki
1. Passphrase utracone = vault stracony. Plain text na CouchDB jest zaszyfrowany. Jak zgubisz passphrase, nie zdekryptujesz. Backup passphrase w bezpiecznym miejscu.
2. Konflikty merge. Dwa urządzenia edytują tę samą notatkę offline → przy syncu plugin tworzy notatka.conflict.md. Manualne sklejanie. Rzadko, ale boli.
3. Migracja z Notion. Eksport Notion to chaos. Użyłem notion-to-obsidian jako start, potem 3 dni ręcznego sprzątania. Warto przejrzeć przed migracją czy jest coś w Notion-only formatcie.
4. Mobile sync ma latency. Plugin ma replikację co ~30 sekund domyślnie. Jak chcesz ASAP, ustaw replication interval na 5s w pluginie.
Co straciłem (i nie żałuję)
- Tabele z formułami. Notion miał inline DB. Obsidian ma plugin Dataview, ale to nie to samo. Dla mnie strata akceptowalna.
- Współpraca w czasie rzeczywistym. Notion miał Google-Docs-style. CouchDB livesync to async. Jak współpracujesz z 5 osobami, Obsidian nie jest tym narzędziem.
- Templates UI. Notion miał ładny UI do template'ów. Obsidian ma plugin, jest brzydszy ale działa.
Po roku z Obsidian + CouchDB nie wracam. Markdown na dysku to spokój ducha którego cloud nie da. A livesync rozwiązuje jedyny realny minus self-hosted'a, multi-device. Setup zajmuje godzinę, opłacalność widać po tygodniu.