MAATRIX / Блог / Memos в команде: либо спасают рутину, либо дублируют вики

Memos в команде: либо спасают рутину, либо дублируют вики

MAATRIX

У команды уже стоит вики — Outline, Docmost или что-то похожее, там регламенты, архитектура, онбординг. И тут кто-то предлагает: «а давайте ещё Memos поставим, для быстрых заметок». Первая реакция обычно «зачем нам второй инструмент для текста, у нас уже есть вики» — и реакция небезосновательная. Но через пару недель после того, как Memos всё-таки подняли, выясняется, что половина команды пишет туда статусы и мысли каждый день, а в вики за то же время никто ничего не открывал. Дальше есть два сценария: либо Memos закрыл дыру, которую вики закрыть не может в принципе, либо в компании появилось два места для заметок и путаница «где искать» вместо одной. Разберём честно, когда это первое, а когда второе.

Что такое Memos и почему это не альтернатива вики

Memos (open source, MIT, репозиторий usememos/memos) — self-hosted сервис для быстрой фиксации коротких заметок, написанный на Go с фронтендом на React и SQLite как хранилищем по умолчанию. Позиционирование разработчиков предельно конкретное: быстро зафиксировать мысль, без обязательного заголовка, без выбора папки, без формы «создать документ». Открыли — написали пару строк в Markdown — сохранили, и заметка легла в общую хронологическую ленту.

Модель данных у Memos принципиально плоская, и это ключевое отличие от любой вики. В Outline, Docmost или Wiki.js документ — это узел в дереве: у него есть родитель, дочерние страницы, путь. В Memos нет ни страниц, ни вложенности — есть лента отдельных заметок, которые можно тегировать (#incident, #idea, #daily), закреплять (pin) и снабжать вложениями (картинки, файлы). Поиск по тексту и тегам — единственный способ навигации, дерева папок не существует в принципе, это не ограничение текущей версии, а осознанное архитектурное решение. Если сравнивать с другими self-hosted инструментами заметок — например, у Trilium дерево заметок с неограниченной вложенностью — это заметно другая философия (разбор Trilium против Joplin Server показывает, для какого сценария нужна именно иерархия). Memos сознательно отказался от иерархии в пользу скорости захвата мысли.

Отдельная вещь: у Memos есть встроенный REST- и gRPC-API, вебхуки и MCP-интеграция для ИИ-агентов, плюс расширение-клиппер для Chrome и Firefox, которое сохраняет выделенный текст со страницы прямо в Memos как черновую заметку. Для команды, которая уже что-то автоматизирует вокруг вики или чат-бота, это может оказаться полезнее самого веб-интерфейса — заметки как API-ресурс, а не только как страница в браузере.

Как это разворачивается на своём сервере

Технически Memos — один из самых лёгких self-hosted сервисов такого класса именно потому, что по умолчанию не тянет за собой отдельную СУБД. Официальный образ запускается одной командой:

docker run -d --name memos \
  -p 5230:5230 \
  -v ~/.memos/:/var/opt/memos \
  neosmemo/memos:stable

Порт по умолчанию — 5230, данные (включая SQLite-базу memos_prod.db) лежат в volume /var/opt/memos. Дальше это заводится за reverse proxy (nginx или Traefik) с TLS точно так же, как любой другой self-hosted сервис на VPS.

Конфигурация делается через переменные окружения с префиксом MEMOS_:

MEMOS_MODE=prod
MEMOS_PORT=5230
MEMOS_DATA=/var/opt/memos
MEMOS_DRIVER=sqlite        # по умолчанию; альтернативы — mysql, postgres
# для postgres, например:
# MEMOS_DRIVER=postgres
# MEMOS_DSN="postgres://memos_user:password@db:5432/memos?sslmode=disable"

Если оставить MEMOS_DRIVER=sqlite (значение по умолчанию), весь инстанс — это один Go-бинарник и один файл базы данных. Никакого отдельного контейнера с Postgres, никакого обязательного Redis, никакого требования к S3-хранилищу — в отличие от Outline, который без S3-совместимого бэкенда вложения вообще не примет (мы разбирали это ограничение при переезде с Outline на Docmost). У Memos вложения (resources) можно хранить в самой базе данных, локально на диске или в S3-совместимом хранилище — выбор настраивается на уровне инстанса, а не навязывается архитектурой.

Точных цифр по RAM разработчики не публикуют, и приводить конкретные мегабайты было бы гаданием — на практике Go-бинарник с SQLite ощутимо легче, чем связка приложение + Postgres + Redis у более тяжёлых self-hosted вики-платформ, но опирайтесь на собственный тест на минимальном тарифе, а не на чужие прикидки.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать VPS

Где Memos реально незаменим: фиксация без церемонии страницы

Вот сценарий, который проверяется легко: откройте вашу вики прямо сейчас и засеките, сколько кликов и полей нужно пройти, чтобы записать одну случайную мысль — «не забыть спросить у клиента про домен» или «баг воспроизводится только на iOS 18, разобраться завтра». Обычно это: открыть вики → выбрать коллекцию или пространство → нажать «создать документ» → придумать заголовок → написать одну строку → сохранить. Пять-шесть действий ради одной строки текста. На практике это трение означает одно — мысль чаще всего просто не записывается, и информация теряется.

Memos закрывает именно эту дыру, а не конкурирует с вики за структурированный контент:

  • Личный рабочий лог. Что сделал за день, в каком статусе задача, что нужно проверить завтра — без обязательства оформлять это как документ. Заметка без заголовка и без выбора раздела — то, что нужно, чтобы фиксация вообще происходила.
  • Черновик перед постмортемом. Хронология инцидента по горячим следам — заметка за заметкой, с меткой времени, пока событие свежо в памяти — а уже потом, на следующий день, кто-то оформляет из этого нормальный документ в вики. Захват в моменте важнее идеальной структуры.
  • Статусы, видимые команде, но не всему интернету. Уровень видимости PROTECTED — заметку видят все залогиненные пользователи инстанса, но не анонимные посетители — закрывает ровно тот случай, когда нужно «написал — коллеги увидели», без настройки прав доступа как для полноценной вики-страницы.
  • Захват ссылок и идей на лету. Через браузерное расширение-клиппер — выделили текст на странице, сохранили как заметку с исходной ссылкой, разобрали позже. Отдельного шага «открыть вики и создать страницу» здесь просто нет.
  • Быстрые команды и сниппеты, которые не тянут на отдельную вики-страницу, но регулярно нужны под рукой — тег #snippets, поиск по тексту, и не нужно продумывать, в какую коллекцию это положить.

Общий принцип простой: если решение о том, писать ли заметку, принимается за секунды, заметка появится. Если решение требует выбрать раздел вики и придумать заголовок — чаще всего заметка не появится вообще, и вы теряете не формат, а сам факт фиксации.

Spaces — командный слой Memos, но не вики

В Memos есть механизм Spaces — общее пространство внутри инстанса, к которому можно пригласить конкретных участников. Здесь стоит быть осторожным с ожиданиями, потому что название звучит похоже на «пространство» в Docmost, но по факту это устроено иначе.

Space создаётся через переключатель пространств («Create Space», имя и опциональное описание), создатель автоматически становится первым админом. Дальше в Space приглашаются уже существующие аккаунты на инстансе — это не email-приглашение и не публичная регистрация, а именно добавление известного пользователя с ролью «User» или «Admin». Приглашение не даёт доступа, пока получатель его не примет.

Дальше — ключевой момент, который определяет, годится Space как замена вики-команде или нет: каждая заметка либо не привязана ни к одному Space, либо привязана ровно к одному, без вложенности, без подпространств. И, что важнее, Space не даёт совместных прав на редактирование — только автор заметки может менять её содержимое, видимость, вложения и ссылки для шаринга. Роль «Space Admin» управляет составом участников и самим пространством, но не чужими заметками. Это принципиально другая модель, чем страница вики, которую могут совместно редактировать несколько человек с историей правок.

Иначе говоря, Space в Memos — это общий обзор чужих заметок с сохранением личного авторства, а не совместный документ. Для командного статус-фида это ровно то, что нужно. Для регламента, который редактируют и уточняют несколько человек по мере изменений процесса, — нет: там нужна модель вики со страницами, версиями и правами уровня документа, а не уровня заметки.

Где Memos начинает дублировать вики и путать команду

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

Инструкция уходит из вики в заметку. Кто-то торопится и вместо того, чтобы обновить существующую страницу «Как развернуть сервис X» в вики, быстро набрасывает актуальный шаг в Memos — быстрее, не нужно искать нужную страницу и разбираться в её текущей структуре. Через месяц страница в вики устарела, а рабочая версия инструкции существует только в виде заметки с тегом, которую ещё нужно найти. Новый сотрудник открывает вики, находит устаревший текст, следует ему и получает не тот результат.

Источник правды раздваивается. Когда в компании возникает вопрос «где искать актуальную информацию про X», хороший ответ — один конкретный адрес. Если ответ «либо в вики, либо в Memos, зависит от того, кто и когда это писал» — поиск занимает вдвое больше времени, и результат в половине случаев неполный, потому что человек проверил только один источник.

Публичность настраивается по умолчанию неаккуратно. Уровни видимости в Memos — PRIVATE (только автор), PROTECTED (любой залогиненный на инстансе), PUBLIC (доступно анонимным посетителям, если инстанс переведён в публичный режим) и SPACE (участники конкретного Space). Публичные заметки дополнительно попадают в общую ленту Explore инстанса и на публичный профиль автора — то есть находятся не только по прямой ссылке. Заметка, которую хотели показать «только команде» и по невнимательности оставили с публичной видимостью, может утечь наружу — специфика формата в том, что заметки пишутся быстро, и на проверку видимости перед сохранением обычно не хватает внимания. В вики порог для публикации наружу выше — это осознанный отдельный шаг, а не поле, которое можно случайно не заметить в спешке.

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

Как провести границу на практике: одно рабочее правило

Правило, которое реально работает в командах, использующих оба инструмента одновременно, формулируется просто: если информация должна пережить момент, когда её написали, — это вики; если ценность заметки исчерпывается днём-двумя — это Memos. Регламент, архитектурное решение, инструкция по деплою, ответ на «как это делается» — идёт в вики и там же обновляется. Статус, мысль, черновик, ссылка на разобрать позже — идёт в Memos и не претендует на долгую жизнь.

Практический процесс, чтобы это правило не оставалось декларацией:

  • Тег-маркер для «созревших» заметок. Заведите тег вроде #promote или #в-вики для заметок, которые перестали быть черновиком и превратились в кандидата на постоянную страницу. Раз в неделю кто-то один просматривает заметки с этим тегом и переносит содержимое в вики — руками, потому что автоматического экспорта из Memos в конкретную вики-платформу нет: структура документа (родитель, права доступа, форматирование) требует решений, которые не принимаются автоматически.
  • После переноса — заметку в архив, а не оставлять как есть. Если оригинал остаётся публично видимым в Memos с тем же текстом, что и в вики, вы снова получаете два источника вместо одного. Проще всего — перевести заметку в PRIVATE после переноса: она остаётся в личной истории автора, но перестаёт быть тем местом, где команда её случайно найдёт вместо актуальной вики-страницы.
  • Default-видимость — консервативный. Заведите привычку по умолчанию писать в PRIVATE или PROTECTED, а PUBLIC и SPACE включать осознанно для конкретной заметки, а не потому что «так было настроено с установки». Особенно если у инстанса включён публичный режим и лента Explore — там любая заметка, отмеченная как публичная, обнаруживается не только по прямой ссылке.
  • Теги вместо структуры — но с конвенцией. Раз в Memos нет папок, роль минимальной структуры играют теги. Без договорённости («статусы — #daily, инциденты — #incident, идеи — #idea») лента быстро превращается в нечитаемый поток, где теги использует каждый по-своему и поиск ничего не находит.
  • Space — для командной ленты, не для документации. Используйте Space как способ показать команде поток личных заметок и статусов, а не как замену коллекции в вики. Как только в Space начинает жить контент, который нужно совместно редактировать и держать актуальным месяцами, — это сигнал переносить его в вики, а не заводить более сложную структуру внутри Memos.

Этого достаточно, чтобы два инструмента не спорили за одну и ту же информацию, а закрывали разные по природе задачи — быстрый захват момента и надёжное хранение того, что должно быть найдено через полгода.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать VPS

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.

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

Может ли Memos полностью заменить вики маленькой команде, чтобы не держать два сервиса?

Нет — у Memos нет совместного редактирования одной заметки несколькими людьми, нет вложенности страниц и нет модели прав на уровне документа. Для регламентов и инструкций, которые нужно поддерживать в актуальном состоянии месяцами, это ограничение критично, даже если команда состоит из трёх-четырёх человек.

Сколько ресурсов реально нужно под Memos на VPS?

Разработчики не публикуют точных цифр по памяти и CPU, и приводить конкретные мегабайты было бы гаданием. На практике один Go-бинарник с SQLite — это заметно легче, чем связка приложение + отдельная СУБД + очередь у более тяжёлых self-hosted инструментов, но проверяйте на минимальном тарифе конкретно под свою нагрузку, а не по чужим ориентирам.

Как бэкапить Memos, если всё хранится в SQLite?

При MEMOS_DRIVER=sqlite вся база — один файл в volume /var/opt/memos, его достаточно копировать по расписанию (например, cron + rsync или снапшот тома). Если переключились на mysql или postgres, бэкапить нужно штатными средствами соответствующей СУБД (mysqldump/pg_dump), а не файлом. Вложения, если вынесены в S3-совместимое хранилище отдельно от базы, бэкапятся отдельно от неё.

Что будет, если случайно поставить заметке видимость Public?

Такая заметка не просто доступна по прямой ссылке анонимным посетителям (если инстанс переведён в публичный режим) — она дополнительно попадает в общую ленту Explore инстанса и на публичный профиль автора, то есть её можно найти, даже не зная ссылки заранее. Стоит держать инстанс не в публичном режиме, если для этого нет отдельной осознанной задачи, и не полагаться на то, что «просто никто не найдёт».

Стоит ли переносить существующие заметки из Trilium или Joplin Server в Memos?

Обычно нет смысла — это инструменты с принципиально разной моделью (иерархия и вложенность у Trilium и Joplin против плоской ленты у Memos), созданные для разных сценариев использования, а не конкурирующие версии одного и того же. Проще держать их для разных задач, чем пытаться перегнать контент из структурированного инструмента в неструктурированный и обратно.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →