Домен і HTTPS
Перш ніж відкривати інстанс в інтернет, дайте йому домен і HTTPS. Інсталятор може зробити це за вас, або ж можна поставити Railhook за наявний зворотний проксі.
-
Спрямуйте домен на сервер
Створіть для домену запис A з публічною IP-адресою сервера. Порти 80 і 443 мають бути вільні й відкриті в інтернет.
-
Встановіть із доменом
Terminal window curl -fsSL https://railhook.io/install.sh | bash -s -- --domain hooks.example.com --email [email protected]
Що змінює --domain
Section titled “Що змінює --domain”| Налаштування | Значення |
|---|---|
| TLS-термінатор | Caddy на портах 80 і 443 сам отримує й оновлює сертифікат Let’s Encrypt |
| nginx панелі | Переходить на 127.0.0.1:8080, за Caddy |
APP_ENV |
production, тож платформа не запускається з небезпечною конфігурацією |
APP_BASE_URL, CORS_ALLOWED_ORIGINS |
https://<your domain> |
| Ingress-адреси джерел і адреси тунелів CLI | Беруться з APP_BASE_URL, тож провайдери отримують https://<your domain>/ingress/… |
DB_SSL_MODE |
require |
LOG_LEVEL |
WARN |
WEBHOOK_TRUSTED_PROXIES |
172.16.0.0/12, щоб до журналу аудиту потрапляли справжні IP клієнтів |
-
Встановіть із доменом за вашим проксі
Terminal window curl -fsSL https://railhook.io/install.sh | bash -s -- --domain hooks.example.com --behind-proxyВи отримуєте всі налаштування з таблиці вбудованого HTTPS, крім TLS-термінатора. Caddy не запускається, а сертифікат лишається у вашого проксі. nginx панелі слухає на
127.0.0.1:8080. Щоб вибрати інший loopback-порт, скористайтеся--port. -
Проксуйте все на 127.0.0.1:8080
Надсилайте всі шляхи домену на
http://127.0.0.1:8080. nginx усередині вже маршрутизує панель,/api/,/ingress/,/hook/,/tunnel/і/ws/tunnel. Шлях/ws/tunnel— це WebSocket, відкритий упродовж усієї сесії CLI, тож передавайте заголовки upgrade і задайте довгий тайм-аут читання (вбудований Caddy використовує одну годину).
У режимі production
Section titled “У режимі production”З APP_ENV=production API відмовляється запускатися, а не працює далі, якщо:
- секрет досі містить заглушку або типове значення з постачання,
WEBHOOK_ALLOW_PRIVATE_IPS=true,SWAGGER_ENABLED=true,CORS_ALLOWED_ORIGINSдосі міститьlocalhost.
./railhook doctor перевіряє це заздалегідь. Він також попереджає, якщо APP_BASE_URL досі вказує на localhost або вимкнено EMAIL_ENABLED: без пошти облікові записи створюються вже підтвердженими, а запросити нікого не можна.