个人知识管理系统思源的服务器搭建
前置准备
- gitlab服务端(可选)
- docker服务端(必须)
- 创建docker映射目录 /siyuan/workspace 并设置权限
1
| chown -R 1000:1000 /siyuan/workspace
|
docker部署
1 2 3 4 5 6 7 8 9 10
| docker pull b3log/siyuan
docker run -d \ --name siyuan \ -v /siyuan/workspace:/siyuan/workspace \ -p {{your port}}:{{your port}} \ -u 1000:1000 \ --restart always \ b3log/siyuan \ --workspace=/siyuan/workspace --lang=zh_CN --accessAuthCode={{your password}}
|
参考文档: https://hub.docker.com/r/b3log/siyuan
版本升级
升级思源系统前请注意备份。备份的2种方式:系统快照备份和gitlab同步备份,注意备份/data文件夹下的所有内容。
操作步骤如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| docker ps docker stop {{containerId}} docker container prune docker images docker image rm xxxxx docker pull b3log/siyuan docker run -d \ --name siyuan \ -v /siyuan/workspace:/siyuan/workspace \ -p {{port}}:{{port}} \ -u 1000:1000 \ --restart always \ b3log/siyuan \ --workspace=/siyuan/workspace --lang=zh_CN --accessAuthCode={{your password}}
|
升级完成后,查看对应版本已是否更新到。
坑点注意:如果在升级完毕后启动docker container, 访问页面发生container状态变为exit,查看是否在读写上有权限问题,示例如下:
如果遇到版本更新导致无法正常使用,需要进行回滚操作,准备多个版本的images,然后启动container。
配置Websockt反向代理
- 进入openresty的usr目录:
/usr/local/openresty
- 在目录下touch一个conf文件,vim进行编辑,参考配置如下。
注意:需要启用ws反向代理,proxy_set_header设置,prox_pass指向本地docker对外端口,将443端口内容转到指向你的本地端口。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| map $http_upgrade $connection_upgrade { default upgrade; '' close; }
server { listen 443 ssl; server_name {{your server host}}; ssl_certificate /usr/local/openresty/nginx/conf/cert/server.crt; ssl_certificate_key /usr/local/openresty/nginx/conf/cert/server.key; ssl_session_timeout 5m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on;
access_log /var/log/nginx/siyuan.log measured; error_log /var/log/nginx/siyuan.err.log notice; default_type application/json; keepalive_timeout 75s; charset_types text/plain application/json; charset utf-8; location / { proxy_pass http://localhost:{{your port}}; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }
}
|
## TODO
增加一些高级玩法功能:
[X] 使用域名访问思源笔记
[ ] 编写bash脚本同步到自建的gitlab或者云仓库,同步
[ ] 自动升级脚本