Новые релизы
Сравнение версии рецепта с последним известным релизом upstream. Это номер версии, а не разбор изменений.
Memos хранит короткие Markdown-заметки, списки дел, теги и вложения на вашем сервере. Ведите домашние справочники, заметки о прочитанном и повседневные идеи в ленте с поиском. Рецепт использует официальный образ, SQLite, локальные файлы, приватный доступ к инстансу и закрытую публичную регистрацию.
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. Это номер версии, а не разбор изменений.
Результат отдельного сканирования Docker-образов, а не проверки Compose.
Новый major находится сравнением номеров версий. Вердикт о совместимости заносится вручную после чтения release notes и порядка миграции.
Изменения upstream Compose относительно проверенного рецепта.
Проверка закреплённых тегов образов на наличие новых версий.
От наблюдения к действию
Рецепт уже закрепляет последний известный релиз. Ниже показаны сохранённые основания для этой версии.
0.31.00.31.0Открыть релиз на GitHub ↗ Ссылка нужна для ревизии и сама по себе не доказывает совместимость.
Номера версий не пересекают major-границу совместимости. Вердикт о совместимости не записан.
Смена тегов образов сейчас не планируется.
Смена тега и перезапуск. Шаги конкретного релиза всё равно берутся из release notes и инструкции по установке.
Смена версии сейчас не планируется. Рецепт содержит процедуру backup. Restore проверен.
Точная проверка уровня «Проверен полностью» для этой версии записана 2026-10-23.
Статус показывает, насколько опубликованный рецепт покрывает требования каждого уровня.
Минимальная конфигурация для локальной сети или доступа через VPN.
Рецепт закрывает все требования этого уровня.
Публичная установка с защищённым доступом и резервными копиями.
Рецепт закрывает все требования этого уровня.
Конфигурация для предсказуемой эксплуатации и наблюдаемости.
Нужно добавить вручную: отдельная бд, внешний мониторинг, лимиты cpu и памяти.
Собрать под свой сервер
Ответьте на пять вопросов и скачайте готовый комплект Memos.
Сначала прочитайте полную инструкцию: в ней описаны доступ извне, backup и расположение данных.
cp .env.example .envdocker compose up -ddocker 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-провайдеры, внешние хранилища и вебхуки не настроены.
Сначала создайте администратора через туннель. Укажите MEMOS_URL=https://notes.example.com, настройте HTTPS-прокси и оставьте в firewall только SSH/HTTP/HTTPS. Порт 5230 сохраняйте на loopback. Шифруйте копии и храните экземпляр вне сервера.
Для личного доступа используйте SSH-туннель. Для общего доступа в LAN настройте HTTPS-прокси. Если меняете привязку на приватный IP, ограничьте порт firewall и оставьте MEMOS_TRUSTED_PROXIES=none, пока в цепочке нет доверенного прокси, перезаписывающего заголовки. Канонический URL должен совпадать с адресом пользователей.
Используйте один пример из 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; после отправки сообщение будет публичным.
Выполните docker compose ps, docker compose logs --tail=100 memos и docker compose config --quiet. Проверьте точный тег, место на диске и наличие config/ как каталога. Неверный JSON развёртывания останавливает запуск. Штатный endpoint /healthz отвечает Service ready..
Первый аккаунт создаётся на странице первичной настройки. Затем публичная регистрация специально закрыта; пользователей добавляет администратор в настройках. GENERAL и ACCESS из файлов нельзя изменить в UI. Правьте JSON и перезапускайте приложение только при намеренной смене политики.
Проверьте MEMOS_URL, заголовки прокси и MEMOS_TRUSTED_PROXIES. Канонический URL не делает инстанс публичным. Доверяйте только реальным адресам прокси, а не произвольным forwarded-заголовкам клиента. Оставьте порт 5230 на loopback.
Используйте ту же версию и полный архив тома. Личный экспорт и SQLite без вложений не заменяют копию сервера. Проверьте рабочие config/ и .env: архивная конфигурация автоматически не применяется. Войдите заново и проверьте содержимое вложения. Администраторы могут читать приватные заметки; приватность не означает шифрование.
Штатный entrypoint назначает владельца данных UID/GID 10001. Проверьте docker compose logs, df -h и том через docker inspect. Используйте локальное хранилище и один пишущий инстанс; не размещайте SQLite на ненадёжной сетевой ФС и не редактируйте рабочую БД вручную. Сохраните исходный том на время разбирательства.
Источники: документация, конфигурация развёртывания.
Fossary — независимый информационный каталог, не связанный с разработчиками представленных приложений. Мы собираем сведения из открытых источников и проверяем опубликованные рецепты, но не разрабатываем, не распространяем и не контролируем эти приложения.
Публикация карточки или статус проверки не являются требованием, навязыванием либо персональной рекомендацией использовать приложение. Вы самостоятельно решаете, подходит ли оно вам, и используете его на свой риск. Мы не гарантируем безопасность, доступность или пригодность приложения и, в пределах, допускаемых законом, не отвечаем за вызванные им потери или ущерб. До установки проверьте лицензию, настройки безопасности, обработку данных и резервное копирование.