Docker部署思源笔记Web版
前言
之前一直用的是语雀,有一说一,语雀其实也是挺好的,免费,而且还支持微信发消息直接自动上传为小记,很方便
但是嘛,毕竟是别人的,肯定不如私有部署的安全
本来是打算部署一个typecho拿来当自己的文档的,但是感觉emm有点丑,也不太擅长折腾主题,所以想着有没有这种现成的,支持私有化部署的
百度了一下,发现还不少,最出名的就是思源笔记,就不说了,本文的重点
其他的还有:
等等等等、、、、、、
优秀的开源笔记、知识、文档管理系统非常多,就不一一列举啦
用思源笔记只是我个人觉得它的界面很好看,很舒服,如下:
(当然这不是我的图,我还没部署好呢)
官方宣传:
在部署的过程中踩了一些不小的坑,所以记录一下下
思源笔记官网:
思源笔记GitHub地址:
思源笔记Docker镜像地址:
https://hub.docker.com/r/b3log/siyuan
部署
普通部署方式:
docker run -d -v workspace_dir_host:workspace_dir_container -p 6806:6806 b3log/siyuan --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 b3log/siyuan --workspace=/siyuan/workspace/ --accessAuthCode=xxx
需要注意的是,宿主机目录是绝对路径哦,如果有需要,请务必改为相对路径
上面这些内容都在官方GitHub文档里写了,我们重点讲Docker-Compose部署
dcker-compose.yml
示例:
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}
${AuthCode}
请务必修改为一个字符串,这是相当于访问笔记的密码${TimeZone}
也请修改为自己所在地区的时区名称,例如:Asia/Shanghai
需要注意的还有,数据持久化的映射目录,默认是绝对路径,如果在意的话请务必修改为指定路径或者相对路径
务必额外注意官方文档中提到的这句话,也就是说,在启动容器之前,需要自行创建好宿主机的工作目录,并且执行sudo chown -R 1000:1000 /siyuan/workspace
(注意是否修改了路径)
我自己的配置文件示例:
services:
main:
image: docker.m.daocloud.io/b3log/siyuan:v3.1.3
command: ['--workspace=/siyuan/workspace/', '--accessAuthCode=123456789']
user: '1000:1000'
ports:
- 8001:6806
- 8000:6808
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=Asia/Shanghai
启动容器示例:
sudo docker-compose up -d
部署成功示例:
忽略这个已经退出的示例(
隐藏端口
使用 NGINX 反向代理可以隐藏 6806 端口,请注意:
配置 WebSocket 反代
/ws
注意
请务必确认挂载卷的正确性,否则容器删除后数据会丢失
不要使用 URL 重写进行重定向,否则鉴权可能会有问题,建议配置反向代理
限制
不支持桌面端和移动端应用连接,仅支持在浏览器上使用
不支持导出 PDF、HTML 和 Word 格式
不支持导入 Markdown 文件
如果项目启动失败,请一定检查好宿主机的目录路径、目录权限、容器启动用户
20241015更新
建议不要用 1000 用户启动,配置文件如下:
services:
main:
image: b3log/siyuan:latest
command: ['--workspace=/siyuan/workspace/', '--accessAuthCode=xxxxxxxxx']
# user: '1000:1000'
ports:
- 8001:6806
- 8000:6808
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=Asia/Shanghai