Локальна розробка
Для роботи над самим Railhook: API, воркер і панель керування збираються з вашого робочого дерева й запускаються за тією самою схемою з одним портом, що й справжнє розгортання.
Що потрібно
Section titled “Що потрібно”- Java 17 і Maven 3.9+
- Node 22+
- Docker із Compose v2
Запуск стеку
Section titled “Запуск стеку”-
Клонуйте репозиторій
Terminal window git clone https://github.com/vadymkykalo/railhook.gitcd railhook -
Запустіть усе
Terminal window make upКоманда створює
.envіз.env.dist, якщо його немає, збирає три сервіси з вашого дерева, запускає їх із вбудованою базою даних і резервними копіями за розкладом і чекає, доки API й воркер пройдуть перевірки стану. Не виконуйте жоден із цих кроків вручну. -
Відкрийте панель керування
Перейдіть на
http://localhost:8080. Панель, API, документація та ingress-адреси — усе працює через цей порт.
make help показує всі цілі.
Цикл розробки
Section titled “Цикл розробки”Коли стек запущено, перезбирайте й перезапускайте лише той сервіс, який змінили:
| Команда | Що робить |
|---|---|
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-інтерфейсу:
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 “Запуск панелі з гарячим перезавантаженням”cd railhook-uinpm installnpm run devВона працює на http://localhost:5173 і проксує /api на http://localhost:8080, тобто працює зі стеком, запущеним через make up. Щоб спрямувати її на інший бекенд, задайте VITE_DEV_API_TARGET.
Запуск сайту документації
Section titled “Запуск сайту документації”make docs-devПосилання з листів без поштового сервера
Section titled “Посилання з листів без поштового сервера”З EMAIL_ENABLED=false (типово в .env.dist) нові облікові записи підтверджуються одразу. Посилання для скидання пароля та запрошення записуються в лог API, а не надсилаються поштою:
make reset-linkmake invite-linkПеревірки, які запускає CI
Section titled “Перевірки, які запускає CI”make test-ui # dashboard unit testscd railhook-ui && npm run lint && npm run typecheckmvn clean compile -B