Back to Siyuan

README Zh CN

README_zh_CN.md

3.6.524.9 KB
Original Source
<p align="center">

<em>重构你的思维</em>

<a title="Build Status" target="_blank" href="https://github.com/siyuan-note/siyuan/actions/workflows/ci.yml"></a> <a title="Releases" target="_blank" href="https://github.com/siyuan-note/siyuan/releases"></a> <a title="Downloads" target="_blank" href="https://github.com/siyuan-note/siyuan/releases"></a>

<a title="Docker Pulls" target="_blank" href="https://hub.docker.com/r/b3log/siyuan"></a> <a title="Docker Image Size" target="_blank" href="https://hub.docker.com/r/b3log/siyuan"></a> <a title="Hits" target="_blank" href="https://github.com/siyuan-note/siyuan"></a>

<a title="AGPLv3" target="_blank" href="https://www.gnu.org/licenses/agpl-3.0.txt"></a> <a title="Code Size" target="_blank" href="https://github.com/siyuan-note/siyuan"></a> <a title="GitHub Pull Requests" target="_blank" href="https://github.com/siyuan-note/siyuan/pulls"></a>

<a title="GitHub Commits" target="_blank" href="https://github.com/siyuan-note/siyuan/commits/master"></a> <a title="Last Commit" target="_blank" href="https://github.com/siyuan-note/siyuan/commits/master"></a>

<a title="Twitter" target="_blank" href="https://twitter.com/b3logos"></a> <a title="Discord" target="_blank" href="https://discord.gg/dmMbCqVX7G"></a>

<a href="https://trendshift.io/repositories/3949" target="_blank"></a>

</p> <p align="center"> <a href="README.md">English</a> | <b>中文</b> | <a href="README_ja_JP.md">日本語</a> | <a href="README_tr_TR.md">Türkçe</a> </p>

目录


💡 简介

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

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

🔮 特性

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

  • 内容块
    • 块级引用和双向链接
    • 自定义属性
    • SQL 查询嵌入
    • 协议 siyuan://
  • 编辑器
    • Block 风格
    • Markdown 所见即所得
    • 列表大纲
    • 块缩放聚焦
    • 百万字大文档编辑
    • 数学公式、图表、流程图、甘特图、时序图、五线谱等
    • 网页剪藏
    • PDF 标注双链
  • 导出
    • 块引用和嵌入块
    • 带 assets 文件夹的标准 Markdown
    • PDF、Word 和 HTML
    • 复制到微信公众号、知乎和语雀
  • 数据库
    • 表格视图
  • 闪卡间隔重复
  • 接入 OpenAI 接口支持人工智能写作和问答聊天
  • Tesseract OCR
  • 模板片段
  • JavaScript/CSS 代码片段
  • Android/iOS/鸿蒙 App
  • Docker 部署
  • API
  • 社区集市

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

🏗️ 架构和生态

ProjectDescriptionForksStars
lute编辑器引擎
chromeChrome/Edge 扩展
bazaar社区集市
dejavu数据仓库
petal插件 API
androidAndroid App
iosiOS App
harmony鸿蒙 App
riff间隔重复

🌟 星标历史

<a href="https://star-history.com/#siyuan-note/siyuan&Date"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=siyuan-note/siyuan&type=Date&theme=dark" /> <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=siyuan-note/siyuan&type=Date" /> </picture> </a>

🗺️ 路线图

🚀 下载安装

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

应用市场

移动端:

桌面端:

安装包

包管理器

siyuan

siyuan-note

Docker 部署

<details> <summary>Docker 部署文档</summary>

概述

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

文件结构

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

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

启动入口

入口点在构建 Docker 镜像时设置:ENTRYPOINT ["/opt/siyuan/entrypoint.sh"]。该脚本允许更改将在容器内运行的用户的 PUIDPGID。这对于解决从主机挂载目录时的权限问题尤为重要。PUIDPGID 可以作为环境变量传递,这样在访问主机挂载的目录时就能更容易地确保正确的权限。

使用 docker run b3log/siyuan 运行容器时,请带入以下参数:

  • --workspace:指定工作空间文件夹路径,在宿主机上通过 -v 挂载到容器中
  • --accessAuthCode:指定访问授权码

更多的参数可参考 --help。下面是一条启动命令示例:

bash
docker run -d \
  -v workspace_dir_host:workspace_dir_container \
  -p 6806:6806 \
  -e PUID=1001 -e PGID=1002 \
  b3log/siyuan \
  --workspace=workspace_dir_container \
  --accessAuthCode=xxx
  • PUID: 自定义用户 ID(可选,如果未提供,默认为 1000
  • PGID: 自定义组 ID(可选,如果未提供,默认为 1000
  • workspace_dir_host:宿主机上的工作空间文件夹路径
  • workspace_dir_container:容器内工作空间文件夹路径,和后面 --workspace 指定成一样的
    • 另外,也可以通过 SIYUAN_WORKSPACE_PATH 环境变量设置路径。如果两者都设置了,命令行的值将优先
  • accessAuthCode:访问授权码,请务必修改,否则任何人都可以读写你的数据
    • 另外,也可以通过 SIYUAN_ACCESS_AUTH_CODE 环境变量设置授权码。如果两者都设置了,命令行的值将优先
    • 可通过设置环境变量 SIYUAN_ACCESS_AUTH_CODE_BYPASS=true 禁用访问授权码

为了简化,建议将 workspace 文件夹路径在宿主机和容器上配置为一致的,比如将 workspace_dir_hostworkspace_dir_container 都配置为 /siyuan/workspace,对应的启动命令示例:

bash
docker run -d \
  -v /siyuan/workspace:/siyuan/workspace \
  -p 6806:6806 \
  -e PUID=1001 -e PGID=1002 \
  b3log/siyuan \
  --workspace=/siyuan/workspace/ \
  --accessAuthCode=xxx

Docker Compose

对于使用 Docker Compose 运行思源的用户,可以通过环境变量 PUIDPGID 来自定义用户和组的 ID。下面是一个 Docker Compose 配置示例:

yaml
version: "3.9"
services:
  main:
    image: b3log/siyuan
    command: ['--workspace=/siyuan/workspace/', '--accessAuthCode=${AuthCode}']
    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=${YOUR_TIME_ZONE}
      - PUID=${YOUR_USER_PUID}  # 自定义用户 ID
      - PGID=${YOUR_USER_PGID}  # 自定义组 ID

在此设置中:

  • PUID “和 ”PGID "是动态设置并传递给容器的
  • 如果没有提供这些变量,将使用默认的 1000

在环境中指定 PUIDPGID 后,就无需在组成文件中明确设置 user 指令(user: '1000:1000')。容器将在启动时根据这些环境变量动态调整用户和组。

用户权限

在图片中,“entrypoint.sh ”脚本确保以指定的 “PUID ”和 “PGID ”创建 “siyuan ”用户和组。因此,当主机创建工作区文件夹时,请注意设置文件夹的用户和组所有权,使其与计划使用的 PUIDPGID 匹配。例如

bash
chown -R 1001:1002 /siyuan/workspace

如果使用自定义的 PUIDPGID 值,入口点脚本将确保在容器内创建正确的用户和组,并相应调整挂载卷的所有权。无需在 docker rundocker-compose 中手动传递 -u,因为环境变量会处理自定义。

隐藏端口

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

  • 配置 WebSocket 反代 /ws

注意

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

限制

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

Unraid 部署

<details> <summary>Unraid 部署文档</summary>

注意:首先终端运行 chown -R 1000:1000 /mnt/user/appdata/siyuan

模板参考:

Web UI: 6806
Container Port: 6806
Container Path: /home/siyuan
Host path: /mnt/user/appdata/siyuan
PUID: 1000
PGID: 1000
Publish parameters: --accessAuthCode=******(访问授权码)
</details>

TrueNAS 部署

<details> <summary>TrueNAS 部署文档</summary>

注意:首先在 TrueNAS Shell 中运行下面的命令。请将 Pool_1/Apps_Data/siyuan 更新为与你的应用数据集对应的路径。

shell
zfs create Pool_1/Apps_Data/siyuan
chown -R 1001:1002 /mnt/Pool_1/Apps_Data/siyuan
chmod 755 /mnt/Pool_1/Apps_Data/siyuan

进入 Apps - DiscoverApps - More Options(右上,除 Custom App 外)- 通过 YAML 安装

模板参考:

yaml
services:
  siyuan:
    image: b3log/siyuan
    container_name: siyuan
    command: ['--workspace=/siyuan/workspace/', '--accessAuthCode=2222']
    ports:
      - 6806:6806
    volumes:
      - /mnt/Pool_1/Apps_Data/siyuan:/siyuan/workspace  # Adjust to your dataset path 
    restart: unless-stopped
    environment:
      - TZ=America/Los_Angeles  # Replace with your timezone if needed
      - PUID=1001
      - PGID=1002
</details>

宝塔面板部署

<details> <summary>宝塔面板 部署文档</summary>

前提

  • 仅适用于宝塔面板9.2.0及以上版本
  • 安装宝塔面板,前往宝塔面板官网,选择正式版的脚本下载安装

部署

  1. 登录宝塔面板,在左侧菜单栏中点击 Docker
  2. 首次会提示安装 DockerDocker Compose 服务,点击立即安装,若已安装请忽略
  3. 安装完成后在 Docker-应用商店-实用工具 中找到 思源笔记,点击安装,也可以在搜索框直接搜索
  4. 设置域名等基本信息,点击 确定
    • 名称:应用名称,默认 siyuan_随机字符
    • 版本选择:默认 latest
    • 域名:如你需要通过域名访问,请在此处填写你的域名
    • 允许外部访问:如你需通过 IP+Port 直接访问,请勾选,如你已经设置了域名,请不要勾选此处
    • 端口:默认 6806,可自行修改
    • 访问授权码:默认随机生成
    • 内存限制:0为不限制,根据实际需要设置
  5. 提交后面板会自动进行应用初始化,大概需要1-3分钟,初始化完成后即可访问

访问思源笔记

  • 如果你填写了域名,请在浏览器输入域名访问
  • 如你选择了 IP+端口,请在浏览器地输入 http://<宝塔面板IP>:6806 访问
</details>

小皮面板部署

<details> <summary>小皮面板 部署文档</summary>

前提

  • 需要安装小皮面板,前往小皮面板,选择对应的脚本执行安装

部署

  1. 登录小皮面板后,点击左侧菜单的 Docker
  2. 首次打开会提示安装 Docker,点击 点击安装 Docker
  3. 按照提示安装 Docker
  4. 点击 应用商店,找到 思源笔记,点击 安装 -> 立即安装
  5. 等待安装结束后,可在 任务队列 界面的 已结束 中点击 详情 查看安装信息

访问思源笔记

  • 在浏览器输入 http://<小皮面板机器IP>:6806 访问
</details>

1Panel 面板部署

<details> <summary>1Panel面板 部署文档</summary>

前提

  • 仅适用于1Panel面板v1.10.32-lts及以上版本
  • 安装1Panel面板,前往1Panel官网,选择正式版安装脚本下载安装

部署

  1. 登录1Panel面板,在左侧菜单栏中点击 应用商店

  2. 应用商店-实用工具 中找到 思源笔记,点击安装,也可以在搜索框直接搜索

  3. 配置访问授权码等基本信息,点击 确定

    • 名称:应用名称,默认 siyuan
    • 版本:默认最新发行版
    • 端口:默认 6806
    • 访问授权码:访问笔记时需要使用的访问密码
    • 端口外部访问:如你需通过 IP+Port 直接访问,请勾选,同时会开放服务器防火墙端口
    • CPU限制:默认为0,不限制,可根据实际需要设置
    • 内存限制:默认为0,不限制,可根据实际需要设置
  4. 提交后面板会自动进行应用安装启动,应用状态会变为安装中,大概需要1-3分钟,耐心等待安装完成

  5. 当应用状态变为已启动后,点击左侧的网站,首次使用需要安装OpenResty,点击安装

  6. 安装完成后,点击网站菜单栏左上角创建,在弹出的页面中选择反向代理

  7. 主域名填入你的域名,网站代号会自动生成,代理选择http,代理地址填写127.0.0.1:6806,点击确定

  8. (可选) 配置你创建的网站,可根据需要配置https访问增强访问安全性

访问思源笔记

  • 如果你通过OpenResty反向代理反代了网站,并且填写了域名,请在浏览器输入域名访问
  • 如你选择了 端口外部访问,请在浏览器地输入 http://<1Panel面板IP>:6806 访问
</details>

内部预览版

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

🏘️ 社区

🛠️ 开发指南

见:开发指南

❓ 常见问题和解答

思源是如何存储数据的?

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

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

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

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

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

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

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

思源是开源的吗?

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

更多细节请参考开发指南

如何升级到新版本?

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

可在 <kbd>设置</kbd> - <kbd>关于</kbd> - <kbd>当前版本</kbd><kbd>检查更新</kbd>,也可以通过关注官方下载或者 GitHub Releases 来获取新版本。

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

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

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

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

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

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

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

使用需要付费吗?

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

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

如果你没有会员特权需求但又想支持开发,欢迎进行捐赠:靠爱发电 - 链滴

🙏 鸣谢

思源的诞生离不开众多的开源项目和贡献者,请参考项目源代码 kernel/go.mod、app/package.json 和项目首页。

思源的成长离不开用户的反馈和宣传推广,感谢所有人对思源的帮助 ❤️

贡献者列表

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

<a href="https://github.com/siyuan-note/siyuan/graphs/contributors"> </a>