Memos для коротких заметок
Часто хочется записать короткую мысль или ссылку — что-то на одно-два предложения. В Obsidian такая заметка превращается в файл Untitled-2025-05-09.md, который никто никогда не откроет. В Telegram «Saved Messages» — там всё затягивается в общий поток и теряется. Идея ниже не идеальная, но мне нравится: Memos.
Memos — open-source микроблог для одного человека. Внешне выглядит как twitter без подписчиков: лента из коротких заметок, теги через #тег, поиск, markdown в каждой заметке. Github: usememos/memos, написан на Go, по умолчанию SQLite.
compose.yml
services:
app:
image: neosmemo/memos:0.23.2
container_name: memos
restart: unless-stopped
ports:
- "127.0.0.1:5230:5230"
volumes:
- ./data:/var/opt/memos
Никакого .env — Memos работает без переменных окружения для базового сетапа, всё хранится в data/.
После первого запуска заходишь на 127.0.0.1:5230 (локально) или через reverse proxy, регистрируешь первого пользователя — он становится Host (админом) автоматически. Дальше в настройках выключаю «Allow new signup» — то же что в Vaultwarden, не хочется случайных гостей.
Структура заметок
Формальной системы тегов нет — пишешь #linux, #idea, #todo прямо в тексте, Memos их выделяет. На странице со всеми заметками — облако тегов слева. Если тег больше не нужен, пишешь rename в админке, и он переименуется во всех заметках.
Сами заметки — markdown. Можно вставить картинку (загружается как attachment), code block, ссылку. Длина не ограничена, но фишка не в этом — длинные мысли всё равно лучше уезжают в Obsidian. Memos — для коротких.
SQLite vs MySQL
Memos может работать с MySQL — для команды или большого объёма. Для одного человека SQLite более чем достаточно. У моего приятеля 800+ заметок, файл базы — 14 MB. Никаких проблем со скоростью.
Если когда-нибудь упрусь — миграция через memos export/import работает, но я этого не дождусь.
Бэкап
Та же схема, что у Vaultwarden — sqlite .backup плюс tar папки с аттачами:
#!/bin/bash
set -euo pipefail
DATE=$(date +%F)
cd /opt/services/memos
sqlite3 data/memos_prod.db ".backup data/memos.bak"
tar czf /var/backups/memos-$DATE.tar.gz \
data/memos.bak data/assets
rm data/memos.bak
В systemd-timer, раз в сутки.
Что не понравилось
API есть, но документирован кусками. Хотел через bash-скрипт постить в Memos из терминала (пайпом через xclip) — пришлось разбираться с авторизацией через access tokens. Сделал, работает, но ушло часа полтора на «как». Нормальной OpenAPI-спецификации в репо я не нашёл, всё через чтение исходников и issues.
Ещё момент: Memos не поддерживает приватный шеринг — публичный URL работает только если сервер открыт наружу. У меня он за reverse proxy с auth, поэтому public link бессмысленный.
Что в итоге
Поставил сегодня. Заметок пока штук десять — для теста. Что нравится с первого дня — лента: можно пробежаться глазами по последним записям, как в твиттере, без вспоминания «что я там вчера записывал, в какой папке». Синхронизацию ноутбук-телефон проверил, работает.