一、前言

可能不是最优解,我是自己用,问题不大。
没搜到非docker部署的方式,自己瞎琢磨的
在这里插入图片描述

一开始docker部署,后面看到插件商店内,好像有个插件需要其他的端口,想着万一我后面还需要其他端口,为已存在的 Docker 容器添加新的端口映射,我懒。

找找非docker部署的方式,一搜全都是docker部署,也有可能我瞎没看到。
找到一篇。但是是Windows的,而且他似乎还自己编译,让我手动编译,不可能的。
在这里插入图片描述

我最后的方案就是

  1. deb先安装
  2. 创建运行的用户
  3. 用创建的用户运行一次,配置允许网络访问
  4. 看看进程,它怎么启动的
  5. 用.service 替代命令行启动

二、环境

Ubuntu Server 无图形化界面
在这里插入图片描述

三、安装

(一)将源码包下载,安装 (root)

先下载

wget https://github.com/siyuan-note/siyuan/releases/download/v3.5.8/siyuan-3.5.8-linux.deb

安装依赖

apt update
apt-get install libasound2t64 -y

安装

# 安装
dpkg -i siyuan-3.5.8-linux.deb

# 修复依赖
apt install -f

(二)创建一个普通用户,运行思源

# 添加用户
useradd -m siyuan

# 看一下
ls -l /home 

# 改密
passwd siyuan

# 登录
ssh siyuan@127.0.0.1

# 登录后运行思源
siyuan

运行后发现报错 ,
在这里插入图片描述

(三)重新启动一个ssh连接,重新运行siyuan

启动

siyuan

这里弹出窗口是因为我用Mobxterm,它自带 X server
在这里插入图片描述

在这里插入图片描述
没有桌面的情况下,替代方案:

# --------------- 新的终端 root --------------
apt-get install xvfb -y

# 创建一个桌面
/usr/bin/Xvfb :99 -screen 0 1280x800x24 &

# 切换到 siyuan 用户,不能用su siyuan
ssh siyuan@127.0.0.1

# 执行
siyuan
# --------------- 新的终端 root ---------------- 
# 安装
apt install -y x11vnc 

# 防火墙放行
ufw allow 5900/tcp
ufw reload

# 转发
x11vnc -display :99 -nopw -forever -shared -noshm

(四)利用UI界面,指定存储的位置 、开启网络访问

(1)指定存储路径

选择一下,指定存储的路径, siyuan 家目录下创建一个workspace
在这里插入图片描述
选siyuan的家目录,然后点open
在这里插入图片描述

点ok
在这里插入图片描述

(2)打开点击设置

在这里插入图片描述

(3)点击about,开启 network serving

    这时候会自动断开,vnc连接的页面黑屏,这是正常的。需要手动执行以一下 siyuan,改了配置会自动关闭,可以看到 “will be closed automatically after modification

在这里插入图片描述

(4)回到之前的siyuan用户终端,重启siyuan
siyuan

在这里插入图片描述

(5) 设置访问授权码

必须配置,否则web访问报错

{
	"code": -1,
	"msg": "Auth failed: for security reasons, please set [Access authorization code] when using non-127.0.0.1 access\n\n为安全起见,使用非 127.0.0.1 访问时请设置 [访问授权码]"
}

在这里插入图片描述

在这里插入图片描述

(6)这里可以看到当前的访问端口为38359,这个端口默认情况下,每次启动都会变

在这里插入图片描述

(7)观察之前启动后的输出, 端口就是38359

在这里插入图片描述
看到主要用 /opt/SiYuan/resources/kernel/SiYuan-Kernel 启动 , 可以看一下启动参数

root@ubunut-server:~# /opt/SiYuan/resources/kernel/SiYuan-Kernel  --help
Usage of /opt/SiYuan/resources/kernel/SiYuan-Kernel:
  -accessAuthCode string
        access auth code
  -lang string
        ar_SA/de_DE/en_US/es_ES/fr_FR/he_IL/it_IT/ja_JP/ko_KR/pl_PL/pt_BR/ru_RU/tr_TR/zh_CHT/zh_CN
  -mode string
        dev/prod (default "prod")
  -port string
        port of the HTTP server (default "0")
  -readonly string
        read-only mode (default "false")
  -ssl
        for https and wss
  -wd string
        working directory of SiYuan (default "/root")
  -workspace string
        dir path of the workspace, default to ~/SiYuan/
(8)咱选定,固定端口为 42041,防火墙放行
# root 终端
ufw allow 42041/tcp
ufw reload

(五)新建服务配置文件 、启动服务

vim /etc/systemd/system/siyuan.service

[Unit]
Description=Siyuan Service

[Service]
Type=simple

User=siyuan
Group=siyuan
ExecStart=/opt/SiYuan/resources/kernel/SiYuan-Kernel --port 42401 --wd /opt/SiYuan/resources
KillSignal=SIGTERM
KillMode=mixed
TimeoutStopSec=30

Restart=always
RestartSec=5s

[Install]
WantedBy=multi-user.target

重新加载 systemd 系统和服务管理器配置

systemctl daemon-reload
systemctl start siyuan

(六)启动

systemctl start siyuan
systemctl enable siyuan # 开机自启动

在这里插入图片描述

更多推荐