重要声明
- 如果你是订阅、付费用户,你应该使用思源官方版本
- 这个版本去除了所有用户相关功能。可以不登录使用同步功能
运行容器
docker run \
-v /opt/siyuan:/siyuan/workspace \ # 上方创建的容器卷:映射容器内思源笔记的数据存放路径,与workspace保持一致
-p 6806:6806 \ # 思源笔记容器内起的端口
-u 1000:1000 \ # 官方文档中,使用普通用户创建
-e LANG=zh_CN.UTF-8 \ # 参考链接中,设置默认为中文(主要是为了说明文档,还是中文方便一点)
-e LC_ALL=zh_CN.UTF-8 \
--restart=always \ # 容器自动重启
-d --name="siyuanNote" \ # -d:容器后台启动,--name 设置容器名称
apkdv/siyuan-unlock \ # 使用的镜像源名称
--workspace=/siyuan/workspace/ # 官方设置的容器内的数据存放路径,要与上方保持一致
--accessAuthCode=XXXX
重构你的思维
English
💡 简介
思源笔记是一款隐私优先的个人知识管理系统,支持细粒度块级引用和 Markdown 所见即所得。
🔮 特性
大部分功能是免费的,即使是在商业环境下使用。
- 内容块
- 块级引用和双向链接
- 自定义属性
- SQL 查询嵌入
- 协议
siyuan://
- 编辑器
- Block 风格
- Markdown 所见即所得
- 列表大纲
- 块缩放聚焦
- 块横向排版
- 百万字大文档编辑
- 数学公式、图表、流程图、甘特图、时序图、五线谱等
- 网页剪藏
- PDF 标注双链
- 导出
- 引用块和嵌入块
- 带 assets 文件夹的标准 Markdown
- PDF、Word 和 HTML
- 复制到微信公众号、知乎和语雀
- 数据库
- 间隔重复
- 模板片段
- JavaScript/CSS 代码片段
- Android/iOS APP
- Docker 部署
- API
- 社区集市
部分功能需要付费会员才能使用,更多细节请参考定价。
🏗️ 架构设计和开源生态
🌟 Star History
Docker 部署
Docker 部署文档
#### 概述
在服务器上伺服思源最简单的方案是通过 Docker 部署。
* 镜像名称 `apkdv/siyuan-unlock`
* [镜像地址](https://hub.docker.com/r/apkdv/siyuan-unlock)
#### 文件结构
整体程序位于 `/opt/siyuan/` 下,基本上就是 Electron 安装包 resources 文件夹下的结构:
* appearance:图标、主题、多语言
* guide:帮助文档
* stage:界面和静态资源
* kernel:内核程序
#### 启动入口
构建 Docker 镜像时设置了入口:`ENTRYPOINT [ "/opt/siyuan/kernel" ]`,使用 `docker run apkdv/siyuan-unlock` 并带参即可启动:
* `--workspace`:指定工作空间文件夹路径,在宿主机上通过 `-v` 挂载到容器中
* `--accessAuthCode`:指定访问授权码
更多的参数可参考 `--help`。下面是一条启动命令示例:
```
docker run -d -v workspace_dir_host:workspace_dir_container -p 6806:6806 apkdv/siyuan-unlock --workspace=workspace_dir_container --accessAuthCode=xxx
```
* `workspace_dir_host`:宿主机上的工作空间文件夹路径
* `workspace_dir_container`:容器内工作空间文件夹路径,和后面 `--workspace` 指定成一样的
* `accessAuthCode`:访问授权码,请**务必修改**,否则任何人都可以读写你的数据
为了简化,建议将 workspace 文件夹路径在宿主机和容器上配置为一致的,比如将 `workspace_dir_host` 和 `workspace_dir_container` 都配置为 `/siyuan/workspace`,对应的启动命令示例:
```
docker run -d -v /siyuan/workspace:/siyuan/workspace -p 6806:6806 -u 1000:1000 apkdv/siyuan-unlock --workspace=/siyuan/workspace/ --accessAuthCode=xxx
```
Alternatively, see below for an example Docker Compose file:
```
version: "3.9"
services:
main:
image: apkdv/siyuan-unlock
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 文件
安装包
❓ 常见问题和解答
思源是如何存储数据的?
数据保存在工作空间文件夹下,在工作空间 data 文件夹下:
assets
用于保存所有插入的资源文件
emojis
用于保存自定义图标表情图片
snippets
用于保存代码片段
storage
用于保存查询条件、布局和闪卡数据等
templates
用于保存模板片段
widgets
用于保存挂件
plugins
用于保存插件
public
用于保存公开的数据
- 其余文件夹就是用户自己创建的笔记本文件夹,笔记本文件夹下
.sy
后缀的文件用于保存文档数据,数据格式为 JSON
支持通过第三方同步盘进行数据同步吗?
不支持通过第三方同步盘进行数据同步,否则可能会导致数据损坏。
虽然不支持第三方同步盘,但是支持对接第三方云端存储(会员特权)。
另外,也可以考虑手动导出导入 Data 实现数据同步:
- 桌面端:设置 - 导出 - 导出 Data / 导入 Data
- 移动端:右侧栏 - 关于 - 导出 Data / 导入 Data
思源是开源的吗?
思源笔记是完全开源的,欢迎参与贡献:
更多细节请参考开发指南。
如何升级到新版本?
- 如果是通过应用商店安装的,请通过应用商店更新
- 如果是桌面端通过安装包安装的,可打开 设置 - 关于 - 自动下载更新安装包 选项,这样思源会自动下载最新版安装包并提示安装
- 如果是通过手动安装包安装的,请再次下载安装包安装
可在 设置 - 关于 - 当前版本 中 检查更新,也可以通过关注官方下载或者 GitHub Releases 来获取新版本。
注意:切勿将工作空间放置于安装目录下,因为更新版本会清空安装目录下的所有文件
删除文档有什么注意事项吗?
文档被删除后不会出现在操作系统回收站中,而是直接删除,删除时思源会生成数据历史。
如何才能只换行不新起段落?
请使用 Shift+Enter。
有的块(比如在列表项中的段落块)找不到块标怎么办?
在列表项下的第一个子块是省略块标的。可以将光标移到这个块中,然后通过 Ctrl+/ 触发它的块标菜单。
如何分享笔记?
- 分享文档到链滴
- 导出导入
.sy.zip
数据包
- 通过网络伺服
- 导出导入 Markdown
- 导出预览 中复制到第三方在线服务
数据仓库密钥遗失怎么办?
🙏 鸣谢
思源的诞生离不开众多的开源项目和贡献者,请参考项目源代码 kernel/go.mod、app/package.json 和项目首页。
思源的成长离不开用户的反馈和宣传推广,感谢所有人对思源的帮助 ❤️