@root root authored 20 days ago
backend Импорт задачи из ссылки на багрепорт BugTrail (0.92) 20 days ago
docs Импорт задачи из ссылки на багрепорт BugTrail (0.92) 20 days ago
extension Импорт задачи из ссылки на багрепорт BugTrail (0.92) 20 days ago
frontend Импорт задачи из ссылки на багрепорт BugTrail (0.92) 20 days ago
tools Инлайн-правка длительности и скругление иконок (0.90) 20 days ago
.dockerignore Docker: ZIP расширения собирается в образе фронта 1 month ago
.env.example Импорт задачи из ссылки на багрепорт BugTrail (0.92) 20 days ago
.gitignore Напоминания: сроки, ритм, сводка, тихие часы (0.89) 20 days ago
CLAUDE.md Интеграция gnexus-ui-kit в SPA 1 month ago
README.md Подготовка к деплою: GAUTH_WEBHOOK_SECRET в compose, чистка MCP_TOKEN 1 month ago
docker-compose.yml Проекты: цвет, сайт, фавикон, закрепление, README из репозитория (0.63–0.67) 21 days ago
README.md

gntodo (gnexus-tasks)

Персональный менеджер задач: быстрый захват без метаданных, автодетализация через локальную LLM (Ollama), дерево задач, MCP-интерфейс для ИИ-агентов.

Техническое задание: docs/TZ.md.

Стек

  • Frontend: Vue 3 SPA + gnexus-ui-kit (Vite, TypeScript)
  • Backend: Python 3.12, FastAPI, SQLAlchemy/PostgreSQL
  • SSO: auth.gnexus.space через gnexus-gauth
  • AI: Ollama (модель из конфига) — автодетализация метаданных
  • MCP: MCP-сервер в составе backend (M5)
  • Деплой: Docker Compose на VPS

Структура

docs/          — техническое задание и прочая документация
backend/       — FastAPI API + MCP (Python, uv)
frontend/      — Vue 3 SPA (Vite, TypeScript)

Разработка

Dev-БД (docker, порт 15432 — 5432/5433/5434 на машине заняты):

docker run -d --name gntodo-postgres -p 15432:5432 \
  -e POSTGRES_USER=gntodo -e POSTGRES_PASSWORD=gntodo -e POSTGRES_DB=gntodo \
  postgres:17-alpine

Миграции: cd backend && uv run alembic upgrade head.

Backend:

cd backend
uv sync                  # создаст .venv, установит зависимости
uv run uvicorn app.main:app --reload --port 8134

Frontend:

cd frontend
npm install
npm run dev              # http://localhost:15134, /api и /auth проксируются на :8134

Деплой (Docker Compose)

Пошаговая инструкция для разворачивания на VPS — docs/deploy.md (состав стека, настройка .env, SSO, внешний TLS-прокси, чеклист проверки, MCP, обновление, бэкапы, диагностика). Кратко:

Состав стека: db (PostgreSQL 17) + api (FastAPI, миграции применяются при старте контейнера) + web (nginx: SPA-статика, прокси /api/, /auth/, /mcp/ на api). TLS терминирует внешний reverse-proxy на VPS — контейнер web слушает :80.

  1. На сервере: cp .env.example .env и заполнить:
    • SSO-креды (GAUTH_CLIENT_ID/SECRET), GAUTH_REDIRECT_URI=https://<домен>/auth/callback — адрес callback регистрируется в auth.gnexus.space;
    • SESSION_SECRET (произвольная длинная строка); MCP-токены теперь per-user (Настройки → «Токены MCP»), env-переменной MCP_TOKEN больше нет;
    • GAUTH_WEBHOOK_SECRET из админке SSO (пусто — webhook выключен, см. deploy.md §3.1);
    • OLLAMA_BASE_URL внешнего сервера Ollama (контейнера ollama в compose нет) и OLLAMA_MODEL (по умолчанию qwen3.5:2b-q4_K_M).
  2. Запуск: docker compose up -d --build.
  3. На внешнем reverse-proxy, который пробрасывает на WEB_PORT (по умолчанию 8135):
    • client_max_body_size 12m или больше (вложения до 10 МБ);
    • /api/ и /mcp/ — без буферизации (backend шлёт X-Accel-Buffering: no, nginx его уважает; на других прокси отключить буферизацию явно) — иначе SSE-реактивность и MCP-агенты застрянут.

Заметка: API работает в 1 воркер uvicorn — это осознанно (PKCE/state у gnexus-gauth хранятся в памяти процесса; несколько воркеров сломают OAuth-флоу).

Вехи

M0 — каркас (репо, скелеты, SSO, деплой) → M1 MVP задач → M2 автодетализация → M3 структура → M4 прогнозы/бюджет/«3 варианта» → M5 MCP → M6 PWA → M7 Docker-упаковка.