Локальный запуск¶
Предварительные требования¶
Установка ПО¶
| ПО | Версия | Ссылка |
|---|---|---|
| .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"
}
}
Применение миграций¶
Запуск сервисов¶
Web Interface¶
Доступно по: https://localhost:5001
ClientApi¶
Доступно по: https://localhost:5002
Swagger: https://localhost:5002/swagger
TransactionHandler¶
Health check: http://localhost:5003/health
ReportGenerationHandler¶
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