Руководство по самостоятельному развертыванию
Разверните 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 - воркер валютных курсов в Docker Compose
Конфигурация
Скопируйте .env.example в .env и укажите:
MIGRATION_DATABASE_URL— строку подключения с ролью владельца, которую используют миграцииDATABASE_URL— строку подключения с ролью приложения для веб-процессаAUTH_DATABASE_URL— строку подключения с ролью схемы авторизации для сервиса авторизацииAUTH_MODE—noneдля локального запуска,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 за ALBauth.<domain>— сервис OTP и OAuth за ALBapi.<domain>/v1/*— REST API для программного доступа к SQL через API Gateway и Lambdamcp.<domain>/mcp— размещенный MCP-сервис через отдельные HTTP API в API Gateway и MCP Lambda
Для собственного MCP-домена нужен публичный сертификат ACM на точное имя mcp.<domain>. Сохраните его проверочную CNAME-запись DNS для продления, передайте ARN сертификата в CDK-развертывание и CI и создайте DNS-запись mcp.* вместе с остальными публичными доменами.
Поддерживаемая последовательность и скрипты настройки описаны в обзоре развертывания и руководстве по AWS CDK в репозитории.