1.5.4+ 版本思源笔记 Docker 部署参考(1.7 + 版有效)

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

一、修改思源笔记默认 6806 端口(以 1.5.4 版为例,不修改端口可跳过这一步

  1. 下载思源笔记 linux 版客户端

下载地址:https://b3log.org/siyuan/download.html

  1. 解开下载好的 siyuan-1.5.4-linux.tar.gz,找到安装包中的 resources/stage/ 目录下找到 build 文件夹
  2. 修改 appdesktopexportmobile 4 个目录下所有 js 文件,将 6806 替换成 80

js 名类似 main.d3d59c662fee6c9d90d0.jsprotyle-method.js 等,中间数字为随机生成

  1. build 文件夹复制 /home/mura/siyuan 目录(此目录下准备放思源笔记的工作空间,可根据自己需要自定,我是又新建了一个 server 目录),并给/home/mura/siyuan 目录配置权限,准备做容器卷
    cp -r /home/mura/downloads/build /home/mura/siyuan/server
    
    chown -R 1000:1000 /home/mura/siyuan
    

二、Docker 部署

  1. 1.5.2 版之后,思源笔记容器内部改为 1000:1000 用户运行,所以相应的目录都需要放在宿主机的 1000 用户(安装 linux 时第一个创建的用户)有权限访问的目录

    假设:

    第一个创建的用户名为: mura

    思源笔记的工作空间:/home/mura/siyuan/notes

    思源笔记 build 文件夹所在目录:/home/mura/siyuan/server/build

  2. 开始拉取最新镜像

docker pull b3log/siyuan:v1.5.4
docker pull b3log/siyuan:latest

3、运行容器

docker run -itd --name siyuan \
    --restart=always \
    -u 1000:1000 \
    -e LANG=zh_CN.UTF-8 \ 
    -e LC_ALL=zh_CN.UTF-8 \
    -v /home/mura/siyuan/notes:/home/siyuan/Documents/SiYuan \
    -v /home/mura/siyuan/server/build:/opt/siyuan/stage/build \
    -p 80:6806 \
    b3log/siyuan:latest

如果不修改端口

docker run -itd --name siyuan \
    --restart=always \
    -u 1000:1000 \
    -e LANG=zh_CN.UTF-8 \ 
    -e LC_ALL=zh_CN.UTF-8 \
    -v /home/mura/siyuan/notes:/home/siyuan/Documents/SiYuan \
    -p 6806:6806 \
    b3log/siyuan:latest
  • 思源笔记

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

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

    19812 引用 • 75874 回帖
4 操作
Mura 在 2022-01-25 09:20:51 更新了该帖
Mura 在 2022-01-10 10:36:49 更新了该帖
Mura 在 2021-12-23 08:06:57 更新了该帖
Mura 在 2021-12-02 10:35:42 更新了该帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • hykest

    大侠高见。

    请问群晖 GUI 界面有办法这样自定义部署吗?

    谢谢。

    1 回复
  • Mura

    我没用过群晖,不知道怎么访问宿主机目录,只要能将 js 文件拷进去,就可以。

    还有一种思路就是在其他地方下载好镜像,生成容器后,进容器修改好 js 文件,再做成镜像传到 hub.docker.com 上去,然后再下载自己的镜像重新生成容器

    最简单的方法就是让开发人员改。。。

    以上方法均无特殊要求,全部是常规参数常规操作,所以群晖我觉得是可以的

    1 回复
  • hykest

    我技术小白,所以还不知道怎么访问群晖 docker 里面的文件和配置……

    我还在研究研究

    谢谢。

  • Red

    搭好了,感谢

  • some 2 评论

    😭 一直在转圈,根本进不去。。

    image.png

    启动命令是

    docker run -itd --name siyuan
    --restart=always
    -u 1000:1000
    -v /home/siyuan/data:/home/siyuan/Documents/SiYuan
    -p 6806:6806
    b3log/siyuan:latest

    其中/home/siyuan/data 已经使用 chown -R 1000:1000 改了权限

    -e 参数不知道为什么提示 command not found,所以就没加了
    some
    @some docker logs siyuan 查看一下容器日志,再来判断比较好
    Mura
  • some

    log 日志如下,大佬帮忙看下,感谢。

    
    I 2021/12/22 09:42:45 runtime.go:57: kernel is booting:
        * ver [1.5.4]
        * arch [amd64]
        * runtime mode [prod]
        * working directory [/opt/siyuan]
        * read only [false]
        * container [docker]
        * database [ver=20211124]
        * workspace directory [/home/siyuan/Documents/SiYuan, data 20 kB]
        * rsync [version 3.2.3  protocol version 31]
        * pandoc [pandoc 2.13]
    I 2021/12/22 09:42:45 conf.go:257: local serve path [http://127.0.0.1:6806]
    I 2021/12/22 09:42:45 serve.go:68: kernel is booting [http://0.0.0.0:6806]
    I 2021/12/22 09:42:45 conf.go:507: pre-init database size [66 kB]
    I 2021/12/22 09:42:45 conf.go:523: post-init database size [66 kB], tree stat [count=0, size=0 B]
    I 2021/12/22 09:42:45 working.go:113: kernel booted
    
    1 回复
  • Mura

    你这个已经启动成功了。

    我现在怀疑,你是不是做了把 JS 文件中的 6806 端口替换成了 80 端口了?

    我看你启动容器是用了-p 6806:6806

    所以我的教程里前面 js 改 80 端口不用改。

    还有一个办法可以查看。按 F12,用浏览器的开发者工具,到网络里看,有哪个文件是 404,没有找到的。

    我之前将端口改成 80 也不能用,后来用开发者工具一看,有几个 js 文件没有加载成功,404

    进而发现有几个文件是 js 里写死了 6806 端口

请输入回帖内容 ...

推荐标签 标签

  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 705 关注
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    87 引用 • 1206 回帖 • 449 关注
  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    89 引用 • 345 回帖
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 516 关注
  • 博客

    记录并分享人生的经历。

    272 引用 • 2386 回帖
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 424 关注
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 701 关注
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    140 引用 • 441 回帖
  • 知乎

    知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。

    10 引用 • 66 回帖 • 1 关注
  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 685 关注
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    28 引用 • 66 回帖 • 2 关注
  • 锤子科技

    锤子科技(Smartisan)成立于 2012 年 5 月,是一家制造移动互联网终端设备的公司,公司的使命是用完美主义的工匠精神,打造用户体验一流的数码消费类产品(智能手机为主),改善人们的生活质量。

    4 引用 • 31 回帖 • 4 关注
  • FreeMarker

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

    23 引用 • 20 回帖 • 436 关注
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 643 关注
  • GraphQL

    GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

    4 引用 • 3 回帖 • 24 关注
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 627 关注
  • 支付宝

    支付宝是全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验,及转账收款/水电煤缴费/信用卡还款/AA 收款等生活服务应用。

    29 引用 • 347 回帖 • 3 关注
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    84 引用 • 122 回帖 • 620 关注
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖
  • Lute

    Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。

    25 引用 • 191 回帖 • 24 关注
  • Postman

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

    4 引用 • 3 回帖
  • V2Ray
    1 引用 • 15 回帖
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 708 关注
  • Android

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

    334 引用 • 323 回帖 • 23 关注
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    34 引用 • 467 回帖 • 711 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 455 关注
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖