Команда инженеров · свой ЦОД в РФ · своё железо · своя панель · CloudStack + Linstor · MCP · база знаний по self-hosted
Обновлено 16 октября 2026 г.
Продуктивность и планирование

Memos

Memos - аналог Google Keep на своем сервере для коротких заметок, ссылок и рабочего лога. В Evernote Free доступны 50 заметок и одно устройство. Memos не берет плату за заметки и пользователей; сервер и резервные копии оплачиваются отдельно. Развернули 0.31.0 на Fatmetal Cloud Server, замерили память и проверили доступ участников, обновление базы и перенос записей.

Проверено на версии v0.31.0, 16 октября 2026~11 минут чтенияFatmetal Team
Личные заметкиЛицензия: MITMemos 0.31.0

Вердикт

Подходит
  • Сохраняете себе ссылки в мессенджере, а потом не помните, зачем они понадобились
  • Ведете ежедневный рабочий лог и хотите находить записи по тегу и дате
  • Делитесь выбранными заметками с участниками отдельного пространства
Не подходит
  • Нужен прямой импорт из Evernote: Memos не поддерживает формат ENEX
  • Ждете от личных заметок секретности от администратора сервера
  • Нужна документация с деревом страниц и совместной правкой
Рекомендуем: CPU2-RAM4-DISK50Сложность: средняяЗапуск контейнеров: около 8 сГлавный риск: доверие администратору
Личная лента

Аналог Google Keep на своем сервере

Memos переносит привычку сохранять сообщения в «Избранное» Telegram на свой сервер. Вы открываете ленту, пишете короткую заметку и сохраняете ее. Не нужно придумывать заголовок, выбирать блокнот или заводить структуру папок.

Вставьте ссылку и допишите, зачем она нужна. Добавьте #избранное или #работа прямо в текст: тег появится в боковой панели. Нажатие оставит в ленте подходящие записи.

Markdown оформляет списки, ссылки и блоки кода. Чек-лист подходит для дел после встречи, свободный текст - для дневника решений. Длинную инструкцию удобнее вынести в отдельную базу знаний.

Личная лента: ссылки с контекстом, чек-лист и рабочий лог; единый сайдбар 0.31.0.
Личная лента: ссылки с контекстом, чек-лист и рабочий лог; единый сайдбар 0.31.0.

Русский язык выбирается в настройках аккаунта: «Настройки» → «Настройки» → язык. На снимках работают русские меню, поиск по тегам и календарь; изменение языка браузера само по себе язык аккаунта не меняет.

Фильтр по тегу «избранное»: личная закладка и доступная запись пространства.
Фильтр по тегу «избранное»: личная закладка и доступная запись пространства.
Версия 0.31.0

Что изменилось с прошлого разбора

Предыдущая статья от 14 сентября описывала 0.30.0. Релиз 0.31.0 от 19 сентября меняет работу с общими записями и перенос данных.

Было в 0.30.0Стало в 0.31.0
Общая лента без SpacesПространства с участниками и видимостью SPACE
Прежние экраны и ShortcutsЕдиный сайдбар, Calendar/Map и Views
Импорт/экспорт описывались как WIPЛичный ZIP с заметками и вложениями
Доступ зависел от адреса экземпляраОтдельная настройка ACCESS
RSSУдален из продукта

Приглашенный участник получил доступ к Space только после принятия приглашения. Чужая PRIVATE-запись для обычного пользователя вернула 403. Как устроены права администратора, разобрано в ограничениях ниже.

На копии базы 0.30.0 обновление сохранило пароль, текст и вложение. В цикле этого релиза также исправлены SSRF-проверки, отзыв сессий и обработка файлов; детали - в таблице уязвимостей.

Пространство «Рабочий поток»: общие ссылки и задачи участников.
Пространство «Рабочий поток»: общие ссылки и задачи участников.
Сравнение

Чем отличается от Evernote, Keep и Obsidian

За Memos платят временем на сервер, обновления и резервные копии. Это выбор способа хранения, а не автоматическая экономия: базовые Google Keep и «Избранное» Telegram отдельной подписки не требуют.

ПродуктЦена и данныеКогда удобнее
MemosПО бесплатно, MIT; данные на вашем сервереНовая коллекция коротких заметок с тегами и API
Google Keep / TelegramБазовые заметки без отдельной платы; облако платформыУже пользуетесь приложением и не хотите обслуживать сервер
Evernote Free50 заметок, одно устройствоДокументы организованы в блокноты
ObsidianЛокальное приложение бесплатно; Sync от 4 $/мес при оплате за годНужен набор Markdown-файлов на своем компьютере

Цены и лимиты сверены 16 октября по Memos, Evernote и Obsidian. Sync помесячно стоит 5 $, отдельный Publish - 8 $ за сайт при годовой оплате или 10 $ помесячно.

Memos открывается по-русски и размещается на российском сервере с рублевой оплатой. У Obsidian справка оплаты перечисляет Stripe, PayPal, WeChat и Alipay. Покупку подписки из РФ эта инструкция не гарантирует.

Memos не синхронизирует Obsidian vault. Польза здесь другая: одна браузерная лента доступна с ваших устройств, а сервер и резервные копии находятся под вашим управлением.

Устройство и ресурсы

Один контейнер хранит заметки, Caddy принимает HTTPS

В образе Memos находятся Go-сервер, API и React-интерфейс. SQLite пишет базу в /opt/memos/data/memos_prod.db; выбранное локальное хранилище складывает файлы в /opt/memos/data/assets.

Оба каталога переживают пересоздание контейнера. Поэтому резервная копия должна включать базу и вложения вместе. Предположение прежней статьи о хранении всех вложений внутри SQLite к этому рецепту неприменимо.

Go + ReactSQLiteLOCAL assetsDocker ComposeCaddy 2.11.7

У Memos нет заявленного численного минимума RAM. Проверенная конфигурация - CPU2-RAM4-DISK50: 2 vCPU, 4 ГБ памяти, Ubuntu 24.04. Ресурсы здесь выбираются по наблюдаемому сценарию заметок и экспорта, а не числу сотрудников.

Caddy открывает порты 80 и 443, а приложение слушает только localhost:5230. Без такой привязки посетитель сможет обращаться к приложению в обход HTTPS-прокси.

В маркетплейсе Fatmetal

Не хотите ставить руками?

Этот стек есть в маркетплейсе Fatmetal - можно не повторять установку из этого разбора вручную. Заказываете сервер, за пару минут получаете рабочий сервис на своем домене, валидный TLS и файл с доступами.

Рекомендуемая конфигурация:
2 vCPU · 4 ГБ RAM · 50 ГБ NVMe от 450 ₽/мес

Развернуть в 1 клик →
Установка

Развертывание на Fatmetal Cloud Server

На чистой Ubuntu 24.04 направьте домен на сервер и откройте 80/443. Подойдет и имя IP-с-дефисами.fatmetal.net. Замените «ваш-домен» в командах.

В SSH выполните sudo -i. На компьютере откройте второй терминал с туннелем:

ssh -L 5230:127.0.0.1:5230 пользователь@сервер
  1. Установите Docker из официального репозитория

    Compose запускает оба сервиса одним файлом.

    apt-get update
    apt-get install -y ca-certificates curl
    install -m 0755 -d /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
    chmod a+r /etc/apt/keyrings/docker.asc
    echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu noble stable" > /etc/apt/sources.list.d/docker.list
    apt-get update
    apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  2. Создайте Compose-файл

    Тег фиксирует версию при скачивании.

    mkdir -p /opt/memos/data /opt/memos/caddy_data
    cd /opt/memos
    cat > compose.yml <<'YAML'
    services:
      memos:
        image: neosmemo/memos:0.31.0
        container_name: memos
        restart: unless-stopped
        ports: ["127.0.0.1:5230:5230"]
        volumes: ["/opt/memos/data:/var/opt/memos"]
        environment:
          MEMOS_INSTANCE_URL: https://ваш-домен
      caddy:
        image: caddy:2.11.7
        restart: unless-stopped
        network_mode: host
        volumes: ["/opt/memos/Caddyfile:/etc/caddy/Caddyfile:ro", "/opt/memos/caddy_data:/data"]
    YAML
  3. Сначала запустите только Memos

    Пока прокси выключен, аккаунт нельзя перехватить снаружи.

    cd /opt/memos
    docker compose up -d memos
  4. Создайте администратора через закрытое соединение

    В браузере откройте http://localhost:5230 и создайте первый аккаунт с собственным паролем.

    При английском меню выберите Settings → Preferences → English → Русский. Затем откройте «Система». Включите «Запретить регистрацию пользователей», выключите «Разрешить публичный доступ» и нажмите «Сохранить».

  5. Откройте HTTPS после настройки доступа

    Caddy выпускает сертификат по имени.

    cd /opt/memos
    printf 'ваш-домен {\n  reverse_proxy 127.0.0.1:5230\n}\n' > Caddyfile
    docker compose up -d caddy

Дождитесь сертификата: docker compose logs --tail=30 caddy. Войдите по HTTPS, сохраните заметку и обновите страницу. Затем закройте SSH-туннель.

Системные настройки администратора: закрытая регистрация и доступ к экземпляру.
Системные настройки администратора: закрытая регистрация и доступ к экземпляру.
Замеры

Сколько памяти нужно заметкам и вложениям

На стенде CPU2-RAM4-DISK50 работали Memos 0.31.0, Caddy 2.11.7, Docker 29.9.1 и Compose 5.6.0. Память контейнеров учтена без файлового кэша; память хоста включает ОС.

Простой после перезапускаОколо 30 МиБ: Memos 17,5 / Caddy 12,1
Хост вместе с ОС и Docker533 МиБ
Образы Memos / CaddyОколо 100 / 89 МиБ
Холодное скачивание двух образов13 с
Повторный запуск до HTTP 2009 с
Список заметок через HTTPS42 мс

Создание ста заметок заняло 7,5 с. Затем добавили текстовое вложение на 10 МиБ и выгрузили личный ZIP. Данные приложения выросли с 0,25 до 12,6 МиБ, включая журнал SQLite.

При этих операциях память Memos поднялась до 82,5 МиБ и оставалась такой спустя 15 секунд. После перезапуска она вернулась к значению в таблице. Поэтому размер простоя не стоит считать расходом при работе.

i

Выбор сервера. Проверенный сценарий помещается в CPU2-RAM4-DISK50 с запасом. Вложения увеличивают объем данных на размер файлов; сто коротких записей требуют заметно меньше места.

Проверено на Memos 0.31.0, 16 октября 2026. На других версиях результаты могут отличаться.

Диагностика

Где может сломаться

PUBLIC-заметки открываются без входа

Причина. Адрес MEMOS_INSTANCE_URL не выключает публичный доступ в 0.31.0.

Решение. «Настройки» → «Система» → выключить «Разрешить публичный доступ». Закрытие регистрации - отдельный переключатель. Нажмите «Сохранить», затем обновите страницу и убедитесь, что изменения остались.

HTTP 429: too many certificates for this exact set of identifiers

Причина. На повторно выданном IP исчерпана недельная квота сертификатов для того же имени.

Решение. Посмотрите срок retry after: docker compose logs --tail=100 caddy. До этого срока используйте закрытый SSH-туннель или свой домен с A-записью на сервер; после смены имени поправьте MEMOS_INSTANCE_URL и Caddyfile, выполните docker compose up -d --force-recreate.

Меню остается английским при русском языке браузера

Причина. После входа применяется настройка аккаунта.

Решение. Выберите русский в «Settings» → «Preferences», затем обновите страницу. У каждого пользователя своя локаль.

Состояние сервисов видно через cd /opt/memos && docker compose ps, ошибки приложения - через docker compose logs --tail=100 memos. Статус Up сам по себе не заменяет вход и сохранение заметки.

Эксплуатация

Как сохранить данные и обновить Memos

Персональный ZIP находится в «Настройки» → «Экспорт и импорт». Он переносит ваши записи и вложения: на отдельном экземпляре импорт сохранил текст и совпадающие байты файла.

Персональный ZIP-экспорт и импорт заметок: новый экран Memos 0.31.0.
Персональный ZIP-экспорт и импорт заметок: новый экран Memos 0.31.0.

Полный бэкап нужен отдельно: он сохраняет пользователей, настройки и весь каталог данных. Следующие команды выполняйте в root-сессии. Остановка Memos дает согласованную копию SQLite и вложений.

cd /opt/memos
docker compose stop memos
tar czf /root/memos-backup.tgz data compose.yml Caddyfile
docker compose start memos

На своем компьютере скачайте архив через SSH. Храните его отдельно от VM: внутри закрытые заметки и настройки доступа.

umask 077
ssh пользователь@сервер 'sudo -n cat /root/memos-backup.tgz' > memos-backup.tgz

Для восстановления сначала загрузите архив с компьютера:

cat memos-backup.tgz | ssh пользователь@сервер 'sudo -n tee /root/memos-backup.tgz >/dev/null'

Затем на сервере сохраните текущий каталог отдельно и распакуйте копию:

cd /opt/memos
docker compose stop memos
mv data "data-before-restore-$(date +%s)"
tar xzf /root/memos-backup.tgz
docker compose up -d

Перед обновлением сделайте такой бэкап, замените тег в compose.yml и выполните docker compose pull, затем docker compose up -d. Для перехода с 0.30.0 на проверенную версию замените neosmemo/memos:0.30.0 на neosmemo/memos:0.31.0.

После миграции проверьте вход, старую PRIVATE-заметку, скачивание вложения и оба переключателя «Системы». При откате возвращайте прежнюю базу вместе с прежним образом: старому бинарю не следует отдавать уже обновленную схему.

Безопасность

Уязвимости прошлых версий

В 0.31.0 исправленные компоненты уже обновлены. Владельцу старой установки следует сделать бэкап и перейти на эту версию по командам выше.

БюллетеньСерьезность и диапазонИсправление и смысл
CVE-2026-39829High, 7,5; x/crypto/ssh до 0.52.0В Memos 0.30.0 модуль 0.50.0, в 0.31.0 - 0.56.0. Исправлен CPU DoS в SSH-проверке ключей; достижимость этого пути в Memos не установлена.
CVE-2024-21635Low; Memos до 0.18.1 включительноИсправлено в 0.18.2: токены переживали смену пароля. Для 0.30.0 это уже не открытая проблема.

Отдельно усилены проверки адресов webhook, включая CGNAT. SSRF - это попытка заставить сервер обращаться к внутренним сетевым адресам.

Другие исправления отзывают refresh-сессии после смены пароля и ограничивают обработку изображений, HTTP-ответов и импорта. Отдельная severity для них не опубликована.

Рядом

Как добавить заметки в свои инструменты

REST API позволяет записывать рабочий лог из скрипта. Пример создания PRIVATE-заметки проверен через публичный HTTPS. Получите персональный токен в «Настройки» → «Токены доступа» и сохраните его как пароль.

read -rsp 'Токен Memos: ' MEMOS_TOKEN; echo
curl -fsS https://ваш-домен/api/v1/memos \
  -H "Authorization: Bearer $MEMOS_TOKEN" -H 'Content-Type: application/json' \
  -d '{"content":"Проверка резервной копии завершена #работа","visibility":"PRIVATE"}'
unset MEMOS_TOKEN
  • BookStack или Docmost - когда заметка превращается в инструкцию с разделами и постоянным адресом.
  • n8n - отправка записи HTTP-запросом из собственного сценария; токен дает сценариям доступ от вашего имени.
Календарь заметок в новой навигации Memos 0.31.0.
Календарь заметок в новой навигации Memos 0.31.0.
Ограничения

Когда это НЕ ваш выбор

Администратору нельзя доверять содержание записей

В 0.31.0 ADMIN прочитал чужую PRIVATE-заметку и SPACE-запись, не будучи участником пространства. PRIVATE изолирует обычных пользователей, но не администратора; серверное размещение не дает сквозного шифрования.

Нужен прямой импорт из Evernote

Memos не поддерживает формат ENEX. ZIP-перенос работает между экземплярами Memos и не заменяет импорт из Evernote или синхронизацию Markdown-хранилища Obsidian.

Заметки должны стать корпоративной wiki

Spaces дают общий поток, а не дерево документации и совместное редактирование страницы. Если нужны эти механики, выбирайте систему базы знаний.

Голосовой ввод должен работать без внешнего провайдера

Необязательная транскрипция требует своего ключа; основной сценарий заметок работает без него. Для внешних API на VPS Fatmetal доступен прокси http://api-proxy.fatmetal.net:8080, включенный в сервер; поддержку конкретного провайдера выбирают отдельно, в этом рецепте транскрипция не настроена.

FAQ

Частые вопросы

Нужен отдельный PostgreSQL?

Для показанного рецепта - нет. SQLite работает внутри Memos, сохраняется в каталоге data и пережил обновление с 0.30.0.

Как сделать общий поток?

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

Достаточно запретить регистрацию?

Нет. Чтобы закрыть публичную ленту, дополнительно выключите «Разрешить публичный доступ» в разделе «Система» и сохраните изменения.

Где лежит загруженный файл?

В этом рецепте - в /opt/memos/data/assets. Запись о вложении хранится в базе; бэкап включает весь data, а не один файл SQLite.

Почему после обновления не работает старый скрипт?

В 0.31.0 изменились API Views и reactions, обработка регистра usernames и хранилищ. Сверьте используемые методы с релизом перед переключением рабочего экземпляра.

За что платить самому Memos?

На дату проверки программа распространяется по MIT без платных модулей и лицензионного ключа. Вы оплачиваете размещение и обслуживание сервера.

Итог

Memos подходит для новой коллекции мыслей, ссылок и рабочего лога: быстро записали, добавили контекст, нашли по тегу. В 0.31.0 выбранными записями можно делиться через Space, а личный архив - переносить ZIP-файлом.

Рекомендуемая конфигурация для установки:
2 vCPU · 4 ГБ RAM · 50 ГБ NVMe

Не хотите устанавливать вручную?

Запустите Memos на этой конфигурации автоматически - от 450 ₽/мес.

Запустить Memos →
Анонсы новых разборов в Telegram-канале Новые гайды и карточки в маркетплейсе первыми @fatmetal_channel →

Этот стек у нас запущен на тарифе CPU2-RAM4-DISK50. Нашли баг в гайде - напишите, поправим в течение дня.