Проверен полностью64 027

Управление знаниями

Memos

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

Вместо Google KeepMITВерсия 0.31.0

Обзор

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

Memos — веб-блокнот с Markdown, чек-листами, тегами, поиском и вложениями. Подходит для личных записей, домашних справочников, заметок о прочитанном и небольших общих пространств. Заменяет сценарий коротких заметок Google Keep; полноценного офисного пакета здесь нет. В браузере доступны русский и английский языки, светлая и тёмная темы и установка как веб-приложения. Сторонние нативные клиенты не входят в рецепт.

Официальный образ neosmemo/memos:0.31.0 использует SQLite и локальные вложения в одном постоянном томе. Планируйте одно ядро CPU, 256 МБ RAM (рекомендуется 512 МБ) и 1 ГБ диска плюс вложения. Это ориентиры для планирования, а не нагрузочный тест. Проверена amd64; arm64 есть в образе, но здесь не запускалась.

Приватность и вход

CVE образа не сканировались; в манифесте записано unknown. SMTP, SSO, внешнее хранилище и интеграция с обратным прокси не проверялись.

Рецепт монтирует штатную конфигурацию развёртывания: доступ к инстансу PRIVATE, публичная регистрация закрыта. Первый посетитель всё равно может создать администратора. Сделайте это через loopback или SSH-туннель до открытия HTTPS-прокси. Последующие аккаунты создаёт администратор.

Сквозного шифрования приватных заметок нет. Администраторы инстанса могут читать и изменять их, а токен ссылки может дать доступ своему владельцу. Защищайте том, ограничивайте число администраторов и шифруйте внешние копии. OAuth2-провайдеры, в том числе с OpenID scopes, поддерживаются штатно; рецепт настраивает только вход по паролю. SAML, встроенной двухфакторной аутентификации и входа по заголовку прокси нет.

Эксплуатация и ограничения

Резервное копирование останавливает запись и сохраняет весь том: SQLite, локальные вложения и постоянные секреты инстанса. Личный экспорт не включает других пользователей и настройки инстанса и не заменяет копию сервера. Полный smoke-тест amd64 создаёт администратора и приватную заметку, загружает файл, проверяет отказ анонимному посетителю, удаляет том и восстанавливает заметки и содержимое файла.

Лицензия Memos — MIT. Версия 0.31 меняет API, убирает RSS и расширяет доступ администратора; читайте примечания перед обновлением. Для отката сохраняйте архив до обновления и соответствующую версию. У рецепта 0.x интервал повторной проверки 30 дней: API и права могут меняться между минорными релизами.

Источники: документация, релиз v0.31.0, конфигурация развёртывания, лицензия. Локальный SVG-знак взят из официального favicon и перекрашен для карточки каталога.

Отслеживание обновлений

Это сохранённые результаты отдельных проверок, а не данные в реальном времени. Неизвестный статус означает, что проверка ещё не выполнялась.

Новые релизы

Сравнение версии рецепта с последним известным релизом upstream. Это номер версии, а не разбор изменений.

Актуальная версия 0.31.023 окт. 2026 г., 22:18 UTC

Критические уязвимости

Результат отдельного сканирования Docker-образов, а не проверки Compose.

Не провереноПроверка не выполнялась

Несовместимые обновления

Новый major находится сравнением номеров версий. Вердикт о совместимости заносится вручную после чтения release notes и порядка миграции.

Не провереноПроверка не выполнялась

compose.yaml

Изменения upstream Compose относительно проверенного рецепта.

Upstream Compose не отслеживаетсяПроверка не выполнялась

Устаревшие Docker-образы

Проверка закреплённых тегов образов на наличие новых версий.

Не провереноПроверка не выполнялась

От наблюдения к действию

План обновления

Рецепт уже закрепляет последний известный релиз. Ниже показаны сохранённые основания для этой версии.

0.31.00.31.0
  1. Открыть основания релиза

    Открыть релиз на GitHub ↗ Ссылка нужна для ревизии и сама по себе не доказывает совместимость.

  2. Проверить границу версий

    Номера версий не пересекают major-границу совместимости. Вердикт о совместимости не записан.

  3. Подготовить смену тегов образов

    Смена тегов образов сейчас не планируется.

  4. Следовать документированной схеме миграции

    Смена тега и перезапуск. Шаги конкретного релиза всё равно берутся из release notes и инструкции по установке.

  5. Защитить точку отката

    Смена версии сейчас не планируется. Рецепт содержит процедуру backup. Restore проверен.

  6. Проверить обновлённый рецепт

    Точная проверка уровня «Проверен полностью» для этой версии записана 2026-10-23.

Прочитать порядок обновления в инструкции по установке ↓

Характеристики

Безопасность и публикация

Уровни установки

Статус показывает, насколько опубликованный рецепт покрывает требования каждого уровня.

Готово

Для дома

Минимальная конфигурация для локальной сети или доступа через VPN.

  • Один сервер
  • Локальный доступ
  • Минимум компонентов

Рецепт закрывает все требования этого уровня.

Готово

Для VPS

Публичная установка с защищённым доступом и резервными копиями.

  • Домен
  • HTTPS через reverse proxy
  • Backup вне сервера

Рецепт закрывает все требования этого уровня.

Не поддерживается

Надёжная

Конфигурация для предсказуемой эксплуатации и наблюдаемости.

  • Отдельная БД
  • Healthcheck
  • Внешний мониторинг
  • Лимиты CPU и памяти

Нужно добавить вручную: отдельная бд, внешний мониторинг, лимиты cpu и памяти.

Собрать под свой сервер

Генератор конфигурации

Ответьте на пять вопросов и скачайте готовый комплект Memos.

Работает локально
01 Есть домен?
02 Какой reverse proxy?
03 Архитектура сервера
04 Где хранить данные?

Укажите абсолютный путь для отдельного диска, например /srv/memos.

05 Требуется VPN-доступ?

Комплект готов к сборке

Архив создаётся в браузере. Ответы никуда не отправляются.

Те же файлы одним shell-скриптом, обычными heredoc, чтобы всё читалось до запуска. Скрипт проверяет Docker, архитектуру, память, диск и нужные порты и без --apply ничего не пишет.

Скриншоты

Быстрый запуск

Сначала прочитайте полную инструкцию: в ней описаны доступ извне, backup и расположение данных.

Подготовить настройкиcp .env.example .env
Запуститьdocker compose up -d
Проверить состояниеdocker compose ps

Пошаговая инструкция

Требования и подготовка

Используйте 64-битную Ubuntu 22.04+ или Debian 12+ с Docker Engine и Compose v2.24+. Планируйте одно ядро CPU, 256 МБ RAM (рекомендуется 512 МБ) и 1 ГБ диска плюс заметки и вложения.

mkdir -p ~/services/memos
cd ~/services/memos
# Скопируйте сюда весь рецепт, включая config/, proxy/ и скрипты.
cp .env.example .env
chmod 600 .env
# В двух файлах политик нет секретов; UID 10001 должен их читать.
chmod 755 config
chmod 644 config/memos-instance-setting-*.json
Параметр Назначение
MEMOS_VERSION Точный Docker-тег, изначально 0.31.0, без v.
MEMOS_PORT Порт хоста на loopback, по умолчанию 5230.
MEMOS_URL Канонический адрес браузера, изначально http://localhost:5230; за прокси укажите внешний HTTPS URL.
MEMOS_TRUSTED_PROXIES none для прямого доступа. Для HTTPS-прокси, перезаписывающего заголовки, укажите его IP/CIDR; private допустим только при доверии всем доступным приватным посредникам.
MEMOS_DATA_VOLUME Именованный том SQLite, локальных файлов и постоянных секретов инстанса.
TZ Часовой пояс IANA, по умолчанию Etc/UTC.
MEMOS_BACKUP_DIR Необязательный абсолютный путь копий; по умолчанию backups/ рядом с рецептом.

Скрипты выполняют .env как доверенную shell-конфигурацию. Держите файл закрытым. В config/ два параметра развёртывания: GENERAL закрывает регистрацию, ACCESS задаёт приватный доступ. Они перекрывают настройки БД/UI и применяются после перезапуска контейнера. Храните каталог с рецептом.

Запуск и создание администратора

docker compose config --quiet
docker compose pull
docker compose up -d --wait --wait-timeout 300
curl --fail http://127.0.0.1:5230/healthz

С другого компьютера сначала выполните ssh -L 5230:127.0.0.1:5230 user@server. Откройте http://localhost:5230, создайте первый аккаунт с уникальным паролем до открытия прокси. Первый аккаунт становится администратором; общего начального пароля нет. Публичная регистрация затем остаётся закрытой. Следующих пользователей добавляйте в настройках администратора. Язык и тему выберите в настройках аккаунта.

Штатный entrypoint исправляет владельца тома и переходит на UID/GID 10001. Корневая ФС доступна только для чтения; том данных и /tmp доступны для записи. SMTP, SSO, AI-провайдеры, внешние хранилища и вебхуки не настроены.

VPS

Сначала создайте администратора через туннель. Укажите MEMOS_URL=https://notes.example.com, настройте HTTPS-прокси и оставьте в firewall только SSH/HTTP/HTTPS. Порт 5230 сохраняйте на loopback. Шифруйте копии и храните экземпляр вне сервера.

Доверенная локальная сеть

Для личного доступа используйте SSH-туннель. Для общего доступа в LAN настройте HTTPS-прокси. Если меняете привязку на приватный IP, ограничьте порт firewall и оставьте MEMOS_TRUSTED_PROXIES=none, пока в цепочке нет доверенного прокси, перезаписывающего заголовки. Канонический URL должен совпадать с адресом пользователей.

Домен и HTTPS

Используйте один пример из proxy/: Caddy получает сертификат, Nginx требует путей сертификатов, Traefik — entry point websecure и resolver letsencrypt. Примеры работают на хосте и передают запросы в 127.0.0.1:5230; контейнерному прокси нужны общая сеть и внутренний порт 5230.

Укажите внешний MEMOS_URL. Доверяйте только IP/CIDR прокси; private доверяет также loopback и приватным диапазонам, поэтому применяйте его лишь с loopback-привязкой и прокси, перезаписывающим forwarded-заголовки. Выполните docker compose up -d --wait --wait-timeout 300. Nginx разрешает запросы до 50 МБ, но у Memos отдельно действует лимит загрузки 30 МБ по умолчанию.

Резервное копирование

./backup.sh

Запись останавливается на время архивации всего тома, рабочей .env, Compose и config/. Закрытый архив один: backups/memos-<timestamp>.tar. Работавшее приложение запускается снова; остановленное остаётся остановленным. Зашифруйте архив и перенесите вне сервера: внутри аккаунты, заметки, вложения и секреты инстанса/сессий. Копия одного живого SQLite-файла и личный экспорт не заменяют этот архив.

Восстановление

Восстановление заменяет весь том приложения. Используйте доверенные архивы и совпадающую версию. На новом сервере скопируйте рецепт и сначала сравните архивные configuration.env и config.tar.gz с рабочими .env и config/. Архивная конфигурация автоматически не включается.

docker compose up -d --wait --wait-timeout 300
./restore.sh ./backups/memos-TIMESTAMP.tar
curl --fail http://127.0.0.1:5230/healthz

Скрипт проверяет содержимое до замены и делает страховочную копию. Ошибка при замене оставляет приложение остановленным. После восстановления войдите, откройте приватную заметку и скачайте вложение. Smoke-тест amd64 удаляет исходный том перед восстановлением и проверяет эти действия.

Обновление

Прочитайте примечания, сделайте копию и перенесите её вне сервера. Задайте проверенный точный тег MEMOS_VERSION, затем:

docker compose pull
docker compose up -d --wait --wait-timeout 300
docker compose logs --tail=100 memos

Миграции выполняются при запуске. API 0.x может меняться между минорными версиями: проверьте совместимость клиентов и интеграций. Версия 0.31 убирает RSS и расширяет доступ администратора. Не используйте latest и не считайте старый клиент совместимым с новым API без проверки.

Откат

Не запускайте старый образ на мигрированной БД. Сохраните копию до обновления, остановите приложение, задайте старую точную версию в .env, скачайте и пересоздайте контейнер без запуска:

docker compose stop memos
# Измените MEMOS_VERSION и сравните соответствующий config/.
docker compose pull memos
docker compose create memos
./restore.sh ./backups/memos-BEFORE-UPDATE.tar

Страховочная копия читает том остановленного контейнера, не запуская старую версию на новых данных. Восстановите целый соответствующий архив, затем проверьте вход, заметку и файл.

Остановка и удаление

docker compose down удаляет контейнеры и сохраняет том. После проверки зашифрованной внешней копии docker compose down --volumes безвозвратно удаляет аккаунты, заметки и вложения. Удаление каталога рецепта удаляет также локальные копии и конфигурацию.

Источники: развёртывание, v0.31.0, конфигурация.

Сообщить о проблеме с рецептом

Рассказать, как прошло на вашем сервере

Откроется предзаполненный issue на GitHub. Нужен аккаунт GitHub; после отправки сообщение будет публичным.

Диагностика

Контейнер не становится healthy

Выполните docker compose ps, docker compose logs --tail=100 memos и docker compose config --quiet. Проверьте точный тег, место на диске и наличие config/ как каталога. Неверный JSON развёртывания останавливает запуск. Штатный endpoint /healthz отвечает Service ready..

Нет настройки или регистрации

Первый аккаунт создаётся на странице первичной настройки. Затем публичная регистрация специально закрыта; пользователей добавляет администратор в настройках. GENERAL и ACCESS из файлов нельзя изменить в UI. Правьте JSON и перезапускайте приложение только при намеренной смене политики.

Неверные URL или ограничения запросов за прокси

Проверьте MEMOS_URL, заголовки прокси и MEMOS_TRUSTED_PROXIES. Канонический URL не делает инстанс публичным. Доверяйте только реальным адресам прокси, а не произвольным forwarded-заголовкам клиента. Оставьте порт 5230 на loopback.

После восстановления нет заметок или файлов

Используйте ту же версию и полный архив тома. Личный экспорт и SQLite без вложений не заменяют копию сервера. Проверьте рабочие config/ и .env: архивная конфигурация автоматически не применяется. Войдите заново и проверьте содержимое вложения. Администраторы могут читать приватные заметки; приватность не означает шифрование.

Ошибки прав или SQLite

Штатный entrypoint назначает владельца данных UID/GID 10001. Проверьте docker compose logs, df -h и том через docker inspect. Используйте локальное хранилище и один пишущий инстанс; не размещайте SQLite на ненадёжной сетевой ФС и не редактируйте рабочую БД вручную. Сохраните исходный том на время разбирательства.

Источники: документация, конфигурация развёртывания.

Официальные источники

Последний релиз: 2026-09-19 · GitHub Stars: 64 027 · данные проверены 23 окт. 2026 г., 22:18 UTC

Отказ от ответственности

Fossary — независимый информационный каталог, не связанный с разработчиками представленных приложений. Мы собираем сведения из открытых источников и проверяем опубликованные рецепты, но не разрабатываем, не распространяем и не контролируем эти приложения.

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