云原生之使用Docker部署logseq知识管理和协作平台
@TOC
一、logseq介绍
1.1 logseq简介
Logseq是一个开源的个人笔记应用程序,提供了一个类似Roam Research的知识管理系统,强调笔记的联想和递归性。它是一个使用Markdown和Org模式进行笔记记录的跨平台应用程序,可以在桌面、浏览器和移动设备上使用。在Logseq中,用户可以通过链接、标签和页面之间的引用来组织和链接笔记,实现笔记的关联和发现。Logseq还支持导入和导出笔记,包括MindMap、PDF、HTML等格式。同时,Logseq具有一些高级功能,如查询、统计和可视化,可以快速分析和发现笔记之间的关系,并提供更好的知识管理和学习体验。
1.2 logseq特点
Logseq是一种开源工具,旨在支持个人知识管理、笔记和学习。它的主要功能包括:
-
笔记:用户可以创建、编辑和组织日志、笔记、清单等。
-
搜索:用户可以使用全文搜索,在所有笔记中查找特定的关键字或短语。
-
标签:用户可以为笔记添加标签,以便更轻松地组织和查找它们。
-
嵌套块:用户可以使用嵌套块来创建更复杂的笔记结构,例如流程图。
-
插件:Logseq支持插件,可以添加自定义的功能和集成第三方应用程序。
-
Markdown支持:Logseq支持Markdown格式,用户可以用它来编辑和格式化笔记。
二、本地环境介绍
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为centos7.6。
hostname | IP地址 | 操作系统版本 | Docker版本 |
---|---|---|---|
jeven | 192.168.3.166 | centos 7.6 | 20.10.17 |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎使用;
2.在Docker环境下成功部署部署logseq知识管理和协作平台。
三、本地环境检查
3.1 检查Docker服务状态
检查Docker服务是否正常运行,确保Docker正常运行。
[root@jeven ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2023-08-23 23:41:16 CST; 2 days ago
Docs: https://docs.docker.com
Main PID: 9562 (dockerd)
Tasks: 50
Memory: 318.5M
CGroup: /system.slice/docker.service
3.2 检查Docker版本
检查Docker版本
[root@jeven ~]# docker version
Client: Docker Engine - Community
Version: 20.10.17
API version: 1.41
Go version: go1.17.11
Git commit: 100c701
Built: Mon Jun 6 23:05:12 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.17
API version: 1.41 (minimum version 1.12)
Go version: go1.17.11
Git commit: a89b842
Built: Mon Jun 6 23:03:33 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.6
GitCommit: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
runc:
Version: 1.1.2
GitCommit: v1.1.2-0-ga916309
docker-init:
Version: 0.19.0
GitCommit: de40ad0
3.3 检查docker compose 版本
检查Docker compose版本,确保2.0以上版本。
[[root@jeven ~]# docker compose version
Docker Compose version v2.19.1
四、下载logseq镜像
[root@jeven ~]# docker pull ghcr.io/logseq/logseq-webapp
Using default tag: latest
latest: Pulling from logseq/logseq-webapp
4db1b89c0bd1: Pull complete
6f8beccece3b: Pull complete
efba416b8a87: Pull complete
6e7bc8944b52: Pull complete
72805f9582fb: Pull complete
4c6615db462e: Pull complete
d799d200ba56: Pull complete
6f5ca3c3f378: Pull complete
Digest: sha256:0d33952d867a1cc337843a95e2f2353c60b0a174406228e272980303251635e2
Status: Downloaded newer image for ghcr.io/logseq/logseq-webapp:latest
ghcr.io/logseq/logseq-webapp:latest
五、部署logseq应用
5.1 创建logseq容器
使用docker run快速创建logseq容器
docker run -d --name mylogseq -p 8777:80 --restart always ghcr.io/logseq/logseq-webapp:latest
5.2 检查logseq容器状态
检查logseq容器状态
[root@jeven ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
83631165873d ghcr.io/logseq/logseq-webapp:latest "/docker-entrypoint.…" 4 minutes ago Up 3 minutes 0.0.0.0:8777->80/tcp, :::8777->80/tcp mylogseq
5.3 检查容器运行日志
检查容器运行日志
[root@jeven ~]# docker logs mylogseq
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2023/08/26 05:24:46 [notice] 1#1: using the "epoll" event method
2023/08/26 05:24:46 [notice] 1#1: nginx/1.24.0
2023/08/26 05:24:46 [notice] 1#1: built by gcc 12.2.1 20220924 (Alpine 12.2.1_git20220924-r4)
2023/08/26 05:24:46 [notice] 1#1: OS: Linux 3.10.0-957.el7.x86_64
2023/08/26 05:24:46 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 65536:65536
2023/08/26 05:24:46 [notice] 1#1: start worker processes
2023/08/26 05:24:46 [notice] 1#1: start worker process 30
2023/08/26 05:24:46 [notice] 1#1: start worker process 31
六、访问logseq首页
访问地址:http://192.168.3.166:8777/
将IP地址替换为自己服务器的IP地址。
启动后需设置本地文件夹,但是使用http连接会显示"您的浏览器似乎不支持新的本机文件系统API,请使用任何基于Chromium 86+的浏览器,如Chrome,Vivaldi,Edge等。"报错,更换任何浏览器没有效果,需要使用https链接才可以。
七、配置反向代理
7.1 在另外一台服务器安装nginx
在另一台反向代理服务器主机中,安装nginx。
yum -y install nginx
7.2 创建证书目录
创建证书目录
[root@docker ~]# mkdir -p /data/logseq
[root@docker ~]# cd /data/logseq/
[root@docker logseq]#
7.3 配置ssl证书
- 生成私钥
openssl genrsa -out nginx.key 2048
- 生成证书
openssl req -new -key nginx.key -out nginx.csr
openssl x509 -req -in nginx.csr -signkey nginx.key -out nginx.pem
- 检查证书相关文件
[root@docker logseq]# ls
nginx.csr nginx.key nginx.pem
7.4 修改nginx配置文件
修改nginx配置文件/etc/nginx/nginx.conf
- 备份nginx.conf文件
mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
- 修改nginx.conf文件
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
# upstream web {
# server 192.168.3.166;
# }
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
proxy_pass http://192.168.3.166:8777;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
server {
listen 443 ssl;
server_name localhost;
ssl_certificate /data/logseq/nginx.pem;
ssl_certificate_key /data/logseq/nginx.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
proxy_pass http://192.168.3.166:8777;
}
}
}
7.5 重启nginx服务
重启nginx服务
systemctl restart nginx
[root@docker logseq]# systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: active (running) since Sat 2023-08-26 15:38:21 CST; 8s ago
Process: 22447 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 22444 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 22442 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 22449 (nginx)
Tasks: 2
Memory: 1.5M
CGroup: /system.slice/nginx.service
├─22449 nginx: master process /usr/sbin/nginx
└─22450 nginx: worker process
Aug 26 15:38:21 docker systemd[1]: Starting The nginx HTTP and reverse proxy server...
Aug 26 15:38:21 docker nginx[22444]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Aug 26 15:38:21 docker nginx[22444]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Aug 26 15:38:21 docker systemd[1]: Started The nginx HTTP and reverse proxy server.
7.6 测试访问logseq服务
- http方式访问:http://192.168.3.127/
- https方式访问:https://192.168.3.127/
八、logseq的基本使用
8.1 设置本地文件夹
点击添加本地文件夹
8.2 系统基本设置
点击右上角的设置,可以对系统进行基本设置。
-
常规设置
-
编辑器设置
- 高级设置
- 更多设置
8.3 新建页面
新建页面,编辑页面内容。
7.3 新建白板
新建白板,Logseq的白板功能是一种类似于画图板的功能,可以让用户在笔记中添加手写、涂鸦或绘图内容。
7.4 记忆卡片功能
Logseq的记忆卡片功能是指其内置的用于记忆和复习知识的功能。用户可以在Logseq中创建各种类型的卡片,包括基础卡片、笔记卡片、问题卡片、复习卡片等。其中,复习卡片是最为重要的一种,因为其可以帮助用户有效地进行知识的巩固和复习。
在笔记页面,加上#card后,该内容就会出现在记忆卡片中。
- 点赞
- 收藏
- 关注作者
评论(0)