Перейти к содержанию

Локальный запуск

Предварительные требования

Установка ПО

ПО Версия Ссылка
.NET SDK 8.0+ https://dotnet.microsoft.com/download
PostgreSQL 14+ https://www.postgresql.org/download/
RabbitMQ 3.12+ https://www.rabbitmq.com/download.html
Docker 20.10+ https://docs.docker.com/get-docker/
Python 3.10+ https://www.python.org/downloads/

Ubuntu/Debian

# .NET SDK
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install -y dotnet-sdk-8.0

# PostgreSQL
sudo apt-get install -y postgresql postgresql-contrib

# RabbitMQ
sudo apt-get install -y rabbitmq-server

# Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

macOS

# Используйте Homebrew
brew install dotnet-sdk
brew install postgresql@14
brew install rabbitmq
brew install --cask docker

Windows

Используйте установщики с официальных сайтов.

Настройка базы данных

# Создание базы данных
sudo -u postgres psql

CREATE DATABASE fuelprocessing;
CREATE USER fuelprocessing WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE fuelprocessing TO fuelprocessing;
\q

Настройка RabbitMQ

# Создание пользователя
sudo rabbitmqctl add_user fuelprocessing fuelprocessing_pass
sudo rabbitmqctl set_user_tags fuelprocessing administrator
sudo rabbitmqctl set_permissions -p / fuelprocessing ".*" ".*" ".*"

Клонирование и настройка

# Клонирование репозитория
git clone https://github.com/fuel-processing/fuel-processing.git
cd fuel-processing

# Восстановление зависимостей
dotnet restore

# Копирование настроек
cp FuelProcessing.Web/appsettings.Development.json.example \
   FuelProcessing.Web/appsettings.Development.json

# Редактирование connection string
nano FuelProcessing.Web/appsettings.Development.json

appsettings.Development.json

{
  "ConnectionStrings": {
    "DefaultConnection": "Host=localhost;Port=5432;Database=fuelprocessing;Username=fuelprocessing;Password=your_password"
  },
  "RabbitMQ": {
    "Host": "localhost",
    "Port": 5672,
    "Username": "fuelprocessing",
    "Password": "fuelprocessing_pass"
  },
  "Authentication": {
    "JwtKey": "your-secret-key-here-change-in-production"
  }
}

Применение миграций

cd FuelProcessing.Web
dotnet ef database update

Запуск сервисов

Web Interface

cd FuelProcessing.Web
dotnet run

Доступно по: https://localhost:5001

ClientApi

cd FuelProcessing.ClientApi
dotnet run

Доступно по: https://localhost:5002

Swagger: https://localhost:5002/swagger

TransactionHandler

cd FuelProcessing.TransactionHandler
dotnet run

Health check: http://localhost:5003/health

ReportGenerationHandler

cd FuelProcessing.ReportGenerationHandler
dotnet run

Health check: http://localhost:5004/health

Docker Compose (альтернативный вариант)

# Запуск всех сервисов
docker-compose up -d

# Просмотр логов
docker-compose logs -f

# Остановка
docker-compose down

Проверка работоспособности

# Health checks
curl http://localhost:5003/health  # TransactionHandler
curl http://localhost:5004/health  # ReportHandler

# API check
curl https://localhost:5002/swagger

Troubleshooting

Ошибка подключения к PostgreSQL

# Проверьте статус
sudo systemctl status postgresql

# Проверьте подключение
psql -h localhost -U fuelprocessing -d fuelprocessing

Ошибка подключения к RabbitMQ

# Проверьте статус
sudo systemctl status rabbitmq-server

# Проверьте очередь
rabbitmqctl list_queues

Порт уже занят

# Найдите процесс
sudo lsof -i :5001

# Убейте процесс
kill -9 <PID>

Следующие шаги