简述

在付费了几年为知笔记之后,还是决定把笔记放到自己的服务器上。搜索测试了一圈,发现joplin的多端同步功能非常合适,Joplin支持Dropbox、OneDrive 和 AWS s3(当然国内用费点劲),支持 WebDAV 协议,也支持自家的Joplin Server。

测试

在正式使用之前,最好先run起来测试(熟悉)下配置、功能、同步等操作,避免正式使用的时候因为误操作导致笔记丢失。

git  clone https://github.com/lianshitong/joplin
docker run --env-file .env -p 22300:22300 joplin/server:latest

部署

# This is a sample docker-compose file that can be used to run Joplin Server
# along with a PostgreSQL server.
#
# All environment variables are optional. If you don't set them, you will get a
# warning from docker-compose, however the app should use working defaults.

version: '3'

services:
    db:
        image: postgres:13.1
        volumes:
            - ./data/postgres:/var/lib/postgresql/data
        ports:
            - "5432:5432"
        restart: unless-stopped
        environment:
            - POSTGRES_PASSWORD=密码
            - POSTGRES_USER=用户名
            - POSTGRES_DB=数据库名
    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_DATABASE==数据库名称
            - POSTGRES_USER==数据库用户名
            - POSTGRES_PORT==数据库端口
            - POSTGRES_HOST=db

Nginx

upstream notedocker { server 127.0.0.1:22300;}
server
    {
        listen 80;
        listen [::]:80;
        ....

    location / {
        proxy_pass http://notedocker;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header x-note-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;

    }

    ...
    }

Joplin配置


参考资料

文章目录