Config Schema
This page contains the full config schema for LoggiFly.
The content of this page is dynamically generatated from the pydantic models that make up the config.yaml structure.
Top-level Config
| Field | Type | Default | Required | Description |
|---|---|---|---|---|
version | integer | 2 | – | Config schema version. Must be `2`. |
containers | ContainerSourceConfig | null | – | Configuration for Docker container monitoring. |
swarm | SwarmSourceConfig | null | – | Configuration for Docker Swarm service monitoring. |
notifications | NotificationsConfig | NotificationsConfig | – | Notification service configuration (ntfy, apprise, webhook). |
global | GlobalConfig | GlobalConfig | – | – |
settings | SettingsConfig | SettingsConfig | – | Application-wide settings. |
containers ContainerSourceConfig
| Field | Type | Default | Required | Description |
|---|---|---|---|---|
container_events | ContainerEventConfig[] | null | – | Events to monitor on containers. Triggers when the specified Docker lifecycle event occurs. |
keywords | KeywordItem[] | RegexItem[] | AllOf[] | null | – | List of keywords, regexes, or `all_of` groups to match in log lines. |
scope | ScopeConfig | null | – | Restrict container monitoring to specific Docker hosts. |
never_monitor | ContainerMatchCriteria | null | – | Containers that should never be monitored, regardless of other rules. |
defaults | ModularDefaultsConfig | null | – | Default settings applied to all container rules. |
rules | ContainerRule[] | null | – | List of container monitoring rules. |
groups | ContainerGroupConfig[] | null | – | Groups of rules sharing common config (scope, defaults, keywords). |
container_events[]
ContainerEventConfig| Field | Type | Default | Required | Description |
|---|---|---|---|---|
trigger_on | TriggerOnConfig | null | – | Only trigger after a keyword matches a set number of times within a timeframe. |
container_action | string | null | – | Action to perform on the container when this keyword is matched. One of `restart`, `stop`, `start`. Use 'action@container_name' to perform the action on a different container (this is always limited to the same host). |
olivetin_actions | OliveTinAction[] | null | – | List of OliveTin actions to trigger when this keyword is matched. |
event | string | – | ✅ | Docker container event to monitor. One of: start, stop, die, crash, destroy, healthy, unhealthy, starting, oom, kill, create, restart. |
+ 29 overridable fields inherited from Shared Overridable Fields
| Field | Type | Default | Description |
|---|---|---|---|
ntfy_tags | string | null | Comma-separated Ntfy tags or emoji shortcodes to include in the notification header. |
ntfy_topic | string | null | Ntfy topic to publish notifications to. |
ntfy_priority | string | integer | null | Notification priority. One of `min`, `low`, `default`, `high`, `max` (or 1–5). |
ntfy_url | string | null | Base URL of the Ntfy server (e.g. `https://ntfy.sh`). |
ntfy_token | string | null | Authentication token for Ntfy. |
ntfy_username | string | null | Username for Ntfy basic authentication. |
ntfy_password | string | null | Password for Ntfy basic authentication. |
ntfy_icon | string | null | URL of an icon to display with the notification. |
ntfy_click | string | null | URL to open when the notification is clicked. |
ntfy_markdown | boolean | null | Render the notification body as Markdown. |
ntfy_actions | NtfyViewAction[] | NtfyHttpAction[] | NtfyBroadcastAction[] | null | List of Ntfy action buttons to attach to the notification. |
ntfy_headers | object | null | Custom HTTP headers to include in the Ntfy request. |
apprise_url | string | null | Apprise-compatible notification URL (supports 100+ services). |
webhook_url | string | null | HTTP endpoint to POST notification payloads to. |
webhook_headers | object | null | Custom HTTP headers for webhook requests. |
ignore_keywords | SimpleKeyword[] | SimpleRegex[] | null | Keywords or regexes to suppress — matching log lines will not trigger notifications. |
title_template | string | null | Jinja2 template for the notification title. Use `{{ variable }}` placeholders (e.g. `{{ container_name }}`, `{{ keyword }}`). |
message_template | string | null | Jinja2 template for the notification message body. Use `{{ variable }}` placeholders (e.g. `{{ log_entry }}`, `{{ keyword }}`). |
olivetin_url | string | null | Base URL of the OliveTin instance to trigger actions on. |
olivetin_username | string | null | Username for OliveTin authentication. |
olivetin_password | string | null | Password for OliveTin authentication. |
attach_logfile | boolean | null | Attach recent log lines as a file to the notification. |
trigger_cooldown | integer | null | Minimum seconds between repeated triggers for the same keyword on the same target. `0` disables cooldown. |
container_action_cooldown | integer | null | Minimum seconds between repeated container actions (restart/stop) on the same target. |
attachment_lines | integer | null | Number of log lines to include in the log attachment. |
hide_full_regex | boolean | null | In notifications, hide the full regex match and only show named capturing groups. |
regex_case_sensitive | boolean | null | Whether regex patterns are case-sensitive. |
disable_trigger_notifications | boolean | null | Suppress all trigger notifications. Useful when only container actions or OliveTin actions are needed. |
merge_matches | boolean | null | Combine multiple keyword matches from the same log entry into a single notification. |
trigger_on
TriggerOnConfig| Field | Type | Default | Required | Description |
|---|---|---|---|---|
count | integer | – | ✅ | Number of matches required within the timeframe to trigger. |
timeframe | integer | – | ✅ | Time window in seconds within which `count` matches must occur. |
olivetin_actions[]
OliveTinAction| Field | Type | Default | Required | Description |
|---|---|---|---|---|
id | string | – | ✅ | ID of the OliveTin action to trigger. |
arguments | OliveTinArgument[] | null | – | List of named arguments to pass to the OliveTin action. |
arguments[]
OliveTinArgument| Field | Type | Default | Required | Description |
|---|---|---|---|---|
name | string | – | ✅ | Argument name. |
value | string | – | ✅ | Argument value. |
scope
ScopeConfig| Field | Type | Default | Required | Description |
|---|---|---|---|---|
hosts | string[] | null | – | Restrict monitoring to specific Docker hosts by hostname. |
never_monitor
ContainerMatchCriteria| Field | Type | Default | Required | Description |
|---|---|---|---|---|
container_names | string[] | – | ✅ | List of glob patterns for container names to match (e.g. `my-container*`). |
rules[]
ContainerRule| Field | Type | Default | Required | Description |
|---|---|---|---|---|
container_events | ContainerEventConfig[] | null | – | Events to monitor on containers. Triggers when the specified Docker lifecycle event occurs. |
keywords | KeywordItem[] | RegexItem[] | AllOf[] | null | – | List of keywords, regexes, or `all_of` groups to match in log lines. |
id | string | null | – | Unique identifier for this rule. Auto-generated if not provided. |
enabled | boolean | true | – | Whether this rule is active. |
scope | ScopeConfig | null | – | Restrict this rule to specific Docker hosts. |
container_name | string | null | – | Shorthand for `match.include.container_names`. Accepts a single glob pattern for a container name (e.g. `my-container*`). |
match | ContainerMatch | – | ✅ | Criteria for matching the containers this rule applies to. |
+ 29 overridable fields inherited from Shared Overridable Fields
| Field | Type | Default | Description |
|---|---|---|---|
ntfy_tags | string | null | Comma-separated Ntfy tags or emoji shortcodes to include in the notification header. |
ntfy_topic | string | null | Ntfy topic to publish notifications to. |
ntfy_priority | string | integer | null | Notification priority. One of `min`, `low`, `default`, `high`, `max` (or 1–5). |
ntfy_url | string | null | Base URL of the Ntfy server (e.g. `https://ntfy.sh`). |
ntfy_token | string | null | Authentication token for Ntfy. |
ntfy_username | string | null | Username for Ntfy basic authentication. |
ntfy_password | string | null | Password for Ntfy basic authentication. |
ntfy_icon | string | null | URL of an icon to display with the notification. |
ntfy_click | string | null | URL to open when the notification is clicked. |
ntfy_markdown | boolean | null | Render the notification body as Markdown. |
ntfy_actions | NtfyViewAction[] | NtfyHttpAction[] | NtfyBroadcastAction[] | null | List of Ntfy action buttons to attach to the notification. |
ntfy_headers | object | null | Custom HTTP headers to include in the Ntfy request. |
apprise_url | string | null | Apprise-compatible notification URL (supports 100+ services). |
webhook_url | string | null | HTTP endpoint to POST notification payloads to. |
webhook_headers | object | null | Custom HTTP headers for webhook requests. |
ignore_keywords | SimpleKeyword[] | SimpleRegex[] | null | Keywords or regexes to suppress — matching log lines will not trigger notifications. |
title_template | string | null | Jinja2 template for the notification title. Use `{{ variable }}` placeholders (e.g. `{{ container_name }}`, `{{ keyword }}`). |
message_template | string | null | Jinja2 template for the notification message body. Use `{{ variable }}` placeholders (e.g. `{{ log_entry }}`, `{{ keyword }}`). |
olivetin_url | string | null | Base URL of the OliveTin instance to trigger actions on. |
olivetin_username | string | null | Username for OliveTin authentication. |
olivetin_password | string | null | Password for OliveTin authentication. |
attach_logfile | boolean | null | Attach recent log lines as a file to the notification. |
trigger_cooldown | integer | null | Minimum seconds between repeated triggers for the same keyword on the same target. `0` disables cooldown. |
container_action_cooldown | integer | null | Minimum seconds between repeated container actions (restart/stop) on the same target. |
attachment_lines | integer | null | Number of log lines to include in the log attachment. |
hide_full_regex | boolean | null | In notifications, hide the full regex match and only show named capturing groups. |
regex_case_sensitive | boolean | null | Whether regex patterns are case-sensitive. |
disable_trigger_notifications | boolean | null | Suppress all trigger notifications. Useful when only container actions or OliveTin actions are needed. |
merge_matches | boolean | null | Combine multiple keyword matches from the same log entry into a single notification. |
match
ContainerMatch| Field | Type | Default | Required | Description |
|---|---|---|---|---|
include | ContainerMatchCriteria | – | ✅ | Containers that must match. |
exclude | ContainerMatchCriteria | null | – | Containers to exclude even if they match `include`. |
groups[]
ContainerGroupConfig| Field | Type | Default | Required | Description |
|---|---|---|---|---|
container_events | ContainerEventConfig[] | null | – | Events to monitor on containers. Triggers when the specified Docker lifecycle event occurs. |
keywords | KeywordItem[] | RegexItem[] | AllOf[] | null | – | List of keywords, regexes, or `all_of` groups to match in log lines. |
scope | ScopeConfig | null | – | Restrict this group to specific Docker hosts. AND-combined with source-level scope. |
never_monitor | ContainerMatchCriteria | null | – | Containers excluded from monitoring within this group only. |
defaults | ModularDefaultsConfig | null | – | Default settings applied to all rules in this group. |
rules | ContainerRule[] | – | ✅ | Rules within this group. At least one rule is required. |
swarm SwarmSourceConfig
| Field | Type | Default | Required | Description |
|---|---|---|---|---|
container_events | ContainerEventConfig[] | null | – | Events to monitor on containers. Triggers when the specified Docker lifecycle event occurs. |
keywords | KeywordItem[] | RegexItem[] | AllOf[] | null | – | List of keywords, regexes, or `all_of` groups to match in log lines. |
scope | ScopeConfig | null | – | Restrict Swarm monitoring to specific Docker hosts. |
never_monitor | SwarmMatchCriteria | null | – | Swarm services that should never be monitored, regardless of other rules. |
defaults | ModularDefaultsConfig | null | – | Default settings applied to all Swarm rules. |
rules | SwarmRule[] | null | – | List of Swarm service monitoring rules. |
groups | SwarmGroupConfig[] | null | – | Groups of rules sharing common config (scope, defaults, keywords). |
never_monitor
SwarmMatchCriteria| Field | Type | Default | Required | Description |
|---|---|---|---|---|
stack_names | string[] | null | – | List of glob patterns for Swarm stack names to match (e.g. `my-stack*`). |
service_names | string[] | null | – | List of glob patterns for Swarm service names to match (e.g. `my-service*`). |
rules[]
SwarmRule| Field | Type | Default | Required | Description |
|---|---|---|---|---|
container_events | ContainerEventConfig[] | null | – | Events to monitor on containers. Triggers when the specified Docker lifecycle event occurs. |
keywords | KeywordItem[] | RegexItem[] | AllOf[] | null | – | List of keywords, regexes, or `all_of` groups to match in log lines. |
id | string | null | – | Unique identifier for this rule. Auto-generated if not provided. |
enabled | boolean | true | – | Whether this rule is active. |
scope | ScopeConfig | null | – | Restrict this rule to specific Docker hosts. |
stack_name | string | null | – | Shorthand for `match.include.stack_names`. Accepts a single glob pattern for a stack name (e.g. `my-stack*`). |
service_name | string | null | – | Shorthand for `match.include.service_names`. Accepts a single glob pattern for a service name (e.g. `my-service*`). |
match | SwarmMatch | – | ✅ | Criteria for matching the Swarm services this rule applies to. |
+ 29 overridable fields inherited from Shared Overridable Fields
| Field | Type | Default | Description |
|---|---|---|---|
ntfy_tags | string | null | Comma-separated Ntfy tags or emoji shortcodes to include in the notification header. |
ntfy_topic | string | null | Ntfy topic to publish notifications to. |
ntfy_priority | string | integer | null | Notification priority. One of `min`, `low`, `default`, `high`, `max` (or 1–5). |
ntfy_url | string | null | Base URL of the Ntfy server (e.g. `https://ntfy.sh`). |
ntfy_token | string | null | Authentication token for Ntfy. |
ntfy_username | string | null | Username for Ntfy basic authentication. |
ntfy_password | string | null | Password for Ntfy basic authentication. |
ntfy_icon | string | null | URL of an icon to display with the notification. |
ntfy_click | string | null | URL to open when the notification is clicked. |
ntfy_markdown | boolean | null | Render the notification body as Markdown. |
ntfy_actions | NtfyViewAction[] | NtfyHttpAction[] | NtfyBroadcastAction[] | null | List of Ntfy action buttons to attach to the notification. |
ntfy_headers | object | null | Custom HTTP headers to include in the Ntfy request. |
apprise_url | string | null | Apprise-compatible notification URL (supports 100+ services). |
webhook_url | string | null | HTTP endpoint to POST notification payloads to. |
webhook_headers | object | null | Custom HTTP headers for webhook requests. |
ignore_keywords | SimpleKeyword[] | SimpleRegex[] | null | Keywords or regexes to suppress — matching log lines will not trigger notifications. |
title_template | string | null | Jinja2 template for the notification title. Use `{{ variable }}` placeholders (e.g. `{{ container_name }}`, `{{ keyword }}`). |
message_template | string | null | Jinja2 template for the notification message body. Use `{{ variable }}` placeholders (e.g. `{{ log_entry }}`, `{{ keyword }}`). |
olivetin_url | string | null | Base URL of the OliveTin instance to trigger actions on. |
olivetin_username | string | null | Username for OliveTin authentication. |
olivetin_password | string | null | Password for OliveTin authentication. |
attach_logfile | boolean | null | Attach recent log lines as a file to the notification. |
trigger_cooldown | integer | null | Minimum seconds between repeated triggers for the same keyword on the same target. `0` disables cooldown. |
container_action_cooldown | integer | null | Minimum seconds between repeated container actions (restart/stop) on the same target. |
attachment_lines | integer | null | Number of log lines to include in the log attachment. |
hide_full_regex | boolean | null | In notifications, hide the full regex match and only show named capturing groups. |
regex_case_sensitive | boolean | null | Whether regex patterns are case-sensitive. |
disable_trigger_notifications | boolean | null | Suppress all trigger notifications. Useful when only container actions or OliveTin actions are needed. |
merge_matches | boolean | null | Combine multiple keyword matches from the same log entry into a single notification. |
match
SwarmMatch| Field | Type | Default | Required | Description |
|---|---|---|---|---|
include | SwarmMatchCriteria | – | ✅ | Swarm services that must match. |
exclude | SwarmMatchCriteria | null | – | Swarm services to exclude even if they match `include`. |
groups[]
SwarmGroupConfig| Field | Type | Default | Required | Description |
|---|---|---|---|---|
container_events | ContainerEventConfig[] | null | – | Events to monitor on containers. Triggers when the specified Docker lifecycle event occurs. |
keywords | KeywordItem[] | RegexItem[] | AllOf[] | null | – | List of keywords, regexes, or `all_of` groups to match in log lines. |
scope | ScopeConfig | null | – | Restrict this group to specific Docker hosts. AND-combined with source-level scope. |
never_monitor | SwarmMatchCriteria | null | – | Swarm services excluded from monitoring within this group only. |
defaults | ModularDefaultsConfig | null | – | Default settings applied to all rules in this group. |
rules | SwarmRule[] | – | ✅ | Rules within this group. At least one rule is required. |
notifications NotificationsConfig
| Field | Type | Default | Required | Description |
|---|---|---|---|---|
ntfy | NtfyConfig | null | – | Ntfy push notification service configuration. |
apprise | AppriseConfig | null | – | Apprise multi-service notification configuration. |
webhook | WebhookConfig | null | – | Webhook notification configuration. |
ntfy
NtfyConfig| Field | Type | Default | Required | Description |
|---|---|---|---|---|
url | string | – | ✅ | Base URL of the Ntfy server (e.g. `https://ntfy.sh`). |
topic | string | – | ✅ | Ntfy topic to publish notifications to. |
token | string | null | – | Authentication token for Ntfy. |
username | string | null | – | Username for Ntfy basic authentication. |
password | string | null | – | Password for Ntfy basic authentication. |
priority | string | integer | 3 | – | Notification priority. One of `min`, `low`, `default`, `high`, `max` (or 1–5). |
tags | string | kite,mag | – | Comma-separated Ntfy tags or emoji shortcodes to include in the notification header. |
icon | string | null | – | URL of an icon to display with the notification. |
click | string | null | – | URL to open when the notification is clicked. |
markdown | boolean | null | – | Render the notification body as Markdown. |
actions | NtfyViewAction[] | NtfyHttpAction[] | NtfyBroadcastAction[] | null | – | List of Ntfy action buttons to attach to the notification. |
headers | object | null | – | Custom HTTP headers to include in the Ntfy request. |
apprise
AppriseConfig| Field | Type | Default | Required | Description |
|---|---|---|---|---|
url | string | – | ✅ | Apprise-compatible notification URL (supports 100+ services). |
webhook
WebhookConfig| Field | Type | Default | Required | Description |
|---|---|---|---|---|
url | string | – | ✅ | HTTP endpoint to POST notification payloads to. |
headers | object | null | – | Custom HTTP headers for webhook requests. |
global GlobalConfig
| Field | Type | Default | Required | Description |
|---|---|---|---|---|
keywords | KeywordItem[] | RegexItem[] | AllOf[] | null | – | List of keywords, regexes, or `all_of` groups to match in log lines. |
defaults | RootDefaultsConfig | RootDefaultsConfig | – | Global default settings applied to all rules unless overridden. |
defaults
RootDefaultsConfig| Field | Type | Default | Required | Description |
|---|---|---|---|---|
ntfy_tags | string | null | – | Comma-separated Ntfy tags or emoji shortcodes to include in the notification header. |
ntfy_topic | string | null | – | Ntfy topic to publish notifications to. |
ntfy_priority | string | integer | null | – | Notification priority. One of `min`, `low`, `default`, `high`, `max` (or 1–5). |
ntfy_url | string | null | – | Base URL of the Ntfy server (e.g. `https://ntfy.sh`). |
ntfy_token | string | null | – | Authentication token for Ntfy. |
ntfy_username | string | null | – | Username for Ntfy basic authentication. |
ntfy_password | string | null | – | Password for Ntfy basic authentication. |
ntfy_icon | string | null | – | URL of an icon to display with the notification. |
ntfy_click | string | null | – | URL to open when the notification is clicked. |
ntfy_markdown | boolean | null | – | Render the notification body as Markdown. |
ntfy_actions | NtfyViewAction[] | NtfyHttpAction[] | NtfyBroadcastAction[] | null | – | List of Ntfy action buttons to attach to the notification. |
ntfy_headers | object | null | – | Custom HTTP headers to include in the Ntfy request. |
apprise_url | string | null | – | Apprise-compatible notification URL (supports 100+ services). |
webhook_url | string | null | – | HTTP endpoint to POST notification payloads to. |
webhook_headers | object | null | – | Custom HTTP headers for webhook requests. |
ignore_keywords | SimpleKeyword[] | SimpleRegex[] | null | – | Keywords or regexes to suppress — matching log lines will not trigger notifications. |
title_template | string | null | – | Jinja2 template for the notification title. Use `{{ variable }}` placeholders (e.g. `{{ container_name }}`, `{{ keyword }}`). |
message_template | string | null | – | Jinja2 template for the notification message body. Use `{{ variable }}` placeholders (e.g. `{{ log_entry }}`, `{{ keyword }}`). |
olivetin_url | string | null | – | Base URL of the OliveTin instance to trigger actions on. |
olivetin_username | string | null | – | Username for OliveTin authentication. |
olivetin_password | string | null | – | Password for OliveTin authentication. |
attach_logfile | boolean | false | – | Attach recent log lines as a file to the notification. |
trigger_cooldown | integer | 0 | – | Minimum seconds between repeated triggers for the same keyword on the same target. `0` disables cooldown. |
container_action_cooldown | integer | 60 | – | Minimum seconds between repeated container actions (restart/stop) on the same target. |
attachment_lines | integer | 20 | – | Number of log lines to include in the log attachment. |
hide_full_regex | boolean | false | – | In notifications, hide the full regex match and only show named capturing groups. |
regex_case_sensitive | boolean | true | – | Whether regex patterns are case-sensitive. |
disable_trigger_notifications | boolean | false | – | Suppress all trigger notifications. Useful when only container actions or OliveTin actions are needed. |
merge_matches | boolean | false | – | Combine multiple keyword matches from the same log entry into a single notification. |
settings SettingsConfig
| Field | Type | Default | Required | Description |
|---|---|---|---|---|
log_level | string | INFO | – | Log verbosity level. One of `DEBUG`, `INFO`, `WARNING`, `ERROR`. |
multi_line_entries | boolean | true | – | Catch log entries that span multiple lines instead of going line by line. |
compact_summary_message | boolean | false | – | Get a comma-separated list of monitored targets instead of a multi-line list in startup and config reload notifications. |
reload_config | boolean | true | – | Automatically reload configuration when the config file changes. |
system_notifications | SystemNotifications | boolean | SystemNotifications | – | System notifications settings. Can be set to a boolean to enable or disable all notifications or to a SystemNotifications object to enable or disable specific notifications. |
system_notifications
SystemNotifications| Field | Type | Default | Required | Description |
|---|---|---|---|---|
start | boolean | true | – | Enable the notification sent when LoggiFly starts. |
shutdown | boolean | true | – | Enable the notification sent when LoggiFly shuts down. |
config_reload | boolean | true | – | Enable the notification sent when the config file is reloaded. |
monitor_event | boolean | true | – | Enable the notification sent when a container starts or stops being monitored. |
Appendix
Shared Overridable Fields
These fields can be set at multiple levels: under defaults, per rule, and per keyword/regex item. A value set at a deeper level overrides the parent.
| Field | Type | Default | Required | Description |
|---|---|---|---|---|
ntfy_tags | string | null | – | Comma-separated Ntfy tags or emoji shortcodes to include in the notification header. |
ntfy_topic | string | null | – | Ntfy topic to publish notifications to. |
ntfy_priority | string | integer | null | – | Notification priority. One of `min`, `low`, `default`, `high`, `max` (or 1–5). |
ntfy_url | string | null | – | Base URL of the Ntfy server (e.g. `https://ntfy.sh`). |
ntfy_token | string | null | – | Authentication token for Ntfy. |
ntfy_username | string | null | – | Username for Ntfy basic authentication. |
ntfy_password | string | null | – | Password for Ntfy basic authentication. |
ntfy_icon | string | null | – | URL of an icon to display with the notification. |
ntfy_click | string | null | – | URL to open when the notification is clicked. |
ntfy_markdown | boolean | null | – | Render the notification body as Markdown. |
ntfy_actions | NtfyViewAction[] | NtfyHttpAction[] | NtfyBroadcastAction[] | null | – | List of Ntfy action buttons to attach to the notification. |
ntfy_headers | object | null | – | Custom HTTP headers to include in the Ntfy request. |
apprise_url | string | null | – | Apprise-compatible notification URL (supports 100+ services). |
webhook_url | string | null | – | HTTP endpoint to POST notification payloads to. |
webhook_headers | object | null | – | Custom HTTP headers for webhook requests. |
ignore_keywords | SimpleKeyword[] | SimpleRegex[] | null | – | Keywords or regexes to suppress — matching log lines will not trigger notifications. |
title_template | string | null | – | Jinja2 template for the notification title. Use `{{ variable }}` placeholders (e.g. `{{ container_name }}`, `{{ keyword }}`). |
message_template | string | null | – | Jinja2 template for the notification message body. Use `{{ variable }}` placeholders (e.g. `{{ log_entry }}`, `{{ keyword }}`). |
olivetin_url | string | null | – | Base URL of the OliveTin instance to trigger actions on. |
olivetin_username | string | null | – | Username for OliveTin authentication. |
olivetin_password | string | null | – | Password for OliveTin authentication. |
attach_logfile | boolean | null | – | Attach recent log lines as a file to the notification. |
trigger_cooldown | integer | null | – | Minimum seconds between repeated triggers for the same keyword on the same target. `0` disables cooldown. |
container_action_cooldown | integer | null | – | Minimum seconds between repeated container actions (restart/stop) on the same target. |
attachment_lines | integer | null | – | Number of log lines to include in the log attachment. |
hide_full_regex | boolean | null | – | In notifications, hide the full regex match and only show named capturing groups. |
regex_case_sensitive | boolean | null | – | Whether regex patterns are case-sensitive. |
disable_trigger_notifications | boolean | null | – | Suppress all trigger notifications. Useful when only container actions or OliveTin actions are needed. |
merge_matches | boolean | null | – | Combine multiple keyword matches from the same log entry into a single notification. |
Union Types
These types appear as list items in discriminated-union array fields throughout the config. They are documented here separately because they may appear in multiple places.
NtfyViewAction
| Field | Type | Default | Required | Description |
|---|---|---|---|---|
action | string | view | – | Action type. Must be `view`. |
label | string | – | ✅ | Button label shown in the notification. |
url | string | – | ✅ | URL to open when the action button is tapped. |
clear | boolean | false | – | Clear the notification after the action is triggered. |
NtfyHttpAction
| Field | Type | Default | Required | Description |
|---|---|---|---|---|
action | string | http | – | Action type. Must be `http`. |
label | string | – | ✅ | Button label shown in the notification. |
url | string | – | ✅ | URL called by the HTTP action. |
clear | boolean | false | – | Clear the notification after the action is triggered. |
method | string | null | – | HTTP method for the request (e.g. `GET`, `POST`). |
headers | object | null | – | Custom HTTP headers to include in the request. |
body | string | null | – | Request body for the HTTP action. |
NtfyBroadcastAction
| Field | Type | Default | Required | Description |
|---|---|---|---|---|
action | string | broadcast | – | Action type. Must be `broadcast`. |
label | string | – | ✅ | Button label shown in the notification. |
clear | boolean | false | – | Clear the notification after the action is triggered. |
intent | string | null | – | Android intent for the broadcast action. |
extras | object | null | – | Extra key-value pairs for the Android intent. |
SimpleKeyword
| Field | Type | Default | Required | Description |
|---|---|---|---|---|
keyword | string | – | ✅ | Plain text string to search for in log lines. |
SimpleRegex
| Field | Type | Default | Required | Description |
|---|---|---|---|---|
regex | string | – | ✅ | Regular expression to match against log lines. |
KeywordItem
| Field | Type | Default | Required | Description |
|---|---|---|---|---|
trigger_on | TriggerOnConfig | null | – | Only trigger after a keyword matches a set number of times within a timeframe. |
container_action | string | null | – | Action to perform on the container when this keyword is matched. One of `restart`, `stop`, `start`. Use 'action@container_name' to perform the action on a different container (this is always limited to the same host). |
olivetin_actions | OliveTinAction[] | null | – | List of OliveTin actions to trigger when this keyword is matched. |
keyword | string | – | ✅ | Plain text string to search for in log lines. |
+ 29 overridable fields inherited from Shared Overridable Fields
| Field | Type | Default | Description |
|---|---|---|---|
ntfy_tags | string | null | Comma-separated Ntfy tags or emoji shortcodes to include in the notification header. |
ntfy_topic | string | null | Ntfy topic to publish notifications to. |
ntfy_priority | string | integer | null | Notification priority. One of `min`, `low`, `default`, `high`, `max` (or 1–5). |
ntfy_url | string | null | Base URL of the Ntfy server (e.g. `https://ntfy.sh`). |
ntfy_token | string | null | Authentication token for Ntfy. |
ntfy_username | string | null | Username for Ntfy basic authentication. |
ntfy_password | string | null | Password for Ntfy basic authentication. |
ntfy_icon | string | null | URL of an icon to display with the notification. |
ntfy_click | string | null | URL to open when the notification is clicked. |
ntfy_markdown | boolean | null | Render the notification body as Markdown. |
ntfy_actions | NtfyViewAction[] | NtfyHttpAction[] | NtfyBroadcastAction[] | null | List of Ntfy action buttons to attach to the notification. |
ntfy_headers | object | null | Custom HTTP headers to include in the Ntfy request. |
apprise_url | string | null | Apprise-compatible notification URL (supports 100+ services). |
webhook_url | string | null | HTTP endpoint to POST notification payloads to. |
webhook_headers | object | null | Custom HTTP headers for webhook requests. |
ignore_keywords | SimpleKeyword[] | SimpleRegex[] | null | Keywords or regexes to suppress — matching log lines will not trigger notifications. |
title_template | string | null | Jinja2 template for the notification title. Use `{{ variable }}` placeholders (e.g. `{{ container_name }}`, `{{ keyword }}`). |
message_template | string | null | Jinja2 template for the notification message body. Use `{{ variable }}` placeholders (e.g. `{{ log_entry }}`, `{{ keyword }}`). |
olivetin_url | string | null | Base URL of the OliveTin instance to trigger actions on. |
olivetin_username | string | null | Username for OliveTin authentication. |
olivetin_password | string | null | Password for OliveTin authentication. |
attach_logfile | boolean | null | Attach recent log lines as a file to the notification. |
trigger_cooldown | integer | null | Minimum seconds between repeated triggers for the same keyword on the same target. `0` disables cooldown. |
container_action_cooldown | integer | null | Minimum seconds between repeated container actions (restart/stop) on the same target. |
attachment_lines | integer | null | Number of log lines to include in the log attachment. |
hide_full_regex | boolean | null | In notifications, hide the full regex match and only show named capturing groups. |
regex_case_sensitive | boolean | null | Whether regex patterns are case-sensitive. |
disable_trigger_notifications | boolean | null | Suppress all trigger notifications. Useful when only container actions or OliveTin actions are needed. |
merge_matches | boolean | null | Combine multiple keyword matches from the same log entry into a single notification. |
RegexItem
| Field | Type | Default | Required | Description |
|---|---|---|---|---|
trigger_on | TriggerOnConfig | null | – | Only trigger after a keyword matches a set number of times within a timeframe. |
container_action | string | null | – | Action to perform on the container when this keyword is matched. One of `restart`, `stop`, `start`. Use 'action@container_name' to perform the action on a different container (this is always limited to the same host). |
olivetin_actions | OliveTinAction[] | null | – | List of OliveTin actions to trigger when this keyword is matched. |
regex | string | – | ✅ | Regular expression to match against log lines. Named capturing groups can be used in notification templates. |
+ 29 overridable fields inherited from Shared Overridable Fields
| Field | Type | Default | Description |
|---|---|---|---|
ntfy_tags | string | null | Comma-separated Ntfy tags or emoji shortcodes to include in the notification header. |
ntfy_topic | string | null | Ntfy topic to publish notifications to. |
ntfy_priority | string | integer | null | Notification priority. One of `min`, `low`, `default`, `high`, `max` (or 1–5). |
ntfy_url | string | null | Base URL of the Ntfy server (e.g. `https://ntfy.sh`). |
ntfy_token | string | null | Authentication token for Ntfy. |
ntfy_username | string | null | Username for Ntfy basic authentication. |
ntfy_password | string | null | Password for Ntfy basic authentication. |
ntfy_icon | string | null | URL of an icon to display with the notification. |
ntfy_click | string | null | URL to open when the notification is clicked. |
ntfy_markdown | boolean | null | Render the notification body as Markdown. |
ntfy_actions | NtfyViewAction[] | NtfyHttpAction[] | NtfyBroadcastAction[] | null | List of Ntfy action buttons to attach to the notification. |
ntfy_headers | object | null | Custom HTTP headers to include in the Ntfy request. |
apprise_url | string | null | Apprise-compatible notification URL (supports 100+ services). |
webhook_url | string | null | HTTP endpoint to POST notification payloads to. |
webhook_headers | object | null | Custom HTTP headers for webhook requests. |
ignore_keywords | SimpleKeyword[] | SimpleRegex[] | null | Keywords or regexes to suppress — matching log lines will not trigger notifications. |
title_template | string | null | Jinja2 template for the notification title. Use `{{ variable }}` placeholders (e.g. `{{ container_name }}`, `{{ keyword }}`). |
message_template | string | null | Jinja2 template for the notification message body. Use `{{ variable }}` placeholders (e.g. `{{ log_entry }}`, `{{ keyword }}`). |
olivetin_url | string | null | Base URL of the OliveTin instance to trigger actions on. |
olivetin_username | string | null | Username for OliveTin authentication. |
olivetin_password | string | null | Password for OliveTin authentication. |
attach_logfile | boolean | null | Attach recent log lines as a file to the notification. |
trigger_cooldown | integer | null | Minimum seconds between repeated triggers for the same keyword on the same target. `0` disables cooldown. |
container_action_cooldown | integer | null | Minimum seconds between repeated container actions (restart/stop) on the same target. |
attachment_lines | integer | null | Number of log lines to include in the log attachment. |
hide_full_regex | boolean | null | In notifications, hide the full regex match and only show named capturing groups. |
regex_case_sensitive | boolean | null | Whether regex patterns are case-sensitive. |
disable_trigger_notifications | boolean | null | Suppress all trigger notifications. Useful when only container actions or OliveTin actions are needed. |
merge_matches | boolean | null | Combine multiple keyword matches from the same log entry into a single notification. |
AllOf
| Field | Type | Default | Required | Description |
|---|---|---|---|---|
trigger_on | TriggerOnConfig | null | – | Only trigger after a keyword matches a set number of times within a timeframe. |
container_action | string | null | – | Action to perform on the container when this keyword is matched. One of `restart`, `stop`, `start`. Use 'action@container_name' to perform the action on a different container (this is always limited to the same host). |
olivetin_actions | OliveTinAction[] | null | – | List of OliveTin actions to trigger when this keyword is matched. |
all_of | SimpleKeyword[] | SimpleRegex[] | – | ✅ | List of keywords/regexes that must all be present in a log entry to trigger. |
+ 29 overridable fields inherited from Shared Overridable Fields
| Field | Type | Default | Description |
|---|---|---|---|
ntfy_tags | string | null | Comma-separated Ntfy tags or emoji shortcodes to include in the notification header. |
ntfy_topic | string | null | Ntfy topic to publish notifications to. |
ntfy_priority | string | integer | null | Notification priority. One of `min`, `low`, `default`, `high`, `max` (or 1–5). |
ntfy_url | string | null | Base URL of the Ntfy server (e.g. `https://ntfy.sh`). |
ntfy_token | string | null | Authentication token for Ntfy. |
ntfy_username | string | null | Username for Ntfy basic authentication. |
ntfy_password | string | null | Password for Ntfy basic authentication. |
ntfy_icon | string | null | URL of an icon to display with the notification. |
ntfy_click | string | null | URL to open when the notification is clicked. |
ntfy_markdown | boolean | null | Render the notification body as Markdown. |
ntfy_actions | NtfyViewAction[] | NtfyHttpAction[] | NtfyBroadcastAction[] | null | List of Ntfy action buttons to attach to the notification. |
ntfy_headers | object | null | Custom HTTP headers to include in the Ntfy request. |
apprise_url | string | null | Apprise-compatible notification URL (supports 100+ services). |
webhook_url | string | null | HTTP endpoint to POST notification payloads to. |
webhook_headers | object | null | Custom HTTP headers for webhook requests. |
ignore_keywords | SimpleKeyword[] | SimpleRegex[] | null | Keywords or regexes to suppress — matching log lines will not trigger notifications. |
title_template | string | null | Jinja2 template for the notification title. Use `{{ variable }}` placeholders (e.g. `{{ container_name }}`, `{{ keyword }}`). |
message_template | string | null | Jinja2 template for the notification message body. Use `{{ variable }}` placeholders (e.g. `{{ log_entry }}`, `{{ keyword }}`). |
olivetin_url | string | null | Base URL of the OliveTin instance to trigger actions on. |
olivetin_username | string | null | Username for OliveTin authentication. |
olivetin_password | string | null | Password for OliveTin authentication. |
attach_logfile | boolean | null | Attach recent log lines as a file to the notification. |
trigger_cooldown | integer | null | Minimum seconds between repeated triggers for the same keyword on the same target. `0` disables cooldown. |
container_action_cooldown | integer | null | Minimum seconds between repeated container actions (restart/stop) on the same target. |
attachment_lines | integer | null | Number of log lines to include in the log attachment. |
hide_full_regex | boolean | null | In notifications, hide the full regex match and only show named capturing groups. |
regex_case_sensitive | boolean | null | Whether regex patterns are case-sensitive. |
disable_trigger_notifications | boolean | null | Suppress all trigger notifications. Useful when only container actions or OliveTin actions are needed. |
merge_matches | boolean | null | Combine multiple keyword matches from the same log entry into a single notification. |