Установка Self Hosted сервиса для заметок Memos со встроенным Chat GPT в Docker.
Введение
Не так давно искал замену Google Keep, за все время пользования им в принципе все устраивало, кроме отсутствия нормальной возможности форматирования текста, когда заметок стало много, они больше стали напоминать куски записок сумасшедшего.
Все что находил либо перегружено по функционалу и внешнему виду, стоит денег, такое же неюзабельное в плане форматирования текста как и сам Google Keep, либо просто не нравилось.
Сегодня наткнулся на Github на Memos и загорелся развернуть его у себя для тестов у себя на VPS, в итоге пока разбирался понял что функционал и внешний вид меня полностью устраивает.
Что такое Memos?
Memos — это Open Source и Self Hosted решение для ведения заметок, под капотом у него Go + и React.js +, данные хранятся в SQLite, есть поддержка синтаксиса Markdown, Chat GPT через его API (очень удобно, у меня VPS из-за границы, без всяких VPN и прочих костылей задаешь в чате вопрос и получаешь ответ), есть ярлыки, теги, небольшая кастомизация внешнего вида, возможность сделать заметки общедоступными или только личными, которыми в дальнейшем можно поделиться, для IOS и Android есть стороннее приложение не считая возможности зайти через веб и другие приятные мелочи.
Установка с помощью Docker
Для установки нам понадобится установленный Docker и Docker Compose
Ставиться Memos очень просто и быстро, в одну команду:
docker run -d --name memos -p 5230:5230 -v ~/.memos/:/var/opt/memos neosmemo/memos:latest
Далее переходим в браузер и завершаем регистрируем администратора
Установка с помощью Docker Compose
Создаем директорию под хранение Memos и переходим в нее:
mkdir -p /app/memos/
cd /app/memos/
Создаем наш Docker-Compose.yml:
nano docker-compose.yml
version: "3.0" services: memos: image: ghcr.io/usememos/memos:latest container_name: memos volumes: - ./.memos/:/var/opt/memos ports: - 5230:5230
docker compose up -d
Далее можно перейти уже непосредственно в Memos и и зарегистрировать администратора:
http://ВАШ_IP_АДРЕС:5230
Вводим имя пользователя, придумываем хороший пароль и жмем Зарегистрироваться как владелец
Готово, настроек там не так много, поэтому не буду на них останавливаться.
Подключаем Memos к нашему домену и получаем SSL сертификат
Продолжаем если у нас настроена А запись в DNS
apt install nginx
Создаем конфиг (далее по примеру замените site.ru на свое доменное имя):
nano /etc/nginx/sites-available/memos.site.ru
Добавляем туда содержимое ниже, вам нужно заменить директиву server_name memos.site.ru; на свое доменное имя, а в proxy_pass http://localhost:5230; указать свой порт сервиса если вы меняли его:
server { listen 80; server_name memos.site.ru; location / { proxy_pass http://localhost:5230; 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; } }
ln -s /etc/nginx/sites-available/memos.site.ru /etc/nginx/sites-enabled/
Перезагружаем Nginx и проверяем в браузере доступность по доменному имени http://memos.site.ru:
systemctl restart nginx
Если все открывается, идем далее и получаем SSL сертификат
Выпуск SSL сертификата с помощью Certbot
Установим Certbot для выпуска SSL сертификата на наше доменное имя:
apt install certbot python3-certbot-nginx
И выпустим сам SSL сертификат данной командой (замените данные на свои):
certbot --non-interactive -m [email protected] --agree-tos --no-eff-email --nginx -d memos.site.ru
systemctl restart nginx
Если все прошло успешно, то Certbot сам добавит редирект с 80 на 443 порт и данные по сертификату в конфиг который мы создали до этого /etc/nginx/sites-available/memos.site.ru, заходим в браузер и проверяем теперь https://memos.site.ru
Как получить API от Chat GPT и настроить в Memos
Если вы не зарегистрированы на сайте Open AI — вам сюда.
Если вы уже зарегистрированы на сайте Open AI, то включаем VPN, приходим по этой ссылке и заходим в свой профиль, далее нас интересует пункт View API keys
Заходим в него и жмем Create new secret key, далее копируем содержимое в окне и идем в наш Memos, переходим в Настройки-Системные-OpenAi API Key вставляем туда наше содержимое и нажимаем Сохранить
Далее в пункте меню Ask AI можем задавать вопросы нашему Chat GPT, работает кстати получше чем на оф. сайте, ответы дает достаточно быстро и дописывает до конца.
Вывод
В данной заметке мы разобрали установку и подключение Chat GPT к Memos, надеюсь ребята будут и дальше развиваться и не превратятся в огромный тяжелый комбайн с кучей ненужных наворотов
Что бы не потерять инструкцию рекомендую подписаться на мой личный блог-канал в Telegram в котором я делюсь в формате заметок своими знаниями и интересным из мира IT или посетить мой сайт от куда и взята статья, спасибо за потраченное время на чтение и доброго времени суток!)