转载请注明出处,本文仅用于学习交流,不对之处,恳请指正,部分图片摘取网络,如有侵权请联系
需求
由于我的NAS是纯机械硬盘,而Joplin的读写又十分频繁,所以我寻思机械盘的4K读写比较慢,而且频繁读写对机械硬盘的寿命也不是十分友好,故而将我的笔记服务Joplin从NAS的WebDAV迁移到我的Docker Host服务器中。
环境
系统环境:
OpenEuler
软件环境:
- Docker CE
- Postgres
- Joplin
客户端:
- Mac OS Monterey
- Android 12
- Windows 10
部署
系统环境
Postgres数据库
新增Postgres数据库(方法一)
docker run -d \
--name postgres \
--restart always \
-e POSTGRES_USER=joplin \
-e POSTGRES_PASSWORD=joplin \
-e POSTGRES_DB=joplin \
-e TZ=Asia/Shanghai \
-v postgresql:/var/lib/postgresql \
-v postgresql_data:/var/lib/postgresql/data \
postgres:14.5
部分参数说明:
- -e POSTGRES_USER:用户名
- -e POSTGRES_PASSWORD:用户密码
- -e POSTGRES_DB:创建的数据库名
- -v postgresql:挂载/var/lib/postgresql的虚拟磁盘
- -v postgresql_data:挂载/var/lib/postgresql/data的虚拟磁盘
使用现有的 Postgres 新增数据库(方法二)
-
列出全部容器
docker container ls -a
-
进入容器
其中${container_name}为你的容器的name
docker exec -it ${container_name} bash
或者
其中${container_id}为你的容器的id
docker exec -it ${container_id} bash
-
切换系统用户
su - postgres
-
登陆数据库
如果你的系统用户跟你的数据库用户相同的话
psql
如果你的系统用户不是你的数据库用户的话
psql -U joplin -W
参数说明
- -U:数据库用户名
- -W:使用密码登陆,回车后输入密码
-
新增用户
CREATE USER joplin WITH PASSWORD 'joplin';
-
新增数据库
CREATE DATABASE joplin OWNER joplin;
-
赋予权限
GRANT ALL PRIVILEGES ON DATABASE joplin to joplin;
-
退出数据库
\q
-
退出系统数据库用户
ctrl+d
-
退出容器
ctrl+d
Docker部署Joplin Server
docker run -d \
--name joplin \
--restart always \
-p 22300:22300 \
--link postgres:postgres \
-e APP_BASE_URL='https://www.alainlam.cn' \
-e APP_PORT=22300 \
-e DB_CLIENT=pg \
-e POSTGRES_DATABASE=joplin \
-e POSTGRES_PASSWORD=joplin \
-e POSTGRES_USER=joplin \
-e POSTGRES_PORT=5432 \
-e POSTGRES_HOST=postgres\
-e TZ=Asia/Shanghai \
joplin/server:latest
部分参数说明
-p:端口映射
-link:链接到数据库容器
-e APP_BASE_URL:访问Joplin的链接
-e APP_PORT:Joplin容器中运行的端口
-e DB_CLIENT=pg:使用PostgresSQL数据库
-e POSTGRES_DATABASE:数据库名
-e POSTGRES_PASSWORD:数据库密码
-e POSTGRES_USER:数据库用户名
-e POSTGRES_PORT:数据库端口
-e POSTGRES_HOST:数据库链接
-e TZ=Asia/Shanghai:容器内时区
Joplin反向代理
我使用的是nginx作为反向代理服务器
location ^~ / {
# 如果你的Joplin不是在同一个服务器内,需要localhost为对应的IP地址
proxy_pass http://localhost:22300;
# 传递Host
proxy_set_header Host $host:$server_port;
# 真实IP地址
proxy_set_header X-Real-IP $remote_addr;
# 多层代理服务器IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 初始域名
proxy_set_header X-Forwarded-Host $http_host:$server_port;
# 端口
proxy_set_header X-Forwarded-Port $server_port;
# Http协议
proxy_set_header X-Forwarded-Proto https;
# Websocket
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 缓存
add_header X-Cache $upstream_cache_status;
set $static_fileAbcDeFGh 0;
if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" ) {
set $static_fileAbcDeFGh 1;
expires 12h;
}
if ( $static_fileAbcDeFGh = 0 ) {
add_header Cache-Control no-cache;
}
}
登陆
-
在浏览器中输入与APP_BASE_URL配置相同的地址
默认账号:admin@localhost
默认密码:admin
-
登陆后回要求修改默认密码
可以修改用户名,登陆邮箱地址,密码
-
修改完成后,由于我们还没有配置消息邮箱,我们可以直接通过管理后台进行邮箱验证
配置Joplin客户端
-
选择Joplin Server
-
输入Joplin Server的链接,与APP_BASE_URL的配置相同的地址
-
输入在Joplin Server网页端所配置的邮箱
-
输入在Joplin Server网页端所配置的密码
-
选择更新频率,默认为5分钟
-
点击检查配置,如果配置正确则配置完成
注意事项
Joplin Server仍然是Beta版本,故而可能存在不稳定的情况,所以在投入使用前,最好先进行一定时间的测试,避免数据的丢失!我目前仍处于测试阶段,并非将原有的WebDAV方式完整移除。
文章评论