Посібник із самостійного розгортання

Розгорніть Expense Budget Tracker на власному сервері за допомогою Docker Compose і Postgres.

Вимоги

  • Docker і Docker Compose
  • Postgres 18 (уже додано до файла Compose)

Швидкий старт

git clone https://github.com/kirill-markin/expense-budget-tracker.git
cd expense-budget-tracker
cp .env.example .env
make up

Ця команда запускає Postgres, виконує міграції та піднімає:

  • вебзастосунок за адресою http://localhost:3000
  • сервіс автентифікації за адресою http://localhost:8081
  • FX-воркер у складі Docker Compose

Налаштування

Скопіюйте .env.example у .env і задайте потрібні значення:

  • MIGRATION_DATABASE_URL — роль власника бази даних, від імені якої виконуються міграції
  • DATABASE_URL — роль застосунку для вебпроцесу
  • AUTH_DATABASE_URL — роль для схеми auth, яку використовує сервіс автентифікації
  • AUTH_MODEnone для локального запуску, cognito для середовищ з одноразовими кодами, що надходять електронною поштою
  • AUTH_DOMAIN, COOKIE_DOMAIN і ALLOWED_REDIRECT_URIS — домен автентифікації, домен для файлів cookie і дозволені URI перенаправлення

Якщо AUTH_MODE=cognito, також потрібно заповнити параметри Cognito і SESSION_ENCRYPTION_KEY з .env.example.

Оновлення

git pull
make up

Docker Compose перебудує сервіси й повторно виконає міграції через контейнер migrate.

Розгортання в AWS

Продакшн-стек CDK використовує ECS Fargate, RDS, ALB, Cognito, API Gateway і Lambda. Він публікує такі домени застосунку:

  • app.<domain> — вебзастосунок в ECS Fargate за ALB
  • auth.<domain> — сервіс OTP і OAuth за ALB
  • api.<domain>/v1/* — REST API для машинного доступу до SQL через API Gateway і Lambda
  • mcp.<domain>/mcp — розміщений MCP-сервіс через окремі HTTP API в API Gateway і MCP Lambda

Для власного домену MCP потрібен публічний сертифікат ACM на точне ім'я mcp.<domain>. Збережіть його CNAME-запис перевірки DNS для поновлення, передайте ARN сертифіката до розгортання CDK і CI та створіть DNS-запис mcp.* разом з іншими публічними доменами.

Підтримувану послідовність і скрипти налаштування описано в огляді розгортання і посібнику з AWS CDK у репозиторії.