{"data":{"slug":"siyuan-note-siyuan","name":"siyuan","tagline":"A privacy-first, self-hosted personal knowledge management software","github_url":"https://github.com/siyuan-note/siyuan","owner":"siyuan-note","repo":"siyuan","owner_avatar_url":"https://avatars.githubusercontent.com/u/70468694?v=4","primary_language":"TypeScript","stars":46434,"forks":3011,"topics":["agentic-ai","ai-agent","knowledge-base","local-first","markdown","mcp","note-taking","self-hosted","siyuan"],"archived":false,"github_pushed_at":"2026-09-20T03:31:56+00:00","maintenance_label":"Very active","stars_delta_30d":1018,"url":"https://www.graphcanon.com/tools/siyuan-note-siyuan","markdown_url":"https://www.graphcanon.com/tools/siyuan-note-siyuan.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/siyuan-note-siyuan","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=siyuan-note-siyuan","description":"An open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间，让人与智能体在此协作","homepage_url":"https://b3log.org/siyuan","license":"AGPL-3.0","open_issues":6,"watchers":187,"ai_summary":"SiYuan is a fully open-source tool written in TypeScript and Golang designed for managing knowledge with features like support for markdown, PDFs, and integration with WebDAV.","readme_excerpt":"### Installation Package\n\n- [B3log](https://b3log.org/siyuan/en/download.html)\n- [GitHub](https://github.com/siyuan-note/siyuan/releases)\n\n---\n\n### Docker Hosting\n\n<details>\n<summary>Docker Deployment</summary>\n\n#### Overview\n\nThe easiest way to serve SiYuan on a server is to deploy it through Docker.\n\n- Image name `b3log/siyuan`\n- [Image URL](https://hub.docker.com/r/b3log/siyuan)\n\n#### File structure\n\nThe overall program is located under `/opt/siyuan/`, which is basically the structure under the resources folder of the Electron installation package:\n\n- appearance: icon, theme, languages\n- guide: user guide document\n- stage: interface and static resources\n- kernel: kernel program\n\n#### Entrypoint\n\nThe entry point is set when building the Docker image: `ENTRYPOINT [\"/opt/siyuan/entrypoint.sh\"]`. This script allows changing the `PUID` and `PGID` of the user that will run inside the container. This is especially relevant to solve permission issues when mounting directories from the host. The `PUID` (User ID) and `PGID` (Group ID) can be passed as environment variables, making it easier to ensure correct permissions when accessing host-mounted directories.\n\nUse the following parameters when running the container with `docker run b3log/siyuan`:\n\n> **Note:** Since v3.7.0, the `serve` subcommand must be passed explicitly (e.g. `docker run b3log/siyuan serve --workspace=...`). Run `docker run --rm b3log/siyuan serve --help` to see all serving options.\n\n- `--workspace`: Specifies the workspace folder path, mounted to the container via `-v` on the host\n- `--accessAuthCode`: Specifies the lock screen password\n\nMore parameters can be found using `--help`. Here’s an example of a startup command with the new environment variables:\n\n```bash\ndocker run -d \\\n  -v workspace_dir_host:workspace_dir_container \\\n  -p 6806:6806 \\\n  -e PUID=1001 -e PGID=1002 \\\n  b3log/siyuan \\\n  serve \\\n  --workspace=workspace_dir_container \\\n  --accessAuthCode=xxx\n```\n\n- `PUID`: Custom user ID (optional, defaults to `1000` if not provided)\n- `PGID`: Custom group ID (optional, defaults to `1000` if not provided)\n- `workspace_dir_host`: The workspace folder path on the host\n- `workspace_dir_container`: The path of the workspace folder in the container, as specified in `--workspace`\n  - Alternatively, it's possible to set the path via the `SIYUAN_WORKSPACE_PATH` env variable. The commandline will always have the priority, if both are set\n- `accessAuthCode`: Lock screen password (please **be sure to modify**, otherwise anyone can access your data)\n  - Alternatively, it's possible to set the lock screen password via the `SIYUAN_ACCESS_AUTH_CODE` env variable. The commandline will always have the priority, if both are set\n  - To disable the lock screen password set the env variable `SIYUAN_ACCESS_AUTH_CODE_BYPASS=true`\n- OIDC can replace the lock screen password as the required Docker access authentication. Set `SIYUAN_OIDC_ENABLED=true`, `SIYUAN_OIDC_PROVIDER` (`custom`, `google`, `microsoft`, or `github`), `SIYUAN_OIDC_CLIENT_ID`, and the provider-specific values below. GitHub uses its OAuth 2.0 user API adapter; the other providers use OpenID Connect discovery and ID Token validation. An invalid enabled configuration stops Docker startup when no lock screen password is available\n  - `SIYUAN_OIDC_ISSUER_URL`: Issuer URL required by the `custom` and `microsoft` providers; Microsoft must use a tenant-specific issuer such as `https://login.microsoftonline.com/<tenant-id>/v2.0`\n  - `SIYUAN_OIDC_CLIENT_SECRET`: Optional client secret for OpenID Connect providers; required by the GitHub OAuth adapter. Every authorization-code flow also uses PKCE\n  - `SIYUAN_OIDC_SCOPES`: Comma- or space-separated scopes; `openid` is always included\n  - `SIYUAN_OIDC_REDIRECT_URL`: Public HTTPS callback URL ending in `/api/system/oidc/callback`, required for remote browser access\n  - `SIYUAN_OIDC_ALLOW_ALL`: Explicitly grant SiYuan administrator access to every identity authenticated by the pr","github_created_at":"2020-08-30T09:21:35+00:00","created_at":"2026-07-11T11:47:21.341645+00:00","updated_at":"2026-09-20T06:37:23.671511+00:00","categories":[{"slug":"developer-tools","name":"Developer Tools","url":"https://www.graphcanon.com/categories/developer-tools","markdown_url":"https://www.graphcanon.com/categories/developer-tools.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/developer-tools"}],"tags":[{"slug":"ai-agent","name":"ai-agent"},{"slug":"digital-garden","name":"digital-garden"},{"slug":"knowledge-graph","name":"knowledge-graph"},{"slug":"local-first","name":"local-first"},{"slug":"markdown","name":"markdown"},{"slug":"note-taking","name":"note-taking"},{"slug":"pdf","name":"pdf"},{"slug":"self-hosted","name":"self-hosted"}],"trust":{"provenance":{"is_fork":false,"github_id":291438522,"owner_type":"Organization","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-09-20T03:47:37.686Z","maintenance":{"label":"Very active","score":96,"methodology":"github_public_v1","releases_90d":30,"days_since_push":0,"last_release_at":"2026-09-19T05:13:29Z","stars_delta_30d":1018,"open_issues_delta_30d":-257},"security_summary":{"status":"no_lockfile","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-07-12T04:02:23.857Z","medium_count":0,"scan_profile":"none","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-09-20T03:47:38.702Z"},"deploy":{"source":"dockerfile:Dockerfile","self_host":true,"observed_at":"2026-09-20T03:47:38.702Z","managed_saas":false},"languages":{"value":["typescript"],"source":"github.language","observed_at":"2026-09-20T03:47:38.702Z"},"has_docker":{"value":true,"source":"dockerfile:Dockerfile","observed_at":"2026-09-20T03:47:38.702Z"},"license_spdx":{"value":"AGPL-3.0","source":"github.license","observed_at":"2026-09-20T03:47:38.702Z"}},"decision_facts":{"hosting":null,"pricing":null,"requirements":null,"constraints":null,"when_to_use":["Siyuan should be used when you require a fully open-source tool that prioritizes privacy and keeps all data locally.","This tool is ideal for developers or users interested in self-hosting who also want to leverage advanced Markdown capabilities for note-taking, PDF integration, and personal knowledge management."],"when_not_to_use":["Siyuan may not be suitable if you require cloud synchronization features provided by proprietary software as it focuses on local-first operations.","If your preference is for a more visually customizable interface, Siyuan's design might have limitations compared to its competitors that offer extensive theming and UI customization."],"source":"enrich:decision_facts","observed_at":"2026-07-12T04:50:24.820Z"},"constraint_facets":null,"decision_summary":[{"label":"Adopt for","value":"Siyuan is a privacy-focused, self-hosted knowledge management tool written in TypeScript and Golang, specialized for personal digital gardens and integrating with various local storage solutions."}]}}