Skip to content

Latest commit

 

History

History
184 lines (134 loc) · 4.46 KB

File metadata and controls

184 lines (134 loc) · 4.46 KB
title Configuration
description IncidentRelay configuration file reference

Configuration

IncidentRelay reads the config file path from:

INCIDENTRELAY_CONFIG_FILE

Example:

export INCIDENTRELAY_CONFIG_FILE=/etc/incidentrelay/incidentrelay.conf

For systemd:

Environment=INCIDENTRELAY_CONFIG_FILE=/etc/incidentrelay/incidentrelay.conf

For Docker Compose:

environment:
  INCIDENTRELAY_CONFIG_FILE: /etc/incidentrelay/incidentrelay.conf

The old ONCALL_CONFIG_FILE name should not be used.

Server section

[server]
host = 0.0.0.0
port = 8080
public_base_url = https://incidentrelay.example.com
secret_key = change-me
Option Description
host Address to bind the web service to
port HTTP port
public_base_url External URL used in alert links, buttons and callbacks
secret_key Application secret; change it in production

In production, public_base_url must be the real external HTTPS URL.

Database: SQLite

[database]
type = sqlite
path = /var/lib/incidentrelay/incidentrelay.db

[sqlite]
wal = true
busy_timeout = 5000

SQLite is suitable for small self-hosted installations. Keep one web worker when using SQLite.

Database: PostgreSQL

[database]
type = postgresql
host = 127.0.0.1
port = 5432
name = incidentrelay
user = incidentrelay
password = change-me

Use PostgreSQL for larger installations, higher alert volume, multiple web workers, or long-term production deployments.

SMTP section

Email notification channels use global SMTP settings. SMTP transport is not configured per channel.

[smtp]
host = 127.0.0.1
port = 25
from = incidentrelay@example.com
use_tls = false
user =
password =

For an unauthenticated local relay, leave user and password empty.

For an authenticated SMTP server:

[smtp]
host = smtp.example.com
port = 587
from = incidentrelay@example.com
use_tls = true
user = incidentrelay@example.com
password = change-me

Email notifications are sent to the assigned user's profile email address.

Telegram proxy

If the environment requires a proxy for Telegram Bot API calls, configure it globally. Keep token values in channel configuration, not in the global config.

Example option names depend on the current service config implementation. Use the same config file for web and Telegram worker processes.

Voice section

[voice]
provider = stub
providers_dir = /usr/local/lib/incidentrelay/voice_providers
callback_secret = change-me
Option Description
provider Voice provider name
providers_dir Directory with custom provider modules
callback_secret Secret used for callback validation

Voice call notifications are sent to the assigned user's profile phone number.

Browser push section

Browser push notifications are profile-level PWA/browser notifications. They are not configured as notification channels.

[browser_push]
enabled = true
vapid_public_key = CHANGE_ME_PUBLIC_KEY
vapid_private_key = /etc/incidentrelay/vapid/private_key.pem
vapid_subject = mailto:admin@example.com
action_token_ttl_seconds = 900
Option Description
enabled Enables or disables browser push globally
vapid_public_key Public VAPID key returned to the browser for PushManager.subscribe()
vapid_private_key Private VAPID key or PEM file path used by the server to send Web Push messages
vapid_subject Contact URI included in VAPID claims, usually mailto:admin@example.com
action_token_ttl_seconds Lifetime of one-time ACK/Resolve tokens embedded into push notifications

After changing browser push settings, restart the web service. Restart the scheduler too if it sends notifications in your installation.

Read more: Browser Push.

Scheduler settings

The scheduler process checks reminders, escalations and periodic jobs.

The scheduler wake-up interval is separate from rotation reminder intervals. Rotation reminder intervals are configured per rotation:

0 disables reminders for that rotation
>= 60 sends reminders at that interval in seconds
1..59 invalid

Do not use a global reminder-after setting as a runtime fallback when rotations require an explicit interval.

Logging

If file logging is enabled, use a writable path:

[main]
log_level = INFO
log_file = /var/log/incidentrelay/incidentrelay.log

For systemd and containers, also check journal or container logs.