Tребованиями для развертывания приложения - Rzavsky-ev/StarBank GitHub Wiki

Необходимые сервисы

Для работы приложения требуются следующие компоненты:

Сервис Версия Описание
Java 17+ Основная среда выполнения (используется Spring Boot 3+)
PostgreSQL 12+ База данных для хранения динамических правил и статистики
H2 Database 2.1+ Встроенная БД (только для чтения) с транзакциями пользователей
Docker 20+ Опционально. Для контейнеризации приложения и развертывания

Детализация

  1. Java 17

    • Минимальная версия для Spring Boot 3.x.
    • Рекомендуется использовать LTS-релизы (например, Temurin JDK).
  2. PostgreSQL

    • Требуется для таблиц: rules, user_stats.
    • Настройки подключения задаются в application.yml.
  3. H2 Database

    • Используется в режиме READ_ONLY.
    • Данные предзагружаются из CSV-файлов при старте.
  4. Docker

    • Пример использования:
      docker-compose -f docker-compose.prod.yml up
      

2. Сборка JAR-архива

Сборка через Maven

Для сборки проекта выполните следующие команды в корне проекта:

# Очистка и сборка (с запуском тестов)
mvn clean package

# Сборка без выполнения тестов (ускоренный вариант)
mvn clean package -DskipTests

## 3. Запуск приложения

### Стандартный запуск:

```bash
java -jar target/bank-recommendation-service-1.0.0.jar

### Запуск с переменными среды:
```bash
export SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/recommendation_db
export SPRING_DATASOURCE_USERNAME=postgres
export SPRING_DATASOURCE_PASSWORD=secret
java -jar target/bank-recommendation-service-1.0.0.jar

###Docker-запуск:

####Сборка образа
```bash
docker build -t bank-recommendation-service .

###Запуск контейнера
```bash
docker run -p 8080:8080 \
  -e SPRING_DATASOURCE_URL=jdbc:postgresql://host.docker.internal:5432/recommendation_db \
  -e SPRING_DATASOURCE_USERNAME=postgres \
  -e SPRING_DATASOURCE_PASSWORD=secret \
  bank-recommendation-service

## Параметры конфигурации

| Переменная окружения              | Описание                              | Пример значения                        |
|-----------------------------------|---------------------------------------|----------------------------------------|
| `SPRING_DATASOURCE_URL`           | URL базы данных PostgreSQL            | `jdbc:postgresql://localhost:5432/db`  |
| `SPRING_DATASOURCE_USERNAME`      | Имя пользователя БД                   | `postgres`                             |
| `SPRING_DATASOURCE_PASSWORD`      | Пароль пользователя БД                | `secret`                               |
| `SERVER_PORT`                     | Порт приложения (по умолчанию: 8080)  | `9090`                                 |


## 4. Конфигурация Spring Boot

### Обязательные переменные среды

| Переменная                     | Описание                                   | Пример значения                                   |
|--------------------------------|--------------------------------------------|--------------------------------------------------|
| `SPRING_DATASOURCE_URL`        | URL PostgreSQL для динамических правил     | `jdbc:postgresql://localhost:5432/recommendation_db` |
| `SPRING_DATASOURCE_USERNAME`   | Имя пользователя PostgreSQL               | `postgres`                                        |
| `SPRING_DATASOURCE_PASSWORD`   | Пароль PostgreSQL                         | `secret`                                          |
| `SPRING_DATASOURCE_H2_URL`     | Путь к файлу H2 (только чтение)           | `jdbc:h2:file:./transaction.mv.db`                |
| `TELEGRAM_BOT_TOKEN`           | Токен бота Telegram (опционально)         | `123456:ABC-DEF1234`                             |

### Дополнительные настройки

Конфигурация по умолчанию задаётся в:
src/main/resources/application.yml