自行架設 Joplin Server 同步機器

筆記軟體同步雲端的功能其實有隱私疑慮,例如這裡發生過掃描使用者上傳的筆記內容,Joplin 是一個開源的免費筆記軟體,要同步到雲端目前有很多選擇,而且通通都可以加密後再同步。

其中最容易使用的雲端同步地點是 Dropbox,幾乎無痛可以使用,可惜 Dropbox 免費版本限制僅能 3 個裝置彼此同步資料,Joplin 則提供的另一個選項 - Joplin Server,自行架設 Server,將加密後的筆記同步至雲端 Server,可共享於多個裝置。

提醒:

  • 筆記加密一定要設定,同步至自架Server上的才會加密、不會被竊取
  • 筆記加密的密碼,不應跟 Joplin Server 上開立的帳號密碼一樣

架設 Joplin Server

設定 Joplin 的 env 檔案

vim .env

APP_BASE_URL=https://joplin.your_domain.com
APP_PORT=22300

Joplin Server Docker Startup script

Joplin Server 可以下載 Docker image,但是 Startup Script 應該要處理以下注意事項

  • 保持更新
  • port不應該開放22300,以免安全問題
  • 要把資料庫自行掛載進去,以免container重生資料被刪除

以下是根據上述所處置的 script,使用預設的 sqlite 當作資料庫

#!/bin/bash
docker pull joplin/server:latest
docker stop joplin
docker rm joplin

docker run -d --restart unless-stopped --name joplin \
  -p 127.0.0.1:22300:22300 \
  -v your_log_dir:/home/joplin/packages/server/logs \
  -v your_db_dir/db-prod.sqlite:/home/joplin/packages/server/db-prod.sqlite \
  --env-file your_env_dir/.env \
  joplin/server:latest

寫完 script、儲存後,即可啟動 docker container,看看有無正確啟動。
若 Database 掛載有問題,記得 database 檔案的權限要正確。

Nginx Proxy Setting

設定完 Joplin Server,因為上述監聽 127.0.0.1
須使用 Proxy 來訪問,以下是範例設定

server {
  listen 443 ssl http2;
  server_name joplin.your_domain.com;
  root your_pbulic_root;
  ssl_certificate      /etc/letsencrypt/live/joplin.your_domain.com/fullchain.pem;
  ssl_certificate_key  /etc/letsencrypt/live/joplin.your_domain.com/privkey.pem;
  location / {
    proxy_pass http://127.0.0.1:22300;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Protocol $scheme;
    proxy_set_header X-Forwarded-Host $http_host;
    proxy_connect_timeout 60;
    proxy_send_timeout 60;
    proxy_read_timeout 7200;
  }
}

同步 Joplin

初始設定

確定 Joplin 可訪問後,參考 這裡 的 Secure the admin user 說明

  • 登入、更改 admin 帳號密碼
  • 新增使用者來同步,新增使用者若碰到驗證信箱,可切 admin 去 log 取得驗證連結
  • 到本機的 Joplin App 來測試同步

本機APP同步至 Joplin

Ctrl+, 可開啟「設定 > 同步」(Tools > Options > Syncronization)
同步目標 ( Synchronization target ) 選 Joplin Server ,填入:

  • Joplin Server url - your joplin server url
  • Joplin Server email - your email
  • Joplin Server password - your password

按下「Check Syncronization Configuration」,就可以測試是否正確設定,測試成功後,即可同步筆記。

到 Joplin Server 查驗

https://joplin.your_domain.com/items ,即可看到剛剛上傳的筆記
使用別的裝置一樣設定同步,即可確認筆記都有同步回來