Перейти до вмісту

Локальна розробка

Ця сторінка — для роботи над самим Railhook. Вона збирає API, воркер і панель керування з вашого робочого дерева й запускає їх з тим самим одним портом, що й справжнє розгортання.

  • Java 17 і Maven 3.9+
  • Node 22+
  • Docker із Compose v2
  1. Клонуйте репозиторій

    Terminal window
    git clone https://github.com/vadymkykalo/railhook.git
    cd railhook
  2. Запустіть усе

    Terminal window
    make up

    Команда створює .env із .env.dist, якщо його немає, збирає три сервіси з вашого дерева, запускає їх із вбудованою базою даних і резервними копіями за розкладом, чекає, доки API й воркер стануть здоровими, і створює топіки Kafka. Не виконуйте жоден із цих кроків вручну.

  3. Відкрийте панель керування

    Перейдіть на http://localhost:8080. Панель, API, документація та ingress-адреси — усе йде через цей порт.

make help показує всі цілі.

Коли стек запущено, перезбирайте й перезапускайте лише той сервіс, який змінили:

Команда Що робить
make dev-api Перезбирає API з кешем збірки, перезапускає його й показує журнали
make dev-worker Те саме для воркера
make dev-ui Те саме для образу панелі керування
make health Показує стан Postgres, Kafka, Redis, API, воркера та вебпорту
make logs / make logs-api Стежить за журналами
make down Зупиняє стек, зберігаючи дані
Порт Що
8080 RAILHOOK_PORT: nginx, що віддає панель і проксує API, ingress і тунелі
5173 Dev-сервер Vite, коли панель запущено через npm run dev
8080, 8082 API та його actuator, лише всередині мережі Docker
8081 Actuator воркера, лише всередині мережі Docker

Щоб дістатися до API чи бази напряму, додайте docker-compose.override.yml і лишіть порти на loopback:

docker-compose.override.yml
services:
api: { ports: ["127.0.0.1:8080:8080", "127.0.0.1:8082:8082"] }
postgres: { ports: ["127.0.0.1:5432:5432"] }

127.0.0.1:8080 для API конфліктує з RAILHOOK_PORT=8080, тож перенесіть один із них.

Панель керування з гарячим перезавантаженням

Section titled “Панель керування з гарячим перезавантаженням”
Terminal window
cd railhook-ui
npm install
npm run dev

Вона працює на http://localhost:5173 і проксує /api на http://localhost:8080, тобто до стеку, запущеного через make up. Щоб спрямувати її деінде, задайте VITE_DEV_API_TARGET.

Terminal window
make docs-dev

Посилання з листів без поштового сервера

Section titled “Посилання з листів без поштового сервера”

З EMAIL_ENABLED=false (типово в .env.dist) нові облікові записи підтверджуються одразу. Посилання для скидання пароля та запрошення записуються в журнал API, а не надсилаються поштою:

Terminal window
make reset-link
make invite-link

Перевірки, які запускає CI

Section titled “Перевірки, які запускає CI”
Terminal window
make test-ui # dashboard unit tests
cd railhook-ui && npm run lint && npm run typecheck
mvn clean compile -B