使用Docker可以轻松地在服务器或本地环境中运行思源笔记,从而实现数据的安全存储与便捷访问。本文将详细介绍如何通过 Docker 部署思源笔记。
一、镜像信息
1、镜像名称: b3log/siyuan
2、镜像地址: https://hub.docker.com/r/b3log/siyuan
二、文件结构
整体程序位于 /opt/siyuan/ 目录下,主要包含以下文件夹结构:
1、appearance:图标、主题和多语言支持文件
2、guide:帮助文档
3、stage:界面和静态资源
4、kernel:核心程序
三、启动入口
构建 Docker 镜像时已经设置了启动入口:ENTRYPOINT [ “/opt/siyuan/kernel” ]。可以使用以下命令启动容器:
docker run b3log/siyuan
四、启动命令参数
1、–workspace:指定工作空间文件夹路径,需通过 -v 挂载到容器中。
2、–accessAuthCode:指定访问授权码。
五、启动示例
以下是一条启动命令的示例:
docker run -d -v workspace_dir_host:workspace_dir_container -p 6806:6806 b3log/siyuan --workspace=workspace_dir_container --accessAuthCode=xxx
1、workspace_dir_host:宿主机上的工作空间文件夹路径
2、workspace_dir_container:容器内工作空间文件夹路径,与 –workspace 的指定路径相同
3、accessAuthCode:访问授权码,务必修改此值以保护数据安全。
六、简化配置
为简化操作,建议在宿主机和容器上将工作空间文件夹路径设置为一致。例如:
docker run -d -v /siyuan/workspace:/siyuan/workspace -p 6806:6806 -u 1000:1000 b3log/siyuan --workspace=/siyuan/workspace/ --accessAuthCode=xxx
使用 Docker Compose 部署
以下是使用 Docker Compose 的示例配置:
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: TZ=${TimeZone}
七、用户权限
镜像中默认创建的普通用户为 siyuan(uid 1000/gid 1000),因此在宿主机上创建工作空间文件夹时,请设置该文件夹的用户组:
chown -R 1000:1000 /siyuan/workspace
启动容器时,需要加上参数 -u 1000:1000。
八、隐藏端口
为了隐藏 6806 端口,可以使用 NGINX 进行反向代理。在此情况下,请注意:
配置 WebSocket 反向代理至 /ws。
注意事项:
- 请务必确认挂载卷的正确性,否则容器删除后数据会丢失;
- 不要使用 URL 重写进行重定向,以免影响鉴权,建议使用反向代理配置。
九、限制
1、不支持桌面端和移动端应用连接,仅支持在浏览器上使用。
2、不支持导出 PDF、HTML 和 Word 格式。
3、不支持导入 Markdown 文件。
通过以上步骤,可以轻松地在 Docker 中部署思源笔记,管理和组织知识与信息。