Files
email-assistant/openspec/changes/local-calendar-tasks/proposal.md
T

4.0 KiB
Raw Blame History

Proposal: Локальные сервисы календаря (Radicale) и задач (Vikunja)

Why

Для синхронизации календаря и задач с Android-телефоном нужны локальные сервисы (без облака). Пользователь хочет:

  • Календарь — нативная синхронизация с Android
  • Трекер задач — с веб-UI и API, чтобы веб-интерфейс почты мог создавать задачи кнопкой
  • Всё локально (bigbox), без облачных зависимостей

Сейчас календаря и трекера задач нет (проверено: порт 5232 свободен, образы radicale/vikunja не установлены). Порт 8080 занят NetBox.

What Changes

Два новых сервиса в /opt/hermes/email-assistant/:

1. Radicale (CalDAV) — календарь + задачи VTODO

  • Порт: 5232 (свободен)
  • Путь: /opt/hermes/email-assistant/radicale/
  • Способ: Python pip (лёгкий, systemd) ИЛИ docker
  • Назначение: CalDAV-сервер для:
    • Календаря «Личный» + «Рабочий» (синхронизация с Android через DAVx5)
    • Задач (VTODO) — тоже через CalDAV
  • Конфиг: лёгкий, single-user (правки через UI/файл)

2. Vikunja (трекер задач) — веб-UI + REST API + Android app

  • Порт: 3456 (дефолт Vikunja, свободен)
  • Путь: /opt/hermes/email-assistant/vikunja/
  • Способ: docker compose (postgres + vikunja)
  • Назначение:
    • Трекер задач с веб-интерфейсом (kanban/список)
    • REST API — для кнопки «Создать задачу» из веб-интерфейса почты
    • Android-приложение (нативный клиент Vikunja)
  • БД: PostgreSQL (docker), данные в volume

Общие решения

  • Доступ: 127.0.0.1 (локально) + опционально через Caddy reverse proxy на поддомене (Caddy — контейнер на vps02, см. STATUS.md «Ресурсы проекта»)
  • Порты: 5232 (radicale), 3456 (vikunja) — не конфликтуют с 8080 (NetBox)
  • Авторизация: Radicale — HTTP Basic (логин/пароль в конфиге); Vikunja — своя (регистрация/логин, API-токены)

Capabilities

New Capabilities

  • calendar-caldav: Локальный CalDAV-сервер (Radicale) для календаря и задач, синхронизация с Android через DAVx5
  • task-tracker-vikunja: Локальный трекер задач Vikunja с веб-UI и REST API, интеграция с веб-интерфейсом почты через API-токен

Modified Capabilities

Impact

  • Новые сервисы: /opt/hermes/email-assistant/radicale/, /opt/hermes/email-assistant/vikunja/
  • Порты: 5232 (radicale), 3456 (vikunja) — новые
  • Данные: календари/задачи будут храниться локально
  • Документация: обновить README/STATUS (порты, логины, как синхронизировать)
  • Риск: Vikunja тянет Postgres (память/диск); Radicale — минимален

Rollback

  1. Radicale: systemctl stop radicale + удалить /opt/hermes/email-assistant/radicale/
  2. Vikunja: docker compose -f /opt/hermes/email-assistant/vikunja/docker-compose.yml down -v (удалить контейнеры и volume с данными) + убрать /opt/hermes/email-assistant/vikunja/
  3. Убрать упоминания из README/STATUS
  4. Вернуть порты в исходное состояние (оба сейчас свободны, конфликтов нет)