Home | RU | EN

Локальное развертывание

  1. Скачай файл docker-compose.yml с GitHub по ссылке ниже и просто запусти командой docker-compose up -d. Это всё.

Скачать docker-compose.yml с GitHub для Windows
Скачать docker-compose.yml с GitHub для MacBook (Intel)
Тут надо будет нажать кнопку справа "Download raw file".
Обрати внимание: этот файл довольно объёмный, потому что я заранее захардкодил в него все настройки для ELK, Prometheus и Grafana — чтобы тебе не приходилось создавать отдельные конфигурационные файлы, а можно было поднять всё одной командой и сразу пользоваться без лишней головной боли.

Фронтенд будет доступен по адресу http://localhost

Swagger по адресу http://localhost:8088/swagger-ui/index.html

Kafka UI по адресу: http://localhost:8089 (admin, admin)

MailHog (веб-интерфейс для просмотра отправленных email и подтверждения регистрации) по адресу: http://localhost:8025

Kibana (веб-интерфейс для просмотра логов) по адресу: http://localhost:5601
Для отображения логов в Kibana необходимо прописать индексы (создать так называемые Data views) прямо в графическом интерфейсе Kibana. Во вкладке Discover при первом включении.
Паттерн для индексов: main-app-logs-* и analytics-service-logs-*

Prometheus (система мониторинга и сбора метрик) по адресу: http://localhost:9090/query

Grafana (веб-интерфейс для визуализации метрик) по адресу: http://localhost:3001/d/application-metrics/application-metrics-dashboard?orgId=1&from=now-5m&to=now&timezone=browser&refresh=5s (admin, admin)

PostgreSQL (подключение через любой клиент, н-р: DBeaver):
IP: localhost:5432
Database: spring_digital_bookstore
Username: admin
Password: admin

Credentials администратора в самом приложении:
Логин: admin@gmail.com
Пароль: admin

Хотите узнать как работает взаимодействие через Kafka в этом приложении? Читайте подробное описание

  1. Если хотите чтобы работали функции запроса отзыва о книге у пользователя (по факту у AI) и техподдержка, то необходимо создать в той же директории где лежит docker-compose.yml еще файл .env и прописать в нем следующие переменные, но значения вам придется получить самим (это бесплатно, но придется потратить лишних 15-20 минут вашего времени).
# Вот так должен выглядеть ваш .env файл, но значения для данных переменных должны быть ваши!

OPENAI_API_KEY=sk-proj-...
GEMINI_API_KEY=AIzaSy...

TELEGRAM_BOT_TOKEN=68915...
TELEGRAM_CHAT_ID=14310...

Инструкция по получению токенов, API ключей и прочей лабуды для разных сервисов

1. OpenAI — получение OPENAI_API_KEY

  1. Перейдите на: https://platform.openai.com/settings/organization/api-keys
  2. Создайте организацию (если ещё нет) на https://platform.openai.com/settings/organization/general. Имя любое
  3. Нажмите Create new secret key
  4. Скопируйте ключ:
OPENAI_API_KEY=sk-proj-...

Для бесплатного использования:

  1. Перейдите: https://platform.openai.com/settings/organization/data-controls/sharing
  2. Включите опцию Enable for all projects

2. Gemini — получение GEMINI_API_KEY

  1. Перейдите: https://aistudio.google.com/app/api-keys
  2. Создайте новый ключ Create API key
  3. Скопируйте:
GEMINI_API_KEY=AIzaSy...

Примечание: Бесплатная квота у Gemini очень мала (вроде 20 запросов в месяц для модели, которая используется в этом приложении)
Если не указать GEMINI_API_KEY, то "отзывы без цензуры" работать не будут

3. Telegram — настройки для уведомлений

3.1 Получение TELEGRAM_BOT_TOKEN

  1. В Telegram найдите @BotFather
  2. Отправьте /newbot
  3. Назовите бота
  4. Скопируйте токен:
TELEGRAM_BOT_TOKEN=123456:ABC-DEF...

3.2 Получение TELEGRAM_CHAT_ID

Быстрее всего через:

  1. В Telegram найдите @userinfobot
  2. Напишите ему /start
  3. В ответе он покажет ваш Chat ID
  4. Вставьте в переменную:
TELEGRAM_CHAT_ID=123456789

4. Пример итогового .env файла


OPENAI_API_KEY=sk-proj-...
GEMINI_API_KEY=AIzaSy...

TELEGRAM_BOT_TOKEN=123456:ABC-DEF...
TELEGRAM_CHAT_ID=123456789