Встановлення з Docker
Обидва способи запускають той самий docker-compose.yml. Інсталятор також генерує секрети й перевіряє конфігурацію до запуску.
-
Запустіть інсталятор
Terminal window curl -fsSL https://railhook.io/install.sh | bashВін перевіряє Docker, Compose, пам’ять, диск і порт, потім створює
~/railhook:docker-compose.yml, закріплений на останньому релізі,.envзі згенерованими секретами та допоміжний скриптrailhook. Далі запускає стек і чекає на API. Перший запуск виконує міграції, тож може тривати кілька хвилин. -
Відкрийте панель керування
Перейдіть на
http://localhost(абоhttp://<server-ip>; додайте:<port>, якщо встановлювали з--port) і зареєструйтеся. Поштовий сервер не налаштовано, тож обліковий запис активний одразу. -
Збережіть резервну копію
.envWEBHOOK_ENCRYPTION_KEYіWEBHOOK_ENCRYPTION_SALTіз цього файлу шифрують кожен секрет ендпоінта в базі даних. Якщо відновити резервну копію бази без цього файлу, ви отримаєте рядки, які вже ніщо не прочитає.
Параметри інсталятора
Section titled “Параметри інсталятора”Передавайте параметри через конвеєр за допомогою bash -s --:
curl -fsSL https://railhook.io/install.sh | bash -s -- --dir /opt/railhook --port 8080| Параметр | Дія |
|---|---|
--dir <path> |
Куди встановити. Типово ~/railhook |
--version <tag> |
Реліз, на якому закріпити встановлення, v2.12.0 або новіший. Типово — останній реліз |
--port <port> |
Єдиний опублікований порт. Типово 80, або 8080 з --behind-proxy |
--domain <host> |
Працювати на цьому домені через HTTPS. Див. Домен і HTTPS |
--behind-proxy |
Разом із --domain: TLS термінує ваш власний зворотний проксі, а панель приймає його запити на 127.0.0.1 |
--email <address> |
Куди Let’s Encrypt надсилатиме попередження про закінчення терміну сертифіката |
--no-start |
Записати файли й нічого не запускати |
--admin-email <address> |
Адміністратори платформи через кому. Працює й разом із --refresh |
--yes |
Встановити в непорожній каталог. Без нього інсталятор відмовляється |
--check |
Лише запустити перевірки системи та конфігурації |
--refresh |
Переписати помічник ./railhook і Caddyfile наявного встановлення |
--uninstall |
Зупинити стек і видалити контейнери. Томи з даними лишаються |
--purge |
Видалити встановлення разом із томами даних |
Щоденні команди
Section titled “Щоденні команди”Запускайте їх із каталогу встановлення:
| Команда | Що робить |
|---|---|
./railhook status |
Показує контейнери та їхній стан |
./railhook logs [service] |
Показує логи в реальному часі, наприклад ./railhook logs api |
./railhook start / stop / restart |
Запускає, зупиняє або перезапускає стек |
./railhook upgrade [version] |
Робить резервну копію, потім оновлює. Див. Оновлення й резервні копії |
./railhook backup |
Записує дамп бази даних у каталог |
./railhook settings < file |
Додає рядки NAME=value у .env. Секрети й теги образів не приймаються |
./railhook doctor |
Повторно виконує всі перевірки для файлів на диску |
Будь-який інший аргумент передається в Docker Compose, тож ./railhook ps чи ./railhook up -d працюють.
-
Завантажте Compose-файл і перелік налаштувань
Terminal window mkdir railhook && cd railhookcurl -fsSLO https://raw.githubusercontent.com/vadymkykalo/railhook/main/docker-compose.ymlcurl -fsSL https://raw.githubusercontent.com/vadymkykalo/railhook/main/.env.dist -o .env -
Замініть публічні секрети
Значення в
.env.distзагальнодоступні. Згенеруйте власні для кожної з цих змінних:.env WEBHOOK_ENCRYPTION_KEY= # openssl rand -base64 32WEBHOOK_ENCRYPTION_SALT= # openssl rand -base64 16JWT_SECRET= # openssl rand -base64 48POSTGRES_PASSWORD= # must equal DB_PASSWORDDB_PASSWORD=REDIS_PASSWORD=Задайте в
APP_BASE_URLіCORS_ALLOWED_ORIGINSURL, який відкриватимуть користувачі.RAILHOOK_PORTу цьому файлі —8080. -
Запустіть із вбудованою базою даних
Terminal window COMPOSE_PROFILES=embedded-db docker compose up -d -
Перевірте, що все працює
Terminal window curl -f http://localhost:8080/actuator/health/livenesscurl -o /dev/null -w '%{http_code}\n' http://localhost:8080/api/v1/projects # expect 401