Вводная часть

Генерал: “Товарищи офицеры, если вы такие тупые, что не можете запомнить самых простых вещей - записывайте! Я же записываю..”

Старый анекдот

Достаточно долгое время я пользовался и на десктопе, и на телефоне для заметок и записок Keep от гугла. Но всегда хотелось большего в деле хранения и просмотра базы знаний. Конечно на свете есть OneNote, но под линукс его нет, есть Evernote, но он хочет каких-то конских денег для использования.

Но однажды попалась на глаза опенсорсная альтернатива Evernote - Joplin.

Что есть в комплекте

  1. Возможность хранения заметок в блокнотах (можно вкладывать блокнот в блокнот, в блокнот, в блокнот…)
  2. Хранение картинок и объектов
  3. Редактирование в Markdown и, на десктопе, обычным редактором в word-like стиле
  4. Есть приложение под все популярные платформы
  5. Есть веб-клиппер под разные нормальные браузеры, позвляющий при открытом клиенте Joplin сохранять страничку как заметку
  6. Возможность создавать задачи (не пользовался)
  7. Возможность синхронизироваться с кучей облаков и, через webdav, с такими сервисами как Yandex Disk, например (честно скажу с ним не пробовал)
  8. Возможность поставить собственный сервер и хранить все в нем, чем я незамедлительно и воспользовался
  9. И многое другое, включая расширение плагинами

Для начала я поставил приложение из плеймаркета на свой андроид-телефон.

Поигрался без всяких синхронизаций (читай локально на телефоне). Работает прекрасно.

Потом попробовал посинхронизироваться в уже имеющийся у меня webdav-сервер. Тоже работает. Но с картинками в заметках уже начались некие тормоза.

Тогда было принято решение копать в сторону своего сервера.

На Github, где собственно и ведется разработка проекта, был увиден файл docker-compose.server.yml. На его основе (+ небольшой гуглёж) и был поднят сервак.

Как и что по установке сервера

POSTGRES_PASSWORD=пароль_на_postgres
POSTGRES_USER=пользователь_в_postgres
POSTGRES_DATABASE=название_базы_в_postgres
POSTGRES_PORT=5432
APP_BASE_URL=https://домен.вашего.сайта.с.joplin.ru
version: '3'

services:
    db:
        image: postgres:13
        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:
            - "127.0.0.1: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
server {
        listen 80;
        listen [::]:80;
        server_name your.name.ru;
        include acme;
        return 301 https://$server_name$request_uri;
}
server {
        server_name your.name.ru;
        listen name.ru:443 ssl; # default_server;

        ssl_certificate /etc/letsencrypt/live/your.name.ru/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/your.name.ru/privkey.pem;
        ssl_trusted_certificate /etc/letsencrypt/live/your.name.ru/chain.pem;

        ssl_stapling on;
        ssl_stapling_verify on;
        resolver 67.207.67.3 8.8.8.8;

        client_max_body_size 1000m;

        # исключим возврат на http-версию сайта
        add_header Strict-Transport-Security "max-age=31536000";

    location ~ /\.git {
        deny all;
    }

    location / {
         proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header        Host $http_host;
         proxy_set_header        X-Forwarded-Proto $scheme;
         proxy_redirect          off;
         proxy_pass              http://127.0.0.1:22300/;
    }

    access_log   /var/log/nginx/joplin.log;
}

Собственно всё. Заходим на наш joplin-сайт, логинимся admin@localhost и пароль admin, меняем логины-пароли и наслаждаемся.

Одно но, не смог, да и не собирался настраивать почтовые рассылки с сервера. Показались ни к чему. Заведение пользователя все равно через админку, там же есть все “отправленные” письма со всеми реквизитами для активации аккаунта.

Как выглядит приложение

На андроид

Joplin on android 01

Joplin on android 02

Joplin on android 03

На линукс

Joplin on linux 01



Переход на Joplin Автор: NetMoose Когда: 23.03.2022

Categories: Services Tags: сервисы