Joplin Server + OpenClaw: архитектура self-hosted AI для заметок

Joplin Server + OpenClaw: архитектура self-hosted AI для заметок - AVRO
Joplinhttps://joplinapp.org/
OpenClawhttps://openclaw.ai/

Самохостинг заметок, нормальные клиенты на Windows и Android и Telegram-бот, который реально читает и пишет в ту же базу — без «колхоза» из плагинов.

Задача

Нужен второй мозг, который:

  • хранит личные и рабочие записи в одном месте, но с понятным разделением;
  • синхронизируется на телефон и ПК без чужого облака;
  • доступен из Telegram: спросить, надиктовать, разложить по папкам, не потерять вложения;
  • при желании стыкуется с календарём и поиском в интернете.

Obsidian + Self-hosted LiveSync закрывал «папку Markdown на сервере», но выглядел хрупко: CouchDB, плагины, зеркало файлов, вечные пути вроде /vault. Для продукта «заметки + ассистент» лучше опереться на нормальный sync-сервер и официальные клиенты.

Что получилось

Стек из трёх слоёв:

  1. Joplin Server — источник правды для заметок (self-hosted).
  2. Joplin Desktop / Android — привычные клиенты с синхронизацией.
  3. OpenClaw (бот ALFRED) — AI-агент в Telegram, который работает с той же библиотекой через Joplin API.

Плюс по желанию: Google Calendar (gog), веб-поиск, HTTPS через Nginx Proxy Manager.

Один аккаунт sync — одни и те же notebooks у человека и у бота. Правки с телефона, с ПК или из чата сходятся после синхронизации.

Почему Joplin, а не Obsidian

Obsidian + LiveSyncJoplin Server
КлиентыСильно завязаны на экосистему/плагиныОфициальные Desktop + Mobile
SyncCouchDB + плагин + зеркалоОфициальный Joplin Server
AI на сервереУдобно через сырые .md, но хрупкоClipper/Data API + headless CLI
Ощущение«Собрал сам»«Поставил сервер и пользуешься»

Markdown никуда не делся: заметки по-прежнему текст, вложения — ресурсы Joplin, теги — нативные. Для статьи важно: агенту не нужна файловая система vault, ему нужен стабильный API к той же библиотеке, что у пользователя.

Архитектура на VPS (кратко)

Joplin Server
Docker: joplin/server + PostgreSQL, снаружи только HTTPS (https://notes.example.com). E2EE на клиентах для такого сценария обычно не включают: иначе headless-агент на том же сервере не сможет осмысленно читать и писать заметки. Защита — TLS, пароль аккаунта, доступ только своим.

joplin-agent
Отдельный контейнер с Joplin CLI: периодический sync с сервером и локальный Data API (Clipper). Обёртка вроде jop даёт агенту короткие команды: notebooks, search, create, update, move.

OpenClaw
Gateway + Telegram-бот. В workspace жёстко прописано: заметки только через jop. Профиль инструментов полный, sandbox выключен — бот может создавать и править записи в рамках правил (например, не удалять, а архивировать).

Клиенты
Windows и Android: sync target = Joplin Server, тот же URL и логин. После «Synchronise» видны те же notebooks, что видит бот.

Личное и рабочее в одной библиотеке

Разделение — не отдельными серверами, а структурой notebooks и тегами.

Типичная схема:

NotebookНазначение
__archiveАрхив вместо удаления
__inboxБыстрый захват из Telegram / «записать потом разложить»
__workПроекты, клиенты, инфраструктура, регламенты
personalЛичное: здоровье, поездки, семья, цели
studyУчёба, язык

Теги усиливают фильтры: workличноепутешествия, имя проекта, клиент. Бот может класть новые записи в __inbox, а по просьбе — в personal/... или рабочий notebook.

Для работы удобно договориться с ассистентом о правилах:

  • «рабочее» → notebook __work / проектный подблок;
  • «личное» → personal;
  • спорное → __inbox + короткий вопрос;
  • ничего не удалять — только __archive.

Так один бот обслуживает и быт, и проекты, не смешивая контексты в кашу.

Как выглядит день

С телефона: открыл Joplin, дописал задачу по проекту, сфоткал схему — вложение уехало на сервер.

В мессенджере: «ALFRED, найди запись про Черногорию» / «положи в inbox: созвон с клиентом в пятницу» — бот ищет и пишет через API, через минуту-две то же видно в приложении после sync.

На ПК: полноценный редактор, теги, структура notebooks, без возни с плагином синхронизации.

Календарь (если подключён): события отдельно от заметок, но в том же диалоге с ассистентом — «добавь в personal all-day …».

Что важно

  1. Один источник правды — Joplin Server, не параллельные Obsidian Sync + бот.
  2. Клиенты first-class — без self-hosted LiveSync ради «просто Markdown».
  3. Агент = клиент API, не «робот с find по диску».
  4. Явное разделение personal / work notebooks + теги.
  5. Правила безопасности ассистента: архив вместо delete, план на большие уборки, подтверждение на спорные действия.
  6. Self-host — данные на своём VPS, HTTPS, свой аккаунт sync.

Ограничения

  • E2EE на клиентах конфликтует с серверным AI-доступом к содержимому.
  • Wikilinks и canvas Obsidian не переезжают один в один; картинки нужно импортировать как resources.
  • Агент и фоновый sync делят одну библиотеку — лучше не плодить второй «писатель» вне API.
  • Качество ответов бота зависит от модели и дисциплины промптов.

Итог одной фразой

Joplin Server даёт спокойные личные и рабочие заметки на своих устройствах; OpenClaw добавляет Telegram-ассистента, который живёт в той же библиотеке — с inbox, архивом, тегами и разделением personal / work без отдельного «AI-хранилища».