Домен і HTTPS
Дайте інстансу, відкритому в інтернет, домен і HTTPS: через інсталятор або за зворотним проксі, який у вас уже працює.
-
Спрямуйте домен на сервер
Створіть для домену запис A з публічною IP-адресою сервера. Порти 80 і 443 мають бути вільними й доступними з інтернету.
-
Встановіть із доменом
Terminal window curl -fsSL https://railhook.io/install.sh | bash -s -- --domain hooks.example.com --email ops@example.com
Що змінює --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/… |
LOG_LEVEL |
WARN |
WEBHOOK_TRUSTED_PROXIES |
172.16.0.0/12, щоб у журнал аудиту й ліміти запитів для кожної IP-адреси потрапляли справжні IP-адреси клієнтів. Якщо Railhook стоїть за CDN, наприклад Cloudflare, додайте також опубліковані діапазони адрес цього CDN, інакше всіх відвідувачів, що пройшли через один edge-вузол, буде пораховано як цей вузол |
-
Встановіть із доменом за вашим проксі
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(змінюється через--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: без пошти облікові записи створюються вже підтвердженими, а запросити нікого не можна.