SiYuan: प्राइवेसी-फर्स्ट, सेल्फ-होस्टेड पर्सनल नॉलेज मैनेजमेंट सॉफ्टवेयर
(github.com/siyuan-note)- SiYuan एक प्राइवेसी-फर्स्ट पर्सनल नॉलेज मैनेजमेंट सिस्टम है, जो बारीक ब्लॉक-लेवल रेफरेंस और Markdown WYSIWYG को सपोर्ट करता है
- इसकी मुख्य सुविधाओं में ब्लॉक-लेवल रेफरेंस और bi-directional links, SQL query embed, बड़े दस्तावेज़ों की editing, formulas और charts, web clipping, PDF annotation links, database table view, flashcard spaced repetition learning आदि शामिल हैं
- यह desktop और mobile apps, Docker deployment, API, CLI और community marketplace देता है, साथ ही OpenAI API आधारित AI writing और Q/A chat, और Tesseract OCR भी सपोर्ट करता है
- अधिकांश सुविधाएं commercial use तक के लिए free हैं, लेकिन कुछ सुविधाएं केवल paid members के लिए हैं, और third-party sync disk के जरिए data sync data corruption की संभावना के कारण supported नहीं है
- Docker deployment केवल browser use को सपोर्ट करता है; desktop/mobile app connection, PDF/HTML/Word export और Markdown file import supported नहीं हैं
SiYuan द्वारा दिया जाने वाला knowledge management model
- SiYuan “Refactor your thinking” को आगे रखने वाला personal knowledge management system है
- इसका मूल direction privacy-first है, और यह बारीक block-level references तथा Markdown WYSIWYG editing को सपोर्ट करता है
- Online user guide English में उपलब्ध है
- English discussion forum SiYuan English Discussion Forum पर चलाया जाता है
मुख्य सुविधाएं
- Content block सुविधा में block-level references और bi-directional links, custom properties, SQL query embed, और
siyuan://protocol शामिल हैं - Editor block style editing, Markdown WYSIWYG, list outline, block zoom, और million-word scale के बड़े documents की editing को सपोर्ट करता है
- दस्तावेज़ों में formulas, charts, flowcharts, Gantt charts, timing charts, staff notation जैसी कई representations डाली जा सकती हैं
- Web clipping और PDF annotation links सपोर्ट करता है
- Export में block references और embeds, assets सहित standard Markdown, PDF, Word, HTML सपोर्ट हैं
- WeChat MP, Zhihu, Yuque में copy करने की सुविधा भी शामिल है
- Database Table view देता है
- Flashcard spaced repetition learning, OpenAI API आधारित AI writing और Q/A chat, और Tesseract OCR सपोर्ट करता है
- Multi-tab, drag-and-drop split screen, template snippets, JavaScript/CSS snippets देता है
- Android, iOS, HarmonyOS apps और Docker deployment सपोर्ट करता है
- API और community marketplace प्रदान करता है
- अधिकांश सुविधाएं commercial use तक के लिए free हैं, और कुछ सुविधाएं Pricing में दी गई paid member features हैं
Architecture और ecosystem
- SiYuan ecosystem editor engine, extensions, marketplace, data repository, plugin API, mobile apps, और spaced repetition learning project से बना है
- lute: editor engine
- chrome: Chrome/Edge extension
- bazaar: community marketplace
- dejavu: data repository
- petal: plugin API
- android: Android app
- ios: iOS app
- harmony: HarmonyOS app
- riff: spaced repetition learning
Installation और deployment
- Desktop और mobile पर भविष्य में one-click upgrade के लिए app market installation को प्राथमिकता से recommend किया जाता है
- Mobile app App Store, Google Play, F-Droid पर उपलब्ध है
- Desktop app Microsoft Store पर उपलब्ध है
- Installation packages B3log और GitHub Releases से मिल सकते हैं
- Package manager entries
siyuanऔरsiyuan-noteके रूप में उपलब्ध हैं
Docker hosting
- Server पर SiYuan उपलब्ध कराने का सबसे आसान तरीका Docker deployment है
- Docker image name
b3log/siyuanहै, और image page Docker Hub पर है - v3.7.0 से
servesubcommand को स्पष्ट रूप से pass करना होगा- उदाहरण:
docker run b3log/siyuan serve --workspace=...
- उदाहरण:
- मुख्य run options इस प्रकार हैं
--workspace: host पर-vसे mount होने वाले workspace folder path को specify करता है--accessAuthCode: lock screen password specify करता है
- Environment variables के रूप में PUID और PGID set करके container के अंदर run करने वाले user और group को adjust किया जा सकता है
- अगर value नहीं दी गई, तो default
1000है - यह host पर mounted directory permission issues को कम करने के लिए setting है
- अगर value नहीं दी गई, तो default
- Workspace path
SIYUAN_WORKSPACE_PATHenvironment variable से भी set किया जा सकता है, लेकिन command-line argument होने पर command line को priority मिलेगी - Lock screen password
SIYUAN_ACCESS_AUTH_CODEenvironment variable से भी set किया जा सकता है, लेकिन command-line argument होने पर command line को priority मिलेगी SIYUAN_ACCESS_AUTH_CODE_BYPASS=trueset करने पर lock screen password disable किया जा सकता हैSIYUAN_LANGDocker में interface language specify करता है, और अगर set न हो तो defaultenहै- 6806 port को hide करने के लिए NGINX reverse proxy का use किया जा सकता है, और
/wsके लिए WebSocket reverse proxy configuration की जरूरत होती है - Docker deployment में ध्यान देने योग्य बातें
- अगर mount volume सही नहीं है, तो container delete होने के बाद data खो सकता है
- Authentication issues हो सकते हैं, इसलिए URL rewrite redirect के बजाय reverse proxy configuration recommended है
- Permission issues होने पर check करें कि
PUIDऔरPGIDhost mount directory ownership से match करते हैं या नहीं
- Docker deployment की limitations
- Desktop और mobile app connection support नहीं करता, केवल browser use support करता है
- PDF, HTML, Word format export support नहीं करता
- Markdown file import support नहीं करता
CLI
- Built-in CLI किसी running server के बिना सीधे workspace data access करता है
- Quick usage examples इस प्रकार हैं
siyuan notebook list -w ~/SiYuan: सभी notebooks list करेंsiyuan search "keyword" -w ~/SiYuan -f json: JSON output के साथ full-text searchsiyuan export md --id <block-id> -w ~/SiYuan: document को Markdown में export करें
- Command categories में notebooks और documents, content, metadata, query, references, import/export, data management, utilities, database, server, workspace/system शामिल हैं
-f jsonscript-friendly output देता है, और default output-f tableहै- अधिकांश change commands apply करने से पहले preview के लिए
--dry-runसपोर्ट करते हैं - CLI binary installation path के
<install>/resources/kernelके नीचेSiYuan-Kernelहै- Windows installer इसे PATH में automatically add करता है
- macOS/Linux में manual symbolic link बनाया जा सकता है
Data storage और sync
- Data workspace के data folder में store होता है
- मुख्य folders की भूमिका इस प्रकार है
assets: inserted assets store करता हैemojis: emoji images store करता हैsnippets: code snippets store करता हैstorage: query conditions, layout, flashcards आदि store करता हैtemplates: template snippets store करता हैwidgets: widgets store करता हैplugins: plugins store करता हैpublic: public data store करता है
- बाकी folders user द्वारा बनाए गए notebook folders हैं, और notebook folder के अंदर
.syfiles document data store करती हैं .sydocument data format JSON है- Third-party sync disk के जरिए data sync supported नहीं है; ऐसा करने पर data corrupt हो सकता है
- Third-party sync disk supported नहीं है, लेकिन paid member entitlement के तहत third-party cloud storage connection supported है
- Manual sync alternative के रूप में data export और import का use किया जा सकता है
- Desktop:
Settings→Export→Export Data/Import Data - Mobile:
Right column→About→Export Data/Import Data
- Desktop:
Open source और upgrade
- SiYuan पूरी तरह open source है और contributions का स्वागत करता है
- संबंधित repositories इस प्रकार हैं
- Development guidance के लिए Development Guide देखें
- अगर app store से install किया है, तो app store से update करें
- अगर desktop installation package से install किया है, तो
Settings→About→Automatically download update installation packageoption से latest installation package automatic download कर सकते हैं और installation guidance पा सकते हैं - अगर manual installation package से install किया है, तो installation package फिर से download करके install करें
- New version
Settings→About→Current VersionकेCheck update, Official Download, GitHub Releases पर check किया जा सकता है
अन्य FAQ
- अगर list item के अंदर paragraph block जैसे कुछ blocks में block icon नहीं मिल रहा, तो इसका मतलब list item के नीचे first child block का block icon omitted है
- Cursor को उस block पर रखकर
Ctrl+/से block menu खोला जा सकता है
- Cursor को उस block पर रखकर
- Data repository key खो जाने पर, अगर आपने पहले कई devices पर सही तरीके से initialize किया था, तो सभी devices की key same होती है और
Settings→About→Data repo key→Copy key stringसे प्राप्त की जा सकती है - अगर key सही तरह configured नहीं है या सभी devices available नहीं हैं, तो manual backup के बाद data repository key reset करनी होगी
- Backup के लिए
Export Datause करें या file system मेंworkspace/data/folder को सीधे copy करें Settings→About→Data repo key→Reset data reporun करें- एक device पर key initialize करने के बाद दूसरी device पर key import करें
- Cloud नया sync directory use करेगा, और existing sync directory तथा existing cloud snapshots अब use नहीं किए जा सकेंगे
- Backup के लिए
- अधिकांश सुविधाएं commercial use तक के लिए free हैं
- Paid member entitlements केवल payment के बाद use किए जा सकते हैं; details के लिए Pricing देखें
1 टिप्पणियां
Hacker News की राय
दिखने में शानदार है, लेकिन knowledge management/productivity की यात्रा से गुजरने के बाद मुझे लगता है कि अगर आप कंप्यूटर या Unix से कुछ हद तक परिचित हैं, तो पहले directory structure, file names, plain text, lists, Markdown पर निर्भर करना बेहतर है
apps से पहले files को प्राथमिकता देने वाला Unix-style तरीका बेहतर है, और जगहों, चीज़ों, लोगों, events, metrics, usage जैसे सार्वभौमिक concepts के आधार पर व्यवस्थित करना अच्छा रहता है। Unix commands, make/justfile, (rip)grep, git, fzf जैसे tools का उपयोग करें; अगर आप web के जरिए इस समस्या को हल करने की कोशिश करेंगे, तो आप basic knowledge management नहीं बल्कि web problem हल कर रहे होंगे। smartphone/touchscreen भी बड़ी समस्या हैं, लेकिन इसी तरह उन्हें सीधे हल करने की कोशिश करने के बजाय file manager या Termux के fzf को touch पर इस्तेमाल लायक बनाना ज़्यादा व्यावहारिक है। हालांकि backlinks feature पर मैं अभी भी सोच रहा हूं, और अच्छा होगा अगर hierarchy के अंदर text files में दूसरे files के references scan करने वाला कोई Unix tool हो
यह notebooks या folders के बिना Markdown files वाली एक single directory और ठीक-ठाक search/tags ही देता है। यह उस बदलाव जैसा है जिसमें email को पहले से गहरी hierarchy में structure करना छोड़कर “index कर दो, जरूरत पड़ने पर खोज लेंगे” वाला तरीका अपनाया गया। जितनी जरूरत है, उतना काफी है, और छोटे bugs या gaps हों तो उनसे बचकर काम चलाया जा सकता है या उनके बिना रहा जा सकता है। constraints creativity और execution को बाहर लाने की मजबूत प्रेरणा बनते हैं
अगर reasonable rules इस्तेमाल करें, तो Ghost या Zola जैसी चीजों से web version बना सकते हैं और CI में auto-deploy कर सकते हैं। backup और sync मिलते हैं, desktop/mobile apps भी हैं, और Vim key bindings व git plugin भी है। यह Unix के साथ अच्छी तरह फिट बैठता है और कई navigation/organization paradigms के मुताबिक adapt होने वाला काफी अच्छा system है; मैंने कई tools आजमाए हैं, लेकिन Obsidian के करीब कोई नहीं आया
पिछले करीब 1 साल से मैं बस plain Markdown और directory hierarchy पर टिक गया हूं। अपने पसंदीदा editor Emacs से files edit करता हूं, और वही key bindings, search, version control features इस्तेमाल करता हूं। notes को self-hosted Forgejo instance पर डालता हूं; GitHub भी हो सकता है। Forgejo में पहले से web interface है, इसलिए notes और links अच्छे से काम करते हैं। laptop पर मैंने mdbook को directory watch करके static website build करने के लिए setup किया है, और जब notes browse या read करने हों तो वही इस्तेमाल करता हूं। phone पर notes लिखने का solution भी देखा, लेकिन कुछ lines से ज्यादा हो तो वैसे भी laptop ही इस्तेमाल करता हूं, और phone पर लगभग सिर्फ पढ़ता हूं। उसी mdbook को VPN के पीछे रखता हूं ताकि phone से भी access हो सके, और चलते-फिरते edit की जरूरत हो तो Forgejo web interface इस्तेमाल कर सकता हूं
मेरे लिए यह बहुत अच्छा काम करता है। हालांकि sync और mobile use अभी भी कमी वाले हिस्से हैं। Termux में यह खूबसूरती से चलता है, लेकिन अच्छा होता अगर command-line app के ऊपर mobile के लिए native UI चढ़ाने का कोई तरीका होता। Tk/Tcl सबसे करीब है, लेकिन विकल्प mainly Android side पर हैं, और मैं ज्यादातर iOS user हूं, इसलिए यह ideal नहीं है। sync के लिए IMAP4 या git-based sync जैसा plausible plan है। इस project का roadmap और tasks भी repo के अंदर इसी से track होते हैं, तो एक तरह से यह सच में काम कर रहा है
पहले मेरे मन में काफी Unix-like note app का idea आया था, और मुझे अब भी लगता है कि यह अच्छी तरह काम कर सकता है। notes को SQLite database में रखें तो compression, performance और आसान backup मिलते हैं; filesystem की text files में रखें तो आसान search और low dependencies मिलती हैं। “editor” का काम बस नई temporary file बनाकर उसे
$EDITORमें खोलना होगा। बाद में उसे नाम दे सकते हैं, या current date से नाम रख सकते हैं। links चाहिए तो filesystem समझने वाला editor इस्तेमाल करें, syntax highlighting चाहिए तो वैसा editor इस्तेमाल करें, sync को Syncthing के साथ जोड़ें, और search fzf से करेंमैं इसे कई सालों से home server पर इस्तेमाल कर रहा हूं
यह Obsidian जैसा tool है, काफी कम polished है और documentation भी कम है। open source होना अच्छा है, लेकिन इसके पीछे की company के बारे में ठीक से नहीं जानता। Chinese company है, इसके अलावा ज्यादा कुछ नहीं मिला। self-hosting possible है, इसमें Obsidian के ज्यादातर features हैं, और कहीं से भी web browser में इस्तेमाल किया जा सकता है—इसीलिए मैं इसे इस्तेमाल करता हूं। यही इसका सबसे बड़ा feature है जो Obsidian में नहीं है
पहली नजर में app घटिया नहीं लगा; यह Notion से निश्चित रूप से ज्यादा responsive है और RemNote से कम slippery महसूस होता है। हालांकि tooltips तुरंत और बहुत सारे pop up होते हैं, इसलिए काफी distracting है। लगता है वे RemNote जैसे spaced repetition flashcards, Notion जैसा database, और AI तक जोड़ना चाहते थे, और लगता है उन्होंने यह काफी ठीक से कर लिया है। Org-Mode तक सहित internal links, images, code blocks को preserve करने वाले कई export options भी अच्छे हैं। cloud-first, closed source apps के मुकाबले एक ठोस और feature-rich alternative होना मुझे पसंद है, लेकिन advanced layout features और बहुत सारे features के कारण मेरे use case के लिए यह distracting और heavy हो सकता है। Tana भी ऐसा ही all-in-one solution है और ज्यादा innovative है, लेकिन आखिरकार मैं ज्यादा focused apps की ओर खिंचता हूं
Electron app में HTTP API होने के बावजूद web demo सिर्फ filesystem API से client-side files ही खोल सकता है। कभी न कभी fork करके अपने हिसाब से बनाने का सोचता हूं। और serialization format को Markdown से XML में बदलकर xpath, xquery, basex इस्तेमाल करने वाले दूसरे tools से graph manipulate करने की एक टेढ़ी इच्छा भी है
ऐसे नोट टूल लगातार नए-नए आते दिखते हैं। मैं पहले ही Logseq में काफी गहराई से निवेश कर चुका हूँ और उसका नया database version भी जल्द आने वाला है
अगर Logseq या Obsidian जैसे प्रमुख apps के बीच notes ले जाने के लिए import/export tools नहीं देते, तो ऐसे tools को बस नए users या वे लोग ही इस्तेमाल करेंगे जिनके पास इतने कम notes हैं कि वे migrate करने का समय निकाल सकें
performance या compression के फायदे हो सकते हैं, लेकिन एक व्यक्ति पूरी ज़िंदगी में जितना लिखेगा, उसे देखते हुए यह अभी तुरंत बहुत convincing नहीं लगता
license थोड़ा अजीब है। self-hosted sync को paid feature बताया गया है और code में सच में license check भी है, लेकिन सामान्य open core products की तरह अलग license वाला
ee/directory नहीं है; license check code तक सब AGPL के तहत हैFAQ में भी “SiYuan is completely open source” पर जोर दिया गया है। तो अगर license check को patch करके हटा दिया जाए, तो मेरी नजर में यह बस एक line का बदलाव होगा, और फिर भी license का पूरी तरह पालन ही होगा। यहाँ तक कि patched version के binaries भी distribute किए जा सकते हैं। बेशक यह काफी घटिया हरकत होगी। क्या यही intended है? क्या वे सिर्फ pre-built images की सुविधा बेच रहे हैं?
यह सच में free software बेचने की सुविधा देता है, और अगर सही तरीके से चलाया जाए तो ठीक से काम करता है
हालांकि Apple developer account की सीमाओं के कारण, अगर आप iOS version build करने पर $100 खर्च नहीं करना चाहते, तो official version इस्तेमाल करना वास्तव में बेहतर है। paid restrictions हटाने वाले दो अपेक्षाकृत जाने-माने unofficial patches भी हैं। एक third-party developer का experimental version है, जिसमें features test होने के बाद upstream में submit किए जाते हैं: github.com/siyuan-community/siyuan, और दूसरा बस paid features हटाता है: github.com/EightDoor/siyuan। इसके अलावा एक community developer का PR भी था जिसमें unofficial package binaries को official cloud services इस्तेमाल करने से रोकने के लिए digital certificates जोड़ने का सुझाव था। plugin marketplace official CDN इस्तेमाल करता है, इसलिए traffic cost कम नहीं है, लेकिन वह PR reject कर दिया गया
Trilium Notes की भी सिफारिश कर सकता हूँ। कई सालों से इसे संतुष्टि से इस्तेमाल कर रहा हूँ
अभी यह “maintenance mode” में है, लेकिन व्यक्तिगत रूप से मैं इसे फायदा मानता हूँ क्योंकि feature bloat का जोखिम नहीं है। self-host किया जा सकता है, शानदार webapp है, optional native client है और offline भी काम करता है। https://github.com/zadam/trilium
https://github.com/TriliumNext/Notes
3 महीने से self-host कर रहा हूँ और खुश हूँ। Joplin से आया था और offline access खो दिया, लेकिन यह कहीं ज्यादा expressive और इस्तेमाल में अच्छा है
Pro version की बाकी features की भी खास कमी महसूस नहीं होती। यह दूसरे Docker containers पर निर्भर नहीं है, और authentication के लिए मैंने सिर्फ Authelia इस्तेमाल किया। यह अपना file format इस्तेमाल करता है, लेकिन मैं data volume का backup लेता हूँ और manual तौर पर simple Markdown में export कर सकता हूँ। web UI mobile use के लिए भी responsive है, और मेरे मामले में यह दूसरे tools से बेहतर fit बैठता है
और self-hosted S3 instance इस्तेमाल करके OSX और Android/iPhone समेत सभी installs को sync करता हूँ। sync बहुत अच्छे से काम करता है। features की संख्या देखें तो मुझे लगता है यह program तुलना में Obsidian को पूरी तरह पीछे छोड़ देता है। मैं कहूँगा कि यह Notion के ज्यादा करीब alternative है। फिलहाल Siyuan के लिए एक छोटा self-hosted helper tool बना रहा हूँ, जो users को अपने notes publicly share करने देता है
यहाँ दिखीं recommendations से मैं भी सहमत हूँ
मेरा knowledge management तरीका बहुत simple है। सब कुछ git में है, और समय के साथ naturally बढ़ी हुई एक बड़ी directory structure में है। notes सच में बहुत हैं, करीब 7,000–8,000। git में रखने से मुझे मनचाहे तरीके से इस्तेमाल करने की flexibility मिली है। कभी-कभी Emacs/Neovim इस्तेमाल करता हूँ, और ज्यादातर Sublime Text, क्योंकि project या concept के हिसाब से workspaces हैं। mobile पर सब कुछ अपने Gitea instance में push करता हूँ। mobile पर notes access करने की अक्सर जरूरत नहीं पड़ती, लेकिन हाल में इस पर ज्यादा सोच रहा हूँ। Android पर text files की directory पढ़ने का कोई तरीका recommend करें तो अच्छा होगा
iOS पर अभी git commit/push/pull के लिए Working Copy इस्तेमाल करता हूँ, और text editing के लिए Obsidian। जल्दी Markdown edit करने के लिए Obsidian interface मुझे काफी पसंद है। मुझे लगता है Obsidian का Android version भी है, लेकिन मैंने इस्तेमाल नहीं किया। Working Copy का Android version है या नहीं, नहीं पता; कोई समान GUI git app हो सकता है
Notion सहित ऐसे ऐप्स में जो कमी खलती है, वह है database की properties को inherit करने की सुविधा
उदाहरण के लिए, मैं एक parent database बनाना चाहता हूं जिसमें title और deadline जैसी basic task properties हों, और फिर project-specific properties जोड़ने वाले child databases बनाना चाहता हूं। इससे आज किए जाने वाले सभी tasks को एक जगह देखने के लिए single view बनाया जा सकता है, साथ ही हर individual task के लिए जरूरी सारी जानकारी भी जोड़ी जा सकती है। अजीब बात है कि जहां तक मुझे पता है, किसी ने भी इसे अपने app में नहीं जोड़ा है
https://tana.inc/docs/supertags
पारंपरिक Markdown-based version के बारे में मैं नहीं कह सकता, लेकिन कुल मिलाकर मैं सहमत हूं कि ऐसी functionality व्यापक रूप से उपलब्ध होनी चाहिए
ज्यादातर complex tools में task types होते हैं, कुछ customizable होते हैं और कुछ नहीं। उदाहरण के लिए Jira शायद वही कर सकता है जो आपने बताया है
हालांकि default task implementation inheritance नहीं, templates का इस्तेमाल करता है, इसलिए आपको खुद script लिखनी पड़ेगी
देखने में अच्छा है, लेकिन Obsidian से लगभग एक जैसा लगता है। यह Obsidian features से कैसे अलग है?
“Personal Knowledge Management” सुनकर मैंने कुछ और उम्मीद की थी
उदाहरण के लिए, अगर मैं अभी IRL streaming शुरू करने का तरीका research कर रहा हूं, तो मैं “IRL Streaming” नाम का topic बनाना चाहूंगा, उसके अंदर video links, documents/documentation/tutorials/guides/how-to links डालना चाहूंगा और notes भी लिखना चाहूंगा। आखिर में मैं उस topic को सीख लूंगा, और जरूरत पड़ने पर “SRT and SLS vs RTMP” जैसे subtopics बनाकर research भी कर सकता हूं। कुछ लोग कह रहे हैं कि यह Obsidian clone जैसा है, लेकिन Obsidian website देखने पर वह किताब लिखने में मदद करने वाला tool बताया गया है। इसे PKM कहा जा रहा है, इसलिए यह related लगता है, लेकिन शायद यह वह नहीं है जो मैं ढूंढ रहा हूं। ऊपर वाले comment में सुझाया गया files वाली folder approach मुझे नहीं चाहिए। मैं एक ऐसे web app में, जिसे कहीं से भी access किया जा सके, topic-wise categorized resource links और उन पर notes डालना चाहता हूं। siyuan-note का README पढ़कर लगता है कि यह किया जा सकता है। एक सवाल है: क्या यह multiple users को support करता है? मैं इसे अपनी local community के लिए host करना चाहता हूं