自用私有笔记服务推荐--为知笔记WizNote
本文将推荐博主自用的私有笔记服务为知笔记WizNote,采用Docker部署,镜像为博主根据官方镜像修改,解除了某些限制。
与Trilium对比
博主前面发布过Trilium相关的文章,Trilium是一款超高自由度的笔记服务,有兴趣的可以查看超高自由度的私有笔记服务--Trilium。
为什么没有将Trilium作为主力笔记工具
首先Trilium的超高自由度和超多的笔记功能是无可厚非的强,但是从博主使用程度上来看,其实很多功能并用不上,博主使用笔记大都用于备忘记录而非知识库整理。
- Trilium功能多的同时界面也更加繁杂,界面风格没有在博主的审美上。
- Trilium虽然自由度超高,但是博主也懒得自己开发脚本样式,虽然博主也是个前端开发者。
为什么选择WizNote
- 功能虽然不如Trilium多,但是双向链接、块拖动、笔记地图等常见笔记功能都具备,博主个人认为够用。
- 可以使用微信公众号消息收藏,将任意消息、文章、图片、链接发送到公众号,即可在笔记中查看!
- 重构版的外观符合博主审美
- 支持多用户注册登陆
- 拥有多端客户端支持
Docker部署为知笔记Wiznote私有服务
- wiznote官方提供了官方镜像,
- 博主根据HOWMP大佬在某知笔记服务端docker镜像授权分析一文中提出的方法,对镜像进行了修改,解除了某些限制,感兴趣的同学可以查看该文章。
- 修改文件代码仓已发布Github,谨慎的同学可以自行打包镜像,打包后的DockerHub地址为laoyutang/wiznote-mod
1. 创建启动脚本
sh
mkdir -p /data/wiznote/data
cd /data/wiznote
touch start.sh
chmod +x start.sh
2. 编辑启动脚本
sh
vim start.sh
# 输入以下脚本内容
#!/bin/bash
docker run -d \
--name wiznote \
--restart=always \
--log-opt max-size=1m \
-v /data/wiznote/data:/wiz/storage \
-v /etc/localtime:/etc/localtime \
-p 8080:80 \
-e SEARCH=true \
laoyutang/wiznote-mod:1.0.31
- -v /data/wiznote/data:/wiz/storage 数据持久化
- -v /etc/localtime:/etc/localtime 设置容器内时区与宿主机一致
- -p 8080:80 笔记服务端口映射
- -e SEARCH=true 开启全文搜索模式,开启时全局搜索可以直接搜索笔记中的内容,未开启则只搜索笔记标题。特别注意:实测wiznote服务常驻内存800M左右,开启全文搜索后常驻1.1G,文章数量增加后还会上升,请自行注意服务器内存使用。
- laoyutang/wiznote-mod:1.0.31 使用博主修改的镜像,基于官方最新1.0.31版本封装。
- 官方要求映射9269端口的udp流量,但是实测没啥用。
3. 运行脚本./start,sh
,查看IP:8080页面即可
- 初始用户[email protected],默认密码123456
坑点说明
/admin
可进入管理页面,只有唯一的管理员账号可以登录此页面,建议创建一个私人账号后,进入此页面提升私人账号为管理员,然后将默认admin账号锁定。此页面还可以配置微信收藏的链接,禁止注册等,读者可以自行配置。- 直接进入的是经典版页面
/wapp
,路径修改为/xapp
即可使用重制版,重制版具有更加完善的功能和美观的页面,但是重制版和经典版有些不互相兼容的地方,请选择一个版本持续使用。 /xapp
重制版网页使用了ServiceWorker API用于集成接口调用,熟悉前端的同学应该清楚,该API只能运行在Https或者localhost下,如果你试图使用http在其他地方打开,会发现接口全都没有调用。如果没有域名证书又想使用重制版,可以使用官方windows/macos/linux客户端连接使用。- 如果想使用微信收藏服务,需要管理员在管理页面填写私有服务地址,关注为知笔记公众号,绑定一个官方账号,然后复制私有笔记-账号设置-收藏服务中的收藏服务设置信息,粘贴到官方账号的同一位置即可。注意:收藏服务设置信息只会出现在经典版中,请在
/wapp
下获取,在/xapp
的设置中这个信息是空的,可能是个bug。收藏文本、图片是直接在输入到笔记中,收藏链接会把整个网页读取下来放到笔记中所以收藏链接会有较高延迟。 - nginx反代注意添加ws配置和x-wiz-real-ip头配置,需要上传文件的请配置client_max_body_size,以免文件过大被nginx拦截
nginx
# wiznote笔记
server {
listen 443 ssl;
server_name _;
# 上传文件大小限制,默认16KB
client_max_body_size 200m;
ssl_certificate "证书";
ssl_certificate_key "私钥";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_prefer_server_ciphers on;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header x-wiz-real-ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
location / {
proxy_pass http://localhost:8080;
}
}