↓ Перейти к основному содержимому
  1. Posts/
  2. PKM/

Memos: установка self-hosted заметок для быстрых мыслей

··617 слов·3 минут· loading · loading · ·
Stilicho2011
Автор
Stilicho2011
Пишу о homelab, self-hosting, автоматизации и open-source решениях
Оглавление
PKM и заметки - This article is part of a series.
Part : This Article

Если вам не нужна полновесная PKM-система вроде Obsidian или Trilium, а хочется быстро черкнуть мысль и не потерять ее - Memos закрывает именно эту нишу. По сути, это self-hosted замена Google Keep: легкая, без лишнего интерфейса, но со своим сервером под капотом и полным контролем над данными.

Разбираю его в видео и заодно делаю обзор - что это, кому подойдет и как поднять в Docker.

Что такое Memos
#

Memos - open-source приложение для заметок в формате ленты (timeline). Никакой иерархии страниц, баз данных внутри заметок или блоковых структур, как в Notion или Obsidian - просто хронологический список коротких записей с Markdown, тегами прямо в тексте и быстрым поиском.

Если Obsidian или Trilium - это полноценная база знаний, то Memos ближе к техническому микроблогу для себя: записал мысль, поставил тег, пошел дальше.

Кому подойдет
#

Memos имеет смысл, если вам не нужны вложенные структуры и связи между заметками, канбан-доски или продвинутая wiki-логика.

А нужно - быстро зафиксировать мысль, идею по проекту или короткую техническую заметку, не открывая тяжелое PKM-приложение. По факту это self-hosted альтернатива Google Keep или Apple Notes, только с полным контролем над данными - ни одна заметка не улетает на чужой сервер.

Лента и теги
#

Все записи идут единой хронологической лентой - удобно, когда фиксируешь идеи по ходу работы над проектом. Теги (#docker, #proxmox, #traefik) позволяют потом отфильтровать нужное, не листая все подряд.

Несколько пользователей
#

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

Минимальные требования
#

Никакой внешней PostgreSQL, тяжелых зависимостей или сложной конфигурации из коробки - по умолчанию Memos работает на SQLite. Это делает его удобным кандидатом для мини-ПК, одноплатников или маленького VPS, где гонять что-то тяжелое просто незачем.

Пример docker compose файла из видео
#

Вот конфигурация, которую использовал в ролике - Memos за Traefik, с проксированием через домен:

services:
  memos:
    image: neosmemo/memos:stable
    container_name: memos
    #ports:
    #  - "5230:5230"
    volumes:
      - /home/user/docker/memos:/var/opt/memos
    environment:
      - MEMOS_PORT=5230
      - MEMOS_INSTANCE_URL=https://memos.domain.ru
    restart: unless-stopped
    networks:
      proxy:                              # Подключаем контейнер к внешней сети "proxy" (используется Traefik)
    labels:                               # Метки для интеграции с Traefik (обратный прокси)
      - "traefik.enable=true"                                      # Включаем обработку контейнера Traefik
      - "traefik.http.routers.memos.entrypoints=web"             # Определяем HTTP-вход (порт 80)
      - "traefik.http.routers.memos.rule=Host(`memos.domain.ru`)"  # Трафик на этот домен будет направляться в данный контейнер
      - "traefik.http.middlewares.memos-https-redirect.redirectscheme.scheme=https"         # Middleware для редиректа с HTTP на HTTPS
      - "traefik.http.routers.memos.middlewares=memos-https-redirect"          # Применяем middleware редиректа к HTTP-маршруту
      - "traefik.http.routers.memos-secure.entrypoints=websecure"          # Определяем HTTPS-вход (порт 443)
      - "traefik.http.routers.memos-secure.rule=Host(`memos.domain.ru`)"         # HTTPS-маршрут для того же домена
      - "traefik.http.routers.memos-secure.tls=true"          # Включаем TLS (HTTPS)
      - "traefik.http.routers.memos-secure.service=memos"     # Привязываем HTTPS-маршрут к сервису memos
      - "traefik.http.services.memos.loadbalancer.server.port=5230"          # Указываем внутренний порт, на котором memos слушает в контейнере
      - "traefik.docker.network=proxy"          # Указываем, что Traefik должен искать контейнер в сети "proxy"

networks:
  proxy:                                  # Определение внешней сети для взаимодействия с Traefik
    external: true                        # Сеть уже создана ранее (не создавать заново)

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

  • ports закомментирован намеренно - контейнер не публикует порт наружу напрямую, весь трафик заходит через Traefik по сети proxy.
  • Вместо переменной MEMOS_MODE=prod, которая встречается в старых примерах, я поставил MEMOS_INSTANCE_URL - это актуальная переменная из документации Memos, которая задает канонический внешний адрес инстанса. Она важна именно при работе за reverse-proxy: без нее могут криво генерироваться ссылки на расшаренные заметки.
  • Порт 5230 здесь - не дефолт (в свежих версиях Memos слушает 8081, если порт не задан явно), но раз он прописан и в MEMOS_PORT, и в лейбле Traefik - все сходится.

Итог
#

Если Obsidian или Trilium вам кажутся избыточными для того, что по сути является списком быстрых заметок - Memos закрывает именно эту потребность: self-hosted, легкий, с Markdown и тегами, разворачивается за пять минут. Полноценной базой знаний он не станет, но на роль Google Keep с собственным сервером подходит отлично.

PKM и заметки - This article is part of a series.
Part : This Article

Related

Obsidian vs TriliumNext: сравнение систем управления знаниями

··772 слов·4 минут· loading · loading
Подробное сравнение Obsidian и TriliumNext: две мощные системы для организации заметок и личной базы знаний. Что выбрать для своего рабочего процесса?

Trilium: установка и настройка системы для заметок

··1829 слов·9 минут· loading · loading
Пошаговая инструкция по установке и настройке Trilium для организации заметок и баз знаний на личном сервере. Рассмотрены установка через Docker, настройка веб-интерфейса, пользователей и рекомендации по эффективному управлению заметками.

Плагины Obsidian, которыми я пользуюсь

··2244 слов·11 минут· loading · loading
Разбираю 36 плагинов Obsidian, которые заменили встроенный функционал Trilium Notes после переезда - от Templater и Bases до Excalidraw и Kanban. Сравниваю философию двух систем и объясняю, почему решающим фактором стала поддержка YAML Front Matter для публикации статей через Hugo.