Leanote — устанавливаем свой сервис для заметок
Я давно пользуюсь сервисами для создания и хранения заметок. Сначала Evernote, который затем сильно ограничил возможности для бесплатных аккаунтов (не более двух подключенных устройств). Потом OneNote — но бесплатная версия приложения для Windows 10 опять же имеет урезанные возможности.
Недавно я наткнулся на китайский сервис Leanote. Огромное преимущество в том, что его можно развернуть на своём сервере и больше не зависеть ни от кого. Давайте этим и займёмся.

Ставить серверную часть будем из docker-образа, поэтому всё будет очень легко. Для начала загрузим необходимые образы из репозитория:
# sudo docker pull r0wbh/leanote:latest
# sudo docker pull r0wbh/leanote-mongodb:latest
Да, эти репозитории создал я, чтобы в случае чего они не потерялись. Теперь клонируем репозиторий github с нужными файлами:
# git clone https://github.com/r0wbh/leanote-dockerfile.git
Нам нужно поправить файл conf/app.conf . Обратите особое внимание на следующие параметры:
- site.url — здесь укажите IP-адрес (и порт) или имя домена по которому будет доступен сервис.
- app.secret — строка-секрет. Можно вписать произвольную комбинацию символов.
Также, при необходимости, правим файл docker-compose.yml и изменяем тома хранения данных (volumes), в которых будут храниться данные:
volumes:
- 'leanote-files:/go/src/github.com/leanote/leanote/files'
...
- "leanote-db:/data/db"
После этого можно запустить контейнеры:
# sudo docker-compose up -d
Если всё выполнилось успешно, то попробуем зайти в браузере по адресу http://IP:9000 и увидим следующее окно:

Попробуем зарегистрироваться. Нажимаем кнопку «Sign up» и заполняем данные:

Попадаем в следующий интерфейс заметок:

Можно создавать как обычные заметки (при этом поддерживается полноценное форматирование текста и изображения):

Так и markdown:

Можно создавать множество блокнотов, причём даже вложенные друг в друга. Каждой заметке можно присвоить необходимые теги (чего мне так не хватало в OneNote).
Ограничиваем использование
Сейчас любой может зайти в ваш сервис заметок и зарегистрироваться. В локальной сети это не так критично, но если вы его будете открывать для доступа в Интернете, то это не очень хорошо. Нужно запретить регистрацию. Для этого заходим в сервис под админом. Данные для входа по-умолчанию: admin/abc123 . Затем заходим в админку через меню:
Попадаем в Dashboard:

Выбираем в меню Configuration — Open Register. Вот эту галочку надо убрать и нажать Submit:

Таким образом мы запретили самостоятельную регистрацию. Теперь нужно сменить пароль на админа и на demo-аккаунт (чтобы никто под ним не заходил). Всё это можно сделать через меню User с помощью кнопки Reset Password:

Web-интерфейс это конечно хорошо, а что же с приложениями?
Они тоже есть! Причём на официальном сайте их можно скачать под любые платформы: Android, iOS, Windows, Linux.
Вот, например, так выглядит клиент под Android:



А так выглядит для Windows:

Обратите внимание, что адрес своего собственного сервиса следует в приложении вводить полностью, например, http://203.0.113.5:9000
Теперь мы полностью независимы от чужих сервисов и можем хранить столько заметок, сколько захотим (всё ограничивается только свободным местом на вашем сервере). Для доступа к сервису извне рекомендую использовать реверс-прокси Traefik с подключенным SSL.
Ещё у меня в планах создание форка Leanote с русификацией и изменённой главной страницей.