# Proposal: Локальные сервисы календаря (Radicale) и задач (Vikunja) ## Why Для синхронизации календаря и задач с Android-телефоном нужны локальные сервисы (без облака). Пользователь хочет: - **Календарь** — нативная синхронизация с Android - **Трекер задач** — с веб-UI и API, чтобы веб-интерфейс почты мог создавать задачи кнопкой - Всё **локально** (bigbox), без облачных зависимостей Сейчас календаря и трекера задач **нет** (проверено: порт 5232 свободен, образы radicale/vikunja не установлены). Порт 8080 занят NetBox. ## What Changes Два новых сервиса в `/opt/hermes/`: ### 1. Radicale (CalDAV) — календарь + задачи VTODO - **Порт:** 5232 (свободен) - **Путь:** `/opt/hermes/radicale/` - **Способ:** Python pip (лёгкий, systemd) ИЛИ docker - **Назначение:** CalDAV-сервер для: - Календаря «Личный» + «Рабочий» (синхронизация с Android через DAVx5) - Задач (VTODO) — тоже через CalDAV - **Конфиг:** лёгкий, single-user (правки через UI/файл) ### 2. Vikunja (трекер задач) — веб-UI + REST API + Android app - **Порт:** 3456 (дефолт Vikunja, свободен) - **Путь:** `/opt/hermes/vikunja/` - **Способ:** docker compose (postgres + vikunja) - **Назначение:** - Трекер задач с веб-интерфейсом (kanban/список) - **REST API** — для кнопки «Создать задачу» из веб-интерфейса почты - Android-приложение (нативный клиент Vikunja) - **БД:** PostgreSQL (docker), данные в volume ### Общие решения - **Доступ:** 127.0.0.1 (локально) + опционально через Caddy reverse proxy на поддомене (caddy есть в /opt/gitea.nixg.ru) - **Порты:** 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/radicale/`, `/opt/hermes/vikunja/` - **Порты:** 5232 (radicale), 3456 (vikunja) — новые - **Данные:** календари/задачи будут храниться локально - **Документация:** обновить README/STATUS (порты, логины, как синхронизировать) - **Риск:** Vikunja тянет Postgres (память/диск); Radicale — минимален ## Rollback 1. **Radicale:** `systemctl stop radicale` + удалить `/opt/hermes/radicale/` 2. **Vikunja:** `docker compose -f /opt/hermes/vikunja/docker-compose.yml down -v` (удалить контейнеры и volume с данными) + убрать `/opt/hermes/vikunja/` 3. Убрать упоминания из README/STATUS 4. Вернуть порты в исходное состояние (оба сейчас свободны, конфликтов нет)