Tребованиями для развертывания приложения - Rzavsky-ev/StarBank GitHub Wiki
Необходимые сервисы
Для работы приложения требуются следующие компоненты:
Сервис | Версия | Описание |
---|---|---|
Java | 17+ | Основная среда выполнения (используется Spring Boot 3+) |
PostgreSQL | 12+ | База данных для хранения динамических правил и статистики |
H2 Database | 2.1+ | Встроенная БД (только для чтения) с транзакциями пользователей |
Docker | 20+ | Опционально. Для контейнеризации приложения и развертывания |
Детализация
-
Java 17
- Минимальная версия для Spring Boot 3.x.
- Рекомендуется использовать LTS-релизы (например, Temurin JDK).
-
PostgreSQL
- Требуется для таблиц:
rules
,user_stats
. - Настройки подключения задаются в
application.yml
.
- Требуется для таблиц:
-
H2 Database
- Используется в режиме
READ_ONLY
. - Данные предзагружаются из CSV-файлов при старте.
- Используется в режиме
-
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