NAS 部署思源, 多终端同步

本贴最后更新于 327 天前,其中的信息可能已经时移世异

NAS docker 上安装最新的 docker 镜像。如果被墙,可以通过 pull 命令拉取,这里就不赘述了。

下面讲下如何配置镜像。

安装 docker 镜像,配置如图:

image

这里我选择的 host 网络,因为如果选择 bridge,后面配置 WebDav 网络同步将会失败。

image

也可以不选择 “使用高权限执行容器”

image

注意,命令里面填入:-workspace /home/siyuan/Siyuan/ -accessAuthCode xxxxxx, 我安装的版本是 v2.11.4,这里需要添加参数 “-accessAuthCode”,值为一串字符串,这里我用 xxxxx 表示,需要记住,后面登录会用到。另外 workspace 路径为“/home/siyuan/Siyuan",我看有的文章说是 "/siyuan/workspace", 但 docker 启动后,进入 docker 查看,会发现数据实际是存放在"/home/siyuan/Siyuan/"下面。

image

目录 1 是在在 docker 下创建的,注意赋予 Siyuan 文件夹 everyone 权限。目录 2 是 docker 内部的 siyuan 的 wokspace 目录。

image

启动后查看 docker 日志,启动成功。

image

浏览器输入主机 IP:6806, 显示如图,表示部署成功。输入 access code 为之前命令行里面填写的 access code 即可登录。

如果申请了外网域名(关于外网穿透,域名登陆,请自行脑补 😊),需要设置反向代理:控制面板--> 登录门户--> 高级--> 反向代理服务器

image

来源:这里协议我选择的 HTTPS,也可以选择 HTTP,这里我选择 HTTPS,如果选择 HTTPS,需要实现申请证书(关于如何申请证书,请仔细脑补 😉)。主机名为自己申请的域名,端口可以用默认的 6806,这里我设置了不同的端口(需要在路由器上开放该端口)。目的地: 协议选择 HTTP(不知道 siyuan 如何配置 HTTPS 访问,没有去折腾),端口为默认的 6806。

image

另外,如果来源设置的 HTTPS 访问,需要在"自定义标题"里面添加如图名称和值,否则即使域名登录成功了,也会提示报错。

image

之后浏览器输入 https://域名:端口,(注意需要提前安装证书,关于如何安装证书,请自行搜索),端口为来源端口(没有研究如何隐藏端口,应该可以实现,知道的小伙伴可以分享一下),之后输入 accesscode 即可登录。

image

登录后,点击左上角->setting->appearance->Language 可以更改语言。

image

这里配置 webdav,为什么要配置云端同步呢?我是为了手机端或者其它终端通过应用程序或者 app 访问,真正实现多平台,多终端无缝同步。否则,就只能通过浏览器访问,如果出现网络不好情况下,就没法编辑。

填写必要的信息,这里就不讲如何配置 webdav 了。这里需要注意的是,由于似乎 docker 版 Siyuan 不支持非权威 CA,所以,如果你是的 NAS 使用的是非权威 CA,比如通过 Mkcert 生成的证书,如果这里“TLS Verify”选择“Verify”,同步将会失败。所以这里需要将"Verify“改为"Skip"。 安卓 app 也有相同的问题。但 windows 桌面版没有这个问题,操作系统导入的自己的 CA,在 windows 桌面版是可以选择"Verify"的。 不知道后期会不会有改进。

image

如果 webdav 配置没有问题,点击"设置",会自动生成 main 目录,你的所有笔记数据会产生在改目录下。当然也可更改其它目录,点击“添加”即可。

配置完成之后,点击左上角的同步,即可将笔记同步到自己的 webdav 服务器。

之后,在手机端或者 windows 桌面端,做相同的配置。这样就实现了多终端同步。

更新: 关于 docker 端思源不能使用非权威 CA 的问题,折腾了一下,找到如下解决方案。

SSH 登录 NAS,如下命令登录到 Siyuan 容器内部。

image

image

发现 CA 存放在这个目录下:

image

如下命令手动将自己的 CA 拷贝到该目录, 注意文件权限(似乎在创建容器时,需要选择最高权限执行):

image

最后重启容器。 这样可以解决 docker 端 siyuan 使用非权威 CA 的问题。 但是安卓端还无解,似乎要更改代码,希望后期能改进。

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22340 引用 • 89396 回帖 • 1 关注
  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    153 引用 • 3783 回帖 • 1 关注
  • NAS
    19 引用 • 52 回帖 • 3 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 付了 64 块钱开了同步功能, 现在数据不多, 放在轻牛云上, 等数据多了以后打算自己迁移到自己的群辉 nas 上。

  • 其他回帖
  • 非常详细的指南,楼主辛苦,感谢!

    咨询一下,docker 部署好后,你在 docker 思源里配置的是 webdav,请问我可以在 docker 的思源里,配置 webdav 的地方选择 S3,和本机 S3 配置一致吗?这样 docker 内的思源和其他电脑端手机端都访问 S3 的同一数据库?

    1 回复
  • fcloud

    请问升级版本,重新部署后,能否不用重新修改语言,登录账号,设置云同步等。

    我之前用的第三方编译版本,只需复制旧版 docker 容器的的配置(可以一键复制)即可。

    1 回复
  • zane0301

    你好,我是付费用户,目前使用没有问题。

  • 查看全部回帖

推荐标签 标签

  • Flutter

    Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

    39 引用 • 92 回帖 • 1 关注
  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    4 引用 • 16 回帖 • 5 关注
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    198 引用 • 550 回帖
  • OnlyOffice
    4 引用 • 3 关注
  • 笔记

    好记性不如烂笔头。

    308 引用 • 793 回帖 • 1 关注
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 31 关注
  • Hexo

    Hexo 是一款快速、简洁且高效的博客框架,使用 Node.js 编写。

    21 引用 • 140 回帖 • 1 关注
  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 58 关注
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 537 关注
  • RESTful

    一种软件架构设计风格而不是标准,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    30 引用 • 114 回帖 • 2 关注
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    75 引用 • 1737 回帖 • 5 关注
  • Windows

    Microsoft Windows 是美国微软公司研发的一套操作系统,它问世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。

    222 引用 • 473 回帖 • 1 关注
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 642 关注
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    179 引用 • 995 回帖
  • CodeMirror
    1 引用 • 2 回帖 • 129 关注
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    170 引用 • 414 回帖 • 387 关注
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    15 引用 • 136 回帖 • 1 关注
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    543 引用 • 672 回帖 • 1 关注
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖 • 3 关注
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    334 引用 • 323 回帖
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 463 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    47 引用 • 25 回帖
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    21 引用 • 31 回帖
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    6 引用 • 15 回帖 • 114 关注
  • Swagger

    Swagger 是一款非常流行的 API 开发工具,它遵循 OpenAPI Specification(这是一种通用的、和编程语言无关的 API 描述规范)。Swagger 贯穿整个 API 生命周期,如 API 的设计、编写文档、测试和部署。

    26 引用 • 35 回帖 • 1 关注
  • Pipe

    Pipe 是一款小而美的开源博客平台。Pipe 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    132 引用 • 1114 回帖 • 124 关注
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    186 引用 • 318 回帖 • 302 关注