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

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

Для роботи над самим 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 й воркер пройдуть перевірки стану. Не виконуйте жоден із цих кроків вручну.

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

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

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

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

Команда Що робить
make dev-api Перезбирає API з кешем збірки, перезапускає його й показує його логи в реальному часі
make dev-worker Те саме для воркера
make dev-ui Те саме для образу панелі керування
make health Показує стан Postgres, 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.

Запуск сайту документації

Section titled “Запуск сайту документації”
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