IT
March 14, 2023

Установка Self Hosted сервиса для заметок Memos со встроенным Chat GPT в Docker.

Установка 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

Установим Nginx:

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

Жмем на свой профиль в верхнем правом углу и выбираем OpenAi API Key

Заходим в него и жмем Create new secret key, далее копируем содержимое в окне и идем в наш Memos, переходим в Настройки-Системные-OpenAi API Key вставляем туда наше содержимое и нажимаем Сохранить

Подготовка к работе с Chat Gpt прямо из Memos

Далее в пункте меню Ask AI можем задавать вопросы нашему Chat GPT, работает кстати получше чем на оф. сайте, ответы дает достаточно быстро и дописывает до конца.

Я пытался

Вывод

В данной заметке мы разобрали установку и подключение Chat GPT к Memos, надеюсь ребята будут и дальше развиваться и не превратятся в огромный тяжелый комбайн с кучей ненужных наворотов

Что бы не потерять инструкцию рекомендую подписаться на мой личный блог-канал в Telegram в котором я делюсь в формате заметок своими знаниями и интересным из мира IT или посетить мой сайт от куда и взята статья, спасибо за потраченное время на чтение и доброго времени суток!)