自建Joplin服务器

创建文件安装路径

1
2
mkdir -p /root/data/docker_data/joplin
cd /root/data/docker_data/joplin

编辑 docker-compose.yml 文件

1
vim docker-compose.yml
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
32
33
34
35
36
37
38
39
40
41
42
43
44
# 这是一个示例docker-compose文件,用于运行Joplin Server及PostgreSQL服务器。
#
# 在下面的段落中更新以下字段:
#
# POSTGRES_USER
# POSTGRES_PASSWORD
# APP_BASE_URL
#
# APP_BASE_URL: 这是服务将运行的公共基础URL。
# - 如果Joplin Server需要通过互联网访问,请配置APP_BASE_URL如下: https://example.com/joplin。
# - 如果Joplin Server不需要通过互联网访问,请将APP_BASE_URL设置为服务器的主机名。
# 例如: http://[hostname]:22300。基础URL可以包含端口号。
# APP_PORT: Docker容器将监听的本地端口。
# - 这通常会映射到443端口(TLS)与反向代理一起使用。
# - 如果Joplin Server不需要通过互联网访问,则端口可以映射到22300。

services:
db:
image: postgres:16
volumes:
- ./data/postgres:/var/lib/postgresql/data
ports:
- "5432:5432"
restart: unless-stopped
environment:
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_DB=${POSTGRES_DATABASE}
app:
image: joplin/server:latest
depends_on:
- db
ports:
- "22300:22300"
restart: unless-stopped
environment:
- APP_PORT=22300
- APP_BASE_URL=${APP_BASE_URL}
- DB_CLIENT=pg
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DATABASE=${POSTGRES_DATABASE}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PORT=${POSTGRES_PORT}
- POSTGRES_HOST=db

编辑 .env 文件

1
vim .env
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# =============================================================================
# 生产环境配置示例
# -----------------------------------------------------------------------------
# 默认情况下它将使用SQLite,但这主要是为了测试和评估服务器。因此您将想要指定数据库连接设置以使用Postgres。
# =============================================================================

# 改为自己的IP地址
APP_BASE_URL=http://192.168.5.20:22300
APP_PORT=22300

DB_CLIENT=pg
POSTGRES_PASSWORD=joplin
POSTGRES_DATABASE=joplin
POSTGRES_USER=joplin
POSTGRES_PORT=5432
POSTGRES_HOST=db

启动服务

1
docker-compose up -d

访问Joplin Server

在浏览器中输入 IP 地址及端口,进入服务后台。

  • URL: http://192.168.5.20:22300
  • 默认管理员账户: admin@localhost
  • 默认密码: admin
  • 登录后修改账号和密码。

扩展 Joplin 80 访问配置文件

编辑 docker-compose.yml 文件

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
32
33
34
35
36
37
38
39
40
41
42
43
44
# 这是一个示例docker-compose文件,用于运行Joplin Server及PostgreSQL服务器。
#
# 在下面的段落中更新以下字段:
#
# POSTGRES_USER
# POSTGRES_PASSWORD
# APP_BASE_URL
#
# APP_BASE_URL: 这是服务将运行的公共基础URL。
# - 如果Joplin Server需要通过互联网访问,请配置APP_BASE_URL如下: https://example.com/joplin。
# - 如果Joplin Server不需要通过互联网访问,请将APP_BASE_URL设置为服务器的主机名。
# 例如: http://[hostname]:22300。基础URL可以包含端口号。
# APP_PORT: Docker容器将监听的本地端口。
# - 这通常会映射到443端口(TLS)与反向代理一起使用。
# - 如果Joplin Server不需要通过互联网访问,则端口可以映射到22300。

services:
db:
image: postgres:16
volumes:
- ./data/postgres:/var/lib/postgresql/data
ports:
- "5432:5432"
restart: unless-stopped
environment:
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_DB=${POSTGRES_DATABASE}
app:
image: joplin/server:latest
depends_on:
- db
ports:
- "80:22300" # 映射到宿主机的80端口
restart: unless-stopped
environment:
- APP_PORT=22300
- APP_BASE_URL=${APP_BASE_URL}
- DB_CLIENT=pg
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DATABASE=${POSTGRES_DATABASE}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PORT=${POSTGRES_PORT}
- POSTGRES_HOST=db

编辑 .env 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 生产环境配置示例
# -----------------------------------------------------------------------------
# 默认情况下它将使用SQLite,但这主要是为了测试和评估服务器。因此您将想要指定数据库连接设置以使用Postgres。
# =============================================================================

# 替换IP
APP_BASE_URL=http://192.168.5.20:80
APP_PORT=22300

DB_CLIENT=pg
POSTGRES_PASSWORD=joplin
POSTGRES_DATABASE=joplin
POSTGRES_USER=joplin
POSTGRES_PORT=5432
POSTGRES_HOST=db

启动服务

1
docker-compose up -d

一些其它操作

重启服务

1
docker-compose restart

重启docker与compose

1
2
3
sudo systemctl daemon-reload
sudo systemctl restart docker
docker-compose up -d

Ubuntu端口放行

1
2
sudo ufw allow 22300/tcp
sudo ufw allow 80/tcp

扩展:修改joplin配置文件安装路径(慎用)

1
mkdir /usr/local/joplin
1
vim /root/data/docker_data/joplin/docker-compose.yml
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
services:
db:
image: postgres:16
volumes:
- ./data/postgres:/var/lib/postgresql/data
ports:
- "5432:5432"
restart: unless-stopped
environment:
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_DB=${POSTGRES_DATABASE}
app:
image: joplin/server:latest
volumes:
- /usr/local/joplin:/app
depends_on:
- db
ports:
- "22300:22300"
restart: unless-stopped
environment:
- APP_PORT=22300
- APP_BASE_URL=${APP_BASE_URL}
- DB_CLIENT=pg
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DATABASE=${POSTGRES_DATABASE}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PORT=${POSTGRES_PORT}
- POSTGRES_HOST=db

自建Joplin服务器
http://example.com/2024/09/14/b5cdd662dc284f33a5c28366cce64b0d/
作者
John Doe
发布于
2024年9月14日
许可协议