Менеджер заметок.
Я довольно давно искал менеджер заметок после того, как ушел Notion и заблокировал мой аккаунт. Я перепробовал довольно много всякого. Где-то меня не устраивал интерфейс, где-то глючная P2P-синхронизация, где-то отсутствие нативных приложений.
В итоге я довольно длительное время пользовался Obsidian’ом. Но что-то я так и не смог к нему привыкнуть. Не хватало возможности поделиться заметкой, костыльная синхронизация, которую Yandex мне в какой-то момент поломал, ну и куцый формат хранения. Короче, для того чтобы его допилить до удобоваримого состояния, требовалась куча плагинов, которые необходимо вручную синхронизировать между устройствами. Надоело, и я снова отправился в поиск.
Пока что остановился на Joplin. Он довольно просто и быстро разворачивается. Есть приложения под все платформы, которые я использую. Вполне нормально работает без интернета и поддерживает формат заметок, в котором можно поставить 2 картинки в ряд.
Скажу сразу: я пока что Obsidian’ом пользовался сильно дольше, но пока что кажется, что Joplin закрыл все мои потребности. А пока — как его развернуть.
Приготовления
Первое, что нам надо, — домен, для того чтобы можно было развернуть сервер синхронизации с админкой с HTTPS. Регистрируем где хотим.
Дальше — хостинг. Понятное дело, тоже любой. Я тестирую хостинг от одного из новых игроков на рынке, который дает фри-тир на год за 5к, развернул на нем.
Установленная на машину операционная система с Docker и Docker Compose. А также Nginx и Certbot.
После того как получаем IP на машине, стоит сразу на него создать A-запись у регистратора.
Устанавливаем сервер
1. Создаем директории и файлы
sudo mkdir /opt/joplin cd /opt/joplin/ sudo touch joplin-server.yml
2. Открываем любым текстовым редактором joplin-server.yml и вписываем в него следующие строки
services: db: image: postgres:13 volumes: - ./data/postgres:/var/lib/postgresql/data ports: - "5432:5432" restart: always environment: - POSTGRES_PASSWORD=Тут пароль - POSTGRES_USER=Тут пользователь - POSTGRES_DB=Тут имя базы app: image: joplin/server:latest container_name: joplin-server depends_on: - db ports: - "8080:8080" restart: always environment: - APP_PORT=8080 - APP_BASE_URL=тут url вида https://example.com - DB_CLIENT=pg - POSTGRES_PASSWORD=Тут пароль от базы - POSTGRES_DATABASE=Название базы - POSTGRES_USER=Пользователь базы - POSTGRES_PORT=5432 - POSTGRES_HOST=db
Разумеется, вы можете поменять порты базы, версии, настроить что-нибудь ещё, если этого захотите. Но этого конфига будет достаточно для того чтобы запустить сервер синхронизации.
3. Поднимаем наши контейнеры и проверяем что они запустились
sudo docker compose -f joplin-server.yml up -d sudo docker ps
Nginx Reverse Proxy
В целом, сервер-то уже работает, но он сейчас работает по HTTP. Я не пробовал, но, возможно, приложения не будут с таким работать, а если и будут — это небезопасно. Так что настраиваем Nginx. В целом можно поставить Traefik, Caddy или что-то более модное.
1. Создаем файл конфигурации
sudo touch /etc/nginx/conf.d/joplin-server.conf
2. Открываем и пишем следующие строки
server { server_name example.com; // Тут домен error_log /var/log/nginx/joplin-server.error; location / { proxy_pass http://127.0.0.1:8080; // Тут поменять порт, если меняли в Docker Compose файле proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
3. Сохраняем файл и проверяем, нет ли ошибок
sudo nginx -t
Если ошибок нет — пререзагружаем сервис и идем проверять админку.
sudo service nginx restart
4. Генерируем certbot’ом ключи и еще раз перезагрущаем nginx сервис
sudo certbot -d example.com -m admin@example.com # не забываем менять на актуальные данные sudo service nginx restart
Ну и в целом-то всё. Можно логиниться на сервер. Переходим по адресу и логинимся:
admin@localhost admin. Сразу меняем пароли на нормальные. Также можно изменить email. Но так как я не настраивал почтовый сервер — письмо с подтверждением не ушло, однако ссылку для подтверждения можно посмотреть в админке во вкладке Emails.
С темной темой выглядит странно. Теперь скачиваем приложения на все что хотим, идем в настройки и настраиваем синхронизацию.
У нас есть готовый сервер синхронизации, который мы мейнтейним самостоятельно. Можем просматривать все файлы, делать бэкапы самостоятельно и иметь все проблемы, присущие self-hosted решениям.
Пока что не буду говорить, что это вот то, что мне прям нравится, и советовать всем, но приложение выглядит так, как будто бы закрывает все мои потребности.
А ну и да, конечно же подписывайтесь на телегу https://youtu.be/dQw4w9WgXcQ?si=HaFOkir0fWJPF9ZO.
ссылка на оригинал статьи https://habr.com/ru/articles/916514/
Добавить комментарий