Skip to content

A privacy-first, self-hosted, fully open source personal knowledge management software, written in typescript and golang.

License

Notifications You must be signed in to change notification settings

TCOTC/siyuan-remove-payment-restrictions

SiYuan
重构你的思维






Twitter Follow

SiYuan - WYSIWYG Block Ref E2EE Sync Local-first | Product Hunt

English

更新

💡 简介

思源笔记是一款隐私优先的个人知识管理系统,支持细粒度块级引用和 Markdown 所见即所得。

feature0.png

欢迎到思源笔记官方讨论区了解更多。同时也欢迎关注 B3log 开源社区微信公众号 B3log开源

b3logos.jpg

  • Content block
    • Block-level reference and two-way links
    • Custom attributes
    • SQL query embed
    • Protocol siyuan://
  • Editor
    • Block-style
    • Markdown WYSIWYG
    • List outline
    • Block zoom-in
    • Block horizontal layout
    • Million-word large document editing
    • Mathematical formulas, charts, flowcharts, Gantt charts, timing charts, staffs, etc.
    • Web clipping
    • PDF Annotation link
  • Export
    • Block ref and embed
    • Standard Markdown with assets
    • PDF, Word and HTML
    • Copy to WeChat MP, Zhihu and Yuque
  • Database
    • Table view
  • Spaced repetition
  • Multi-tab, drag and drop to split screen
  • Template snippet
  • JavaScript/CSS snippet
  • Android/iOS APP
  • Docker 部署
  • API
  • 社区集市

部分功能需要付费会员才能使用,更多细节请参考定价

🏗️ 架构设计和开源生态

思源笔记架构设计

Project Description Forks Stars
lute Editor engine GitHub forks GitHub Repo stars
chrome Chrome/Edge extension GitHub forks GitHub Repo stars
bazaar Community marketplace GitHub forks GitHub Repo stars
dejavu Data repo GitHub forks GitHub Repo stars
petal Plugin API GitHub forks GitHub Repo stars
android Android APP GitHub forks GitHub Repo stars
ios iOS APP GitHub forks GitHub Repo stars
riff Spaced repetition GitHub forks GitHub Repo stars

🌟 Star History

Star History Chart

🗺️ 路线图

🚀 下载安装

桌面端和移动端建议优先考虑通过应用市场安装,这样以后升级版本时可以一键更新。

应用市场

Docker 部署

Docker 部署文档

概述

在服务器上伺服思源最简单的方案是通过 Docker 部署。

文件结构

整体程序位于 /opt/siyuan/ 下,基本上就是 Electron 安装包 resources 文件夹下的结构:

  • appearance:图标、主题、多语言
  • guide:帮助文档
  • stage:界面和静态资源
  • kernel:内核程序

启动入口

构建 Docker 镜像时设置了入口:ENTRYPOINT [ "/opt/siyuan/kernel" ],使用 docker run b3log/siyuan 并带参即可启动:

  • --workspace: Specifies the workspace folder path, mounted to the container via -v on the host
  • --accessAuthCode: Specifies the access authorization code

More parameters can refer to --help. The following is an example of a startup command:

docker run -d -v workspace_dir_host:workspace_dir_container -p 6806:6806 b3log/siyuan --workspace=workspace_dir_container --accessAuthCode=xxx
  • workspace_dir_host: The workspace folder path on the host
  • workspace_dir_container: The path of the workspace folder in the container, which is the same as specified in --workspace
  • accessAuthCode: Access authorization code, please be sure to modify, otherwise anyone can read and write your data

To simplify, it is recommended to configure the workspace folder path to be consistent on the host and container, such as: workspace_dir_host and workspace_dir_container are configured as /siyuan/workspace, the corresponding startup commands is:

docker run -d -v /siyuan/workspace:/siyuan/workspace -p 6806:6806 -u 1000:1000 b3log/siyuan --workspace=/siyuan/workspace/ --accessAuthCode=xxx

Alternatively, see below for an example Docker Compose file:

version: "3.9"
services:
  main:
    image: b3log/siyuan
    command: ['--workspace=/siyuan/workspace/', '--accessAuthCode=${AuthCode}']
    user: '1000:1000'
    ports:
      - 6806:6806
    volumes:
      - /siyuan/workspace:/siyuan/workspace
    restart: unless-stopped
    environment:
      # A list of time zone identifiers can be found at https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
      - TZ=${TimeZone}

用户权限

镜像中是使用默认创建的普通用户 siyuan(uid 1000/gid 1000)来启动内核进程的,所以在宿主机创建工作空间文件夹时请注意设置该文件夹所属用户组:chown -R 1000:1000 /siyuan/workspace ,在启动容器时需要带参数 -u 1000:1000

隐藏端口

使用 NGINX 反向代理可以隐藏 6806 端口,请注意:

  • 配置 WebSocket 反代 /ws

注意

  • 请务必确认挂载卷的正确性,否则容器删除后数据会丢失
  • 不要使用 URL 重写进行重定向,否则鉴权可能会有问题,建议配置反向代理

限制

  • 不支持桌面端和移动端应用连接,仅支持在浏览器上使用
  • 不支持导出 PDF、HTML 和 Word 格式
  • 不支持导入 Markdown 文件

安装包

内部预览版

我们会在有重大更新前发布内部预览版,请访问 https://github.com/siyuan-note/insider

🏘️ 社区

🛠️ 开发指南

见:开发指南

❓ 常见问题和解答

思源是如何存储数据的?

数据保存在工作空间文件夹下,在工作空间 data 文件夹下:

  • assets 用于保存所有插入的资源文件
  • emojis 用于保存自定义图标表情图片
  • snippets 用于保存代码片段
  • storage 用于保存查询条件、布局和闪卡数据等
  • templates 用于保存模板片段
  • widgets 用于保存挂件
  • plugins 用于保存插件
  • public 用于保存公开的数据
  • 其余文件夹就是用户自己创建的笔记本文件夹,笔记本文件夹下 .sy 后缀的文件用于保存文档数据,数据格式为 JSON

支持通过第三方同步盘进行数据同步吗?

不支持通过第三方同步盘进行数据同步,否则可能会导致数据损坏。

虽然不支持第三方同步盘,但是支持对接第三方云端存储(会员特权)。

另外,也可以考虑手动导出导入 Data 实现数据同步:

  • 桌面端:设置 - 导出 - 导出 Data / 导入 Data
  • 移动端:右侧栏 - 关于 - 导出 Data / 导入 Data

思源是开源的吗?

思源笔记是完全开源的,欢迎参与贡献:

更多细节请参考开发指南

如何升级到新版本?

  • 如果是通过应用商店安装的,请通过应用商店更新
  • 如果是桌面端通过安装包安装的,可打开 设置 - 关于 - 自动下载更新安装包 选项,这样思源会自动下载最新版安装包并提示安装
  • 如果是通过手动安装包安装的,请再次下载安装包安装

You can Check update in Settings - About - Current Version, or pay attention to Official Download or GitHub Releases to get the new version.

注意:切勿将工作空间放置于安装目录下,因为更新版本会清空安装目录下的所有文件

删除文档有什么注意事项吗?

文档被删除后不会出现在操作系统回收站中,而是直接删除,删除时思源会生成数据历史。

如何才能只换行不新起段落?

请使用 Shift+Enter

有的块(比如在列表项中的段落块)找不到块标怎么办?

在列表项下的第一个子块是省略块标的。可以将光标移到这个块中,然后通过 Ctrl+/ 触发它的块标菜单。

如何分享笔记?

  • 分享文档到链滴
  • 导出导入 .sy.zip 数据包
  • 通过网络伺服
  • 导出导入 Markdown
  • 导出预览 中复制到第三方在线服务

数据仓库密钥遗失怎么办?

  • 如果之前在多个设备上正确初始化过数据仓库密钥的话,那么该密钥在所有设备上都是相同的,可以在 设置 - 关于 - 数据仓库密钥 - 复制密钥字符串 找回

  • 如果之前没有正确配置(比如多个设备上密钥不一致)或者所有设备均不可用,已经无法获得密钥字符串,则可通过如下步骤重置密钥:

    1. 手动备份好数据,可通过 导出 Data 或者直接在文件系统上复制 工作空间/data/ 文件夹
    2. 设置 - 关于 - 数据仓库密钥 - 重置数据仓库
    3. 重新初始化数据仓库密钥,在一台设备上初始化密钥以后,其他设备导入密钥
    4. 云端使用新的同步目录,旧的同步目录已经无法使用,可以删除
    5. 已有的云端快照已经无法使用,可以删除

使用需要付费吗?

大部分功能是免费的,即使是在商业环境下使用。

会员特权需要付费后才能使用,请参考定价

如果你没有会员特权需求但又想支持开发,欢迎进行捐赠:靠爱发电 - 链滴 The birth of SiYuan is inseparable from many open source projects and contributors, please refer to the project source code kernel/go.mod, app/package.json and project homepage.

The growth of SiYuan is inseparable from user feedback and promotion, thank you for everyone's help to SiYuan ❤️

Contributors

🙏 鸣谢

贡献者列表

欢迎加入我们,一起为思源贡献代码。

开源项目依赖列表

思源的诞生离不开下列开源项目。

About

A privacy-first, self-hosted, fully open source personal knowledge management software, written in typescript and golang.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published