mrkeyoor.com_
Wed 16 Sept 06:34 UTC
Self-Hostedevaluationupdated 25 Aug 2026

siyuan review

SiYuan is a local-first notes and knowledge workspace built around block references, backlinks, databases, and a Markdown-style editor. It runs as desktop and mobile apps or as a browser-accessed server, giving people a private place for connected notes without making a hosted service the default.

+132stars / 7d
Verdict

Our SiYuan run installed 575 packages, built in 34 seconds, and passed all 955 tests, evidence that the large codebase is maintained as working software. Choose it if block-based notes, local ownership, and a deep editor outweigh AGPL obligations and the browser server's missing native-client and document-conversion features. For a small shared notes server, Memos is simpler; for a personal knowledge system with room to grow, SiYuan earns the trial.

We ran it

Lab card: what happened when we ran siyuanScreenshot of siyuan (b3log.org/siyuan)
Install✓ · 69s575 packages · 285 MB
Build✓ · 34s
Tests✓ · 50s955 passed · 0 failed of 955 (node:test)
Repo3159 files~464,614 lines of source · 298.1 MB · 6 CI workflows · tests dir

Answers from our run

Does siyuan build from source?

Dependencies installed in 69 seconds (575 packages), and the build succeeded in 34 seconds. We cloned commit afa823b into a clean Debian container with 3 CPUs and no project-specific setup.

Do siyuan's tests pass?

Yes: 955 of 955 passed when we ran the project's own test command (node:test). Some failures need services or credentials a bare container does not have.

Who should not use siyuan?

Anyone planning to put the container on the public internet without access controls: the README tells operators to change the lock-screen password and configure a WebSocket-aware reverse proxy.

What are the alternatives to siyuan?

Joplin, Logseq, Memos. Our SiYuan run installed 575 packages, built in 34 seconds, and passed all 955 tests, evidence that the large codebase is maintained as working software.

Setup4/5Packaged apps are easy; secure browser hosting needs care
Docs5/5English guides cover apps, Docker, CLI, API, and recovery
Community5/545,978 stars, a fresh push, and active issues and PRs
Maturity5/5955 passing tests and regular releases support daily use

Discussed on

  1. hnSiyuan: Privacy-first, self-hosted personal knowledge management software308 points

Who it’s for

People who want block-level links, backlinks, databases, flashcards, and document editing in one private workspace.
Self-hosters willing to secure a browser-only deployment and manage its persistent workspace volume.
Technical note-takers who want SQL queries, an API, plugins, snippets, and a command-line interface.
Teams comparing local-first tools that can also call OpenAI-compatible services for optional AI features.

Who it’s NOT for

Anyone planning to put the container on the public internet without access controls: the README tells operators to change the lock-screen password and configure a WebSocket-aware reverse proxy.
Users who need a self-hosted server to connect to SiYuan's desktop and mobile apps: the documented Docker mode is browser-only.
People who expect browser hosting to retain every desktop workflow: the README says that mode cannot import Markdown or export PDF, HTML, and Word files.
Users intending to sync the workspace through Dropbox, OneDrive, or another sync folder: the FAQ warns that third-party sync disks can corrupt the data.
Organizations that require permissive licensing for a modified network service: the repository uses AGPL-3.0, and some member features remain paid.

Setup reality

In our sandbox, the app's pnpm install succeeded in 69 seconds, adding 575 packages and using 285 MB. The build finished in 34 seconds, then all 955 node:test cases passed in 50 seconds. The checkout itself was 298.1 MB across 3,159 files and about 464,614 source lines.

End users can avoid that source build through the packaged apps or the published b3log/siyuan image. A server needs a persistent workspace mount, matching PUID and PGID values, port 6806, and a changed access code. OIDC adds provider registration, redirect URLs, and claim rules. Optional AI features need an OpenAI-compatible service.

Browser hosting has product limits, not just setup chores: it cannot connect the native desktop or mobile clients, import Markdown, or export PDF, HTML, and Word. A reverse proxy must pass /ws WebSockets without URL rewriting, and the workspace must not sit inside a third-party sync folder.

SiYuan puts blocks, files, and queries in one workspace

SiYuan treats paragraphs and other pieces of a document as addressable blocks. You can link to a block, find backlinks, attach custom attributes, embed SQL query results, and move between a document and database views. The editor also handles formulas, diagrams, PDF annotations, web clips, flashcards, and exports. This is closer to a personal information system than a plain Markdown folder. The current English README is detailed, and translated READMEs cover Chinese, Japanese, and Turkish.

The scale is worth knowing before judging the interface as a tidy notes app. Our checkout at commit afa823b contained 3,159 files and about 464,614 source lines, occupying 298.1 MB. The repository combines an Electron-facing TypeScript app with a larger ecosystem that includes mobile clients, an editor engine, a marketplace, and a data repository. That breadth explains both the long feature list and the number of settings an administrator eventually meets.

The local-first model has firm boundaries

Notes live inside a workspace rather than existing only on a vendor's servers. SiYuan stores notebook documents as JSON .sy files and keeps assets, templates, plugins, history, and other state alongside them. Standard Markdown export offers an escape route, while the command-line tool can search, inspect, modify, and export workspace data without a running server. Many mutating CLI commands support a dry-run, a welcome safeguard for scripted maintenance.

That ownership does not make every sync method safe. The FAQ says a third-party synchronization disk is unsupported and may corrupt the workspace. SiYuan's supported connection to third-party cloud storage is a paid member feature. Encryption keys also need deliberate backup: if every correctly initialized device and its key are lost, old cloud snapshots cannot be recovered after the data repository is reset. Those are operational facts to settle before moving years of notes.

Self-hosting gives you a browser app with fewer capabilities

The documented server path uses the published b3log/siyuan image, port 6806, a persistent workspace mount, and the explicit serve command. PUID and PGID variables help match file ownership between the container and host. Remote access should sit behind a reverse proxy that forwards /ws WebSockets, avoids URL rewriting, and protects the instance with a changed access code or properly configured OIDC. The default password example is not a production configuration.

Our lab did not build a Docker image because this checkout had no Dockerfile. We tested the app source under Node 22 in an unprivileged Debian container with 3 CPUs and 8 GB of RAM. The pnpm installation succeeded in 69 seconds, pulled 575 packages, and occupied 285 MB. That source path is reasonable for contributors, while operators who only want the service should use the published image or a packaged app.

The browser deployment also drops features. It cannot connect the desktop and mobile applications, import Markdown, or export PDF, HTML, and Word documents. That makes it a poor substitute for the native app when document interchange matters. It works better as a privately hosted web workspace whose users accept browser access. If your plan depends on mobile synchronization with the native client, confirm the supported paid sync route instead of assuming the container supplies it.

What happened when we ran it

Our run at commit afa823b completed every measured stage. Installation took 69 seconds, the build took 34 seconds, and the node:test suite finished in 50 seconds with 955 passed and 0 failed. The project uses pnpm workspaces, has a tests directory, and includes 6 CI workflow files. Those results are a strong counterweight to the repository's size: the tested app compiled cleanly in a fresh container without secrets.

The numbers do not prove that OIDC, Docker networking, mobile clients, sync, PDF export, or every plugin works in your environment. They show that the checked-out app dependency graph resolved and its supplied tests passed under the stated conditions. A production evaluation should still mount a disposable workspace, test backup restoration, verify WebSocket proxying, and exercise exports before importing the real archive. SiYuan stores valuable personal data, so recovery matters more than a successful first login.

The feature depth comes with product and license decisions

Most features are free, including commercial use, but the README points to paid membership for some capabilities. The code is AGPL-3.0, which matters to companies modifying and serving it over a network. Read the license obligations and the current pricing page before designing a commercial deployment around member-only sync or other hosted services. Optional AI writing and question answering also call an OpenAI-compatible API, so local notes do not automatically mean local inference.

Project activity looks healthy on dated evidence. GitHub showed 45,978 stars, 57 open issues and pull requests combined, and a push on August 25, 2026. Release v3.8.1 arrived on August 18 with editor, database, cross-platform, MCP, and security fixes. The repo had 6 workflow files in our checkout, and the complete 955-test run gives that activity more weight than release notes alone.

Choose SiYuan for depth, not for the smallest server

SiYuan makes sense when block references, database views, local files, plugins, and strong editing belong in the same daily tool. Joplin is easier to understand if you want notebooks and sync. Logseq suits journal-led outlining. Memos is a better fit for a small shared stream of short notes. SiYuan asks more from the user and administrator because it does more.

The decision hinges on which SiYuan you need. The native apps provide the broad product, while the Docker route provides a limited browser edition with explicit proxy, authentication, volume, and interchange constraints. Our 34-second build and 955 passing tests justify confidence in the engineering baseline. They do not erase those documented boundaries. Test it with a copied workspace, practice restoring that copy, and only then make it the home for material you cannot replace.

Alternatives

ProjectWhat it isPick it when
Joplin gh↗An offline-first Markdown notebook with end-to-end encrypted sync and broad clients.pick this instead when conventional notebooks and flexible sync targets matter more than block databases.
Logseq gh↗A local knowledge graph centered on outlines, journals, links, and queries.pick this instead when daily notes and outline-first writing are your main workflow.
Memos gh↗A compact self-hosted service for short notes, tags, and lightweight sharing.pick this instead when you want a small web memo server rather than a full knowledge workspace.

Sources

  1. SiYuan README
  2. SiYuan repository
  3. SiYuan v3.8.1 release
  4. SiYuan user guide

More self-hosted reviews

newsnow · forem · octo-server · runtime · openfang · SparkyFitness · the whole board →