碎碎念
丢人的我在搞两个服务器之间跑的玩具之间的迁移,
结果 Nextcloud 给我每个.md文件都生成了预览
索性破罐子破摔,直接用prelease的joplin server算了。
悲
joplin server 已经是2.0版了,但依旧问题很多,不过好在多了个笔记实时分享到网页端的功能,算是比较值得尝试的一点了。
参考文档 https://github.com/laurent22/joplin/blob/dev/packages/server/README.md
- 确保你做好了joplin的离线备份,笔记丢了那就得不偿失了
图片
docker 安装
1.先更新
apt update && apt upgrade
2.安装 docker
curl -sSL https://get.docker.com/ | sh
3.启动 docker
systemctl enable docker && systemctl start docker
4.安装 docker-compose
apt install docker-compose
5.创建目录
mkdir joplin
6.进入目录
cd joplin
7.创建 docker-compose.yml 文件
vim docker-compose.yml#或者用其他你喜欢的编辑器
8.复制粘贴
- 注意把
你的域名
更换为你自己的域名
*同样的最好也改下密码
version: '3' services: db: image: postgres:13.1 ports: - "5432:5432" restart: unless-stopped environment: - APP_PORT=22300 - POSTGRES_PASSWORD=密码 - POSTGRES_USER=user - POSTGRES_DB=joplin app: image: joplin/server:latest depends_on: - db ports: - "22300:22300" restart: unless-stopped environment: - APP_BASE_URL=https://你的域名/ - DB_CLIENT=pg - POSTGRES_PASSWORD=密码 - POSTGRES_DATABASE=joplin - POSTGRES_USER=user - POSTGRES_PORT=5432 - POSTGRES_HOST=db
9.然后安装
docker-compose up -d
至此算可用了
如果你希望用上 https
1.安装 Nginx
apt install nginx
systemctl enable nginx && systemctl start nginx
(如果出现报错一般都是你80或者443已经在跑某个东西了,请自行检查)
2.写配置文件
vim /etc/nginx/conf.d/joplin.conf
3.复制粘贴
- 随便写的配置文件,只保证可用(
server { server_name 你的域名; listen 80; #return 301 https://$server_name$request_uri; location / { proxy_pass http://127.0.0.1:22300; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Ssl on; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Frame-Options SAMEORIGIN; client_max_body_size 100m; client_body_buffer_size 128k; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } }
4.安装 certbot 配置https
apt install python-certbot-nginx
5.使用 certbot
certbot
6.跟着提示走(不想详说了,报错说明你 nginx 配置有问题 请nginx -t
)
7.然后选 redirect(配置自动重定向 https )
8.然后nginx -s reload
登陆 web 管理页面
https://你的域名/login
默认帐号 admin@localhost
默认密码 admin
同步
重点
你必须先检查一次配置文件正确性才能正常同步,否则会一直报错上级目录不存在(这玩意好像是在检查配置的时候才会在服务器上生成同步文件夹的)
一有不甚会丢失所有笔记,请先备份
1.导出配置后,卸载并,删除 joplin 所有配置/文件
linux 下joplin的安装路径应该是 /home/用户名/.config
在里面搜索出joplin的文件夹全删了就行。
2.重新安装 joplin 并填好同步服务器检查配置
3.导入备份文件,同步
joplin server 2.0已经没有设置同步目录的选项了,直接填同步服务器,邮箱,密码就可以同步。
如报错,请检查客户端和服务端版本是否最新
2021.6.18更新
当我躺在准备拿joplin查点东西的时候突然发现,上午记的东西没同不过来。
检查同步配置的时候才发现服务器炸了,报错 'not allowed put code:400' 。
起初我以为附在笔记上的文件太大了,去改了下nginx配置,无用,遂 google 才发现
joplin 更了个大版本,服务器也得更新
本来都睡觉了,又从床上爬起来连服务器(猝死)
更新其实也没那么麻烦,把旧镜像删了,然后 docker pull joplin/server:latest
然后重建下容器就好了(请做好 back up )
2021.6.28更新
不小心删掉了一个笔记分组,然后试图拿其他设备覆盖同步,结果服务端把我其他设备也都删了(
遂服务器快照回昨天,重新同步,失败,服务器被覆盖到删除后了。
然后又把服务器回档了一此,翻出了个一个多月没开的笔记本,同步到昨天,导出所有笔记成 .jex 文件
又发现直接同步本地备份的会莫名失败,或者出现所有笔记变成两份
去 docker 把 joplin_db 的 /var/lib/postgresql/data
删掉重装,然后重启了joplin 的两个容器,重新配置 joplin server
最后又把所有客户端的 joplin 删干净,导入本地备份重新同步,才成功恢复出服务端的笔记。
反正这一趟下来折腾得要死,joplin server 啥时候出个能撤销服务端操作的功能啊(
2021.10.18更新
上上周 Let's Encrypt 根证书过期了,joplin同步也跟着挂了( ,暂时关了tls认证,等同步服务器上的证书自动续上就好了。
请问如果joplin server更新了客户端不更新能用么,我想给我的joplin_server的docker加上自动更新,不知道会不好有危险。
大部分情况都是客户端更新了,server端没更新,导致同步失败。
上自动更新也没啥问题,出问题回滚/用旧镜像就是(做好备份,随便折腾)
大神有个神奇的问题,我把容器、镜像都删除了,然后拉取最新的镜像,安装过了还是个老版本…好气人,试了几次都是。难道要删除完所有的数据么?
更新server版直接删镜像,重建容器就行了。
现在最新的正式版还是2.6.10,你再重建也不会更新啦(
想玩新版本请拉beta镜像XD。
不是啊大佬,我本来是2.4,来出来的镜像都不一样大了结果还是2.4
我删了重装数据还在,是不是挂载的东西都要清空呢?
打扰了,搞清楚了。当时看了你的教程和另外一位的教程,我创建了个volume,把里面joplin的东西都删除了才能正常升级。但是我不知道怎么升级保留数据,这样还是很有隐患。
别动 jolpin_db,只重新拉 joplin_app 的镜像更新,再重建,基本不会丢失数据。
重要的东西全在joplin_db里,你完全可以把这个容器的volume拷出来,用来做迁移/备份
至于数据备份肯定是要做的(防止服务器硬盘被拔),至少是本地有个设备定期拉同步,服务端丢失后可以本地导出。
我自己是图方便买的vps主机商的自动快照功能,出事了就回滚(
看来我还是老老实实用webdav吧
手机安卓端貌似和最新版犯冲。最新的docker,手机端是2.6X。我装了后手机试了各种方法同步不完整,只能同步过来少量笔记和一点点的文件夹。今天先把文件同步到了onedrive,然后再同步joplin_server算是解决了。
对自己好点,能用就不折腾。
还有可以去 https://discourse.joplinapp.org 吐槽奇怪的bug
我是废了,眼睛懂了,脑子没跟上,我也继续webdav
这个教程还是我工作之前没事写的,有点年头了,也许哪个地方不工作,或者说是哪个地方写的很模糊,我自己也不清楚,打算这周末抽空更新下。
大佬,刚搭建完成,我发现它只把数据库做了本地数据持久化, 如果我要迁移 文章里 图片 与附件 去哪了