Skip to content

Nixos options

services.nginx.virtualHosts.<name>.enablePhare

Whether to enable phare.io management for the virtualhost.

Type: boolean

Default:

false

Example:

true

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare

phare.io monitor configuration for this virtual host.

Type: submodule

Default:

{ }

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.incidentConfirmations

Number of uninterrupted failed checks required to create an incident

Type: integer between 1 and 5 (both inclusive)

Default:

2

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.interval

Monitoring interval in seconds.

Type: one of 30, 60, 120, 180, 300, 600, 900, 1800, 3600

Default:

60

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.name

The name of the monitor. Defaults to attribute name in monitors.

Type: null or string

Default:

null

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.protocol

Whether the monitor should use http, tcp or icmp (ping) to access the resource.

Type: one of “http”, “icmp”, “tcp”

Default:

"http"

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.recoveryConfirmations

Number of uninterrupted successful checks required to resolve an incident

Type: integer between 1 and 5 (both inclusive)

Default:

2

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.regionThreshold

Number of regions that must fail before an incident is confirmed. At most the number of regions.

Type: integer between 1 and 10 (both inclusive)

Default:

config.services.phare.regionThreshold

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.regions

List of regions where monitoring checks are performed

Type: list of (one of “as-jpn-hnd”, “as-sgp-sin”, “as-tha-bkk”, “eu-deu-fra”, “eu-fra-cdg”, “eu-gbr-lhr”, “eu-swe-arn”, “ng-nld-ams”, “na-mex-mex”, “na-usa-iad”, “na-usa-sea”, “oc-aus-syd”, “sa-bra-gru”)

Default:

[
  "eu-deu-fra"
  "eu-swe-arn"
]

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.request

Monitoring request, depends of the chosen protocol. The options listed below are the ones of an HTTP request; a TCP request takes host, port, connection (plain or tls) and tlsSkipVerify, and an ICMP request takes only host.

Type: submodule

Default:

{ }

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.request.body

HTTP request body for POST, PUT and PATCH requests

Type: null or string of at most 500 characters

Default:

null

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.request.followRedirects

Follow redirects

Type: null or boolean

Default:

null

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.request.headers

Additional HTTP headers to add to the request, at most 10.

Type: list of (submodule)

Default:

[ ]

Example:

[ { name = "Authorization"; valueFile = "/run/secrets/api-auth"; } ]

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.request.headers.*.name

Header name

Type: string of at most 50 characters

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.request.headers.*.value

Header value. It is stored in the world-readable Nix store; use valueFile for a secret such as a token.

Type: null or string of at most 1024 characters

Default:

null

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.request.headers.*.valueFile

Path to a file containing the header value. The file is read when the monitors are synced, so the value does not end up in the Nix store.

Type: null or absolute path outside the Nix store, given as a string

Default:

null

Example:

"/run/secrets/api-auth"

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.request.method

HTTP request method

Type: one of “HEAD”, “GET”, “POST”, “PUT”, “PATCH”, “OPTIONS”

Default:

"GET"

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.request.tlsSkipVerify

Skip SSL verification

Type: boolean

Default:

false

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.request.url

HTTP request url. Required, except for the monitor of an nginx virtual host, where it defaults to the virtual host.

Type: null or string of at most 255 characters

Default:

null

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.request.userAgentSecret

Deprecated: the secret is stored in the world-readable Nix store; use userAgentSecretFile instead. A secret value to be used in the User-Agent header for authenticating the request.

Type: null or string

Default:

null

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.request.userAgentSecretFile

Path to a file containing the value of userAgentSecret. The file is read when the monitors are synced, so the secret does not end up in the Nix store.

Type: null or absolute path outside the Nix store, given as a string

Default:

null

Example:

"/run/secrets/phare-user-agent"

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.successAssertions

List of assertions that must be true for the check to be considered successful. HTTP monitors only.

Type: null or (list of (submodule))

Default:

[
  {
    operator = "in";
    selector = null;
    type = "status_code";
    value = "2xx";
  }
]

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.successAssertions.*.operator

Operator to use for the assertion: in or not_in for status_code, equals or not_equals for response_header, and contains or not_contains for response_body.

Type: one of “contains”, “not_contains”, “equals”, “not_equals”, “in”, “not_in”

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.successAssertions.*.selector

The name of the header to assert. Required for, and only allowed with, response_header.

Type: null or string

Default:

null

Example:

"Content-Type"

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.successAssertions.*.type

Type of assertion.

Type: one of “response_body”, “response_header”, “status_code”

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.successAssertions.*.value

The value to assert: a comma-separated list of status codes (x is a wildcard for any digit), the value of the header, or a word or sentence in the response body.

Type: string

Example:

"2xx,30x,418"

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.tags

Tags of the monitor, at most 20. phare.io suggests the form key:value. Tags set on phare.io but not here are removed.

Type: list of at most 20 strings of 1 to 100 characters

Default:

[ ]

Example:

[
  "environment:production"
  "team:platform"
]

Declared by: - module/default.nix

services.nginx.virtualHosts.<name>.phare.timeout

Monitoring timeout in milliseconds.

Type: one of 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000, 15000, 20000, 25000, 30000

Default:

7000

Declared by: - module/default.nix

services.phare.enable

Whether to enable phare.io management.

Type: boolean

Default:

false

Example:

true

Declared by: - module/default.nix

services.phare.enableMaintenanceModeOnRebuild

Whether to enable pausing all monitors before a rebuild. If a maintenance window (regular or rolling) is already active when the rebuild happens, the monitors are left untouched, since the window already governs monitoring for that period.

Type: boolean

Default:

false

Example:

true

Declared by: - module/default.nix

services.phare.alertRules

Declarative phare.io alert rules, synced after the monitors. Alert rules have no name on phare.io, so they are matched by their content: a declared rule that does not exist on phare.io is created. Alert rules on phare.io that are not declared are left untouched, so rules configured in the web-interface keep working. As a consequence, changing a declared rule creates a new rule and the previous version has to be deleted by hand.

Type: attribute set of (submodule)

Default:

{ }

Example:

{
  service-failed = {
    event = "uptime.incident.created";
    eventSettings.type = "manual";
    integrationId = 1234;
  };
  service-recovered = {
    event = "uptime.incident.recovered";
    eventSettings.type = "manual";
    integrationId = 1234;
  };
}

Declared by: - module/default.nix

services.phare.alertRules.<name>.event

The event that triggers the alert rule.

Type: one of “uptime.monitor.created”, “uptime.monitor.deleted”, “uptime.monitor_certificate.discovered”, “uptime.monitor_certificate.expiring”, “uptime.incident.created”, “uptime.incident.propagated”, “uptime.incident.partially_recovered”, “uptime.incident.recovered”, “uptime.incident_comment.created”, “uptime.incident_update.published”, “uptime.maintenance_window.in_progress”, “uptime.maintenance_window.completed”, “uptime.maintenance_window.cancelled”

Example:

"uptime.incident.created"

Declared by: - module/default.nix

services.phare.alertRules.<name>.eventSettings

Additional settings for the event.

Type: submodule

Default:

{ }

Example:

{ type = "manual"; }

Declared by: - module/default.nix

services.phare.alertRules.<name>.eventSettings.daysBeforeExpiry

For uptime.monitor_certificate.expiring (required there): how many days before the certificate expires to alert.

Type: null or integer between 1 and 60 (both inclusive)

Default:

null

Declared by: - module/default.nix

services.phare.alertRules.<name>.eventSettings.type

For the uptime.incident.* events: whether to alert about all incidents, only those detected by a monitor, or only the manual ones, which include those opened by services.phare.failureNotify.

Type: null or one of “all”, “monitor”, “manual”

Default:

null

Declared by: - module/default.nix

services.phare.alertRules.<name>.integrationId

The ID of the integration used to send a notification when the alert rule is executed.

Type: positive integer, meaning >0

Declared by: - module/default.nix

services.phare.alertRules.<name>.integrationSettings

Additional settings for the integration.

Type: submodule

Default:

{ }

Example:

{ priority = "high"; }

Declared by: - module/default.nix

services.phare.alertRules.<name>.integrationSettings.expire

For Pushover integrations: the expiration time in seconds, required for the emergency priority.

Type: null or integer between 30 and 10800 (both inclusive)

Default:

null

Declared by: - module/default.nix

services.phare.alertRules.<name>.integrationSettings.priority

For ntfy and Pushover integrations: the priority of the notification. ntfy takes min, low, default, high and max; Pushover takes lowest, low, normal, high and emergency.

Type: null or one of “min”, “low”, “default”, “high”, “max”, “lowest”, “normal”, “emergency”

Default:

null

Declared by: - module/default.nix

services.phare.alertRules.<name>.integrationSettings.retry

For Pushover integrations: the retry interval in seconds, required for the emergency priority.

Type: null or integer between 30 and 86400 (both inclusive)

Default:

null

Declared by: - module/default.nix

services.phare.alertRules.<name>.integrationSettings.schema

For outgoing webhooks: the JSON template of the webhook payload. It is stored in the world-readable Nix store, so it must not contain secrets.

Type: null or string of at most 5000 characters

Default:

null

Example:

"{\"id\": \"{{ alert_rule_request.id }}\", \"event\": \"{{ event.key }}\"}"

Declared by: - module/default.nix

services.phare.alertRules.<name>.projectId

The project of a project-scoped alert rule, needed when the API token is organization-scoped. Sent as the X-Phare-Project-Id header.

Type: null or (positive integer, meaning >0)

Default:

null

Declared by: - module/default.nix

services.phare.alertRules.<name>.rateLimit

Minimum time in minutes between two executions of the alert rule.

Type: one of 0, 5, 10, 30, 60, 180, 720, 1440

Default:

0

Declared by: - module/default.nix

services.phare.alertRules.<name>.scope

Whether the alert rule catches the matching events of the whole organization or only those of a project. Defaults to phare.io’s default.

Type: null or one of “organization”, “project”

Default:

null

Declared by: - module/default.nix

services.phare.deleteAfterDays

If set, monitors that exist on phare.io but not in the configuration are deleted once they have been absent (paused) for more than this many days, instead of remaining paused indefinitely.

Type: null or (positive integer, meaning >0)

Default:

null

Example:

30

Declared by: - module/default.nix

services.phare.failureNotify.enable

Whether to enable phare.io incidents on systemd service failures. Every systemd service gets an OnFailure= dependency that opens an incident, which is marked as recovered once the service is no longer failing: when it is running again, finished successfully, or was reset with systemctl reset-failed. While an incident for a service is open, further failures of that service do not open another one. How the incidents are communicated is configured with alert rules (see services.phare.alertRules); the incidents are not detected by a monitor, so they match alert rules with the event setting type = "manual" (or "all"). Uses services.phare.tokenFile, which needs read and write access to ‘Uptime’ .

Type: boolean

Default:

false

Example:

true

Declared by: - module/default.nix

services.phare.failureNotify.excludeFromDowntime

Whether the incidents are excluded from the downtime of their monitors.

Type: boolean

Default:

false

Declared by: - module/default.nix

services.phare.failureNotify.impact

The impact of the incidents opened on service failures.

Type: one of “unknown”, “degraded_performance”, “partial_outage”, “major_outage”

Default:

"unknown"

Declared by: - module/default.nix

services.phare.failureNotify.monitors

Names of the monitors the incidents are associated with; phare.io requires an incident to affect at least one monitor. The names are resolved to phare.io monitor ids when an incident is opened. A service can override them with systemd.services.<name>.phareIncident.monitors.

Type: non-empty (list of string)

Example:

[
  "host"
]

Declared by: - module/default.nix

services.phare.failureNotify.recoveryCheckInterval

A systemd OnCalendar expression for how often failed services with an open incident are checked for recovery.

Type: string

Default:

"minutely"

Example:

"*:0/5"

Declared by: - module/default.nix

services.phare.incidentConfirmations

Number of uninterrupted failed checks required to create an incident

Type: integer between 1 and 5 (both inclusive)

Default:

2

Declared by: - module/default.nix

services.phare.interval

Monitoring interval in seconds.

Type: one of 30, 60, 120, 180, 300, 600, 900, 1800, 3600

Default:

60

Declared by: - module/default.nix

services.phare.maintenanceWindows

Declarative phare.io maintenance windows. Each window is synced to phare.io (matched by its title) after the monitors have been synced. A window whose title is no longer in the configuration is deleted from phare.io while it is still scheduled; windows that are already in progress, completed or cancelled are left untouched.

Type: attribute set of (submodule)

Default:

{ }

Example:

{
  database-upgrade = {
    monitoringMode = "pause";
    startsAt = "2026-09-05T14:30:00Z";
    endsAt = "2026-09-05T16:30:00Z";
    monitors = [ "web" ];
  };
}

Declared by: - module/default.nix

services.phare.maintenanceWindows.<name>.description

An optional description of the maintenance window.

Type: null or string

Default:

null

Declared by: - module/default.nix

services.phare.maintenanceWindows.<name>.endsAt

End of the maintenance window as an ISO 8601 timestamp. Must be after startsAt.

Type: string

Example:

"2026-09-05T16:30:00Z"

Declared by: - module/default.nix

services.phare.maintenanceWindows.<name>.monitoringMode

How monitoring behaves during the maintenance window: pause halts checks entirely, mute keeps checking but suppresses notifications, and normal changes nothing.

Type: one of “pause”, “mute”, “normal”

Default:

"pause"

Declared by: - module/default.nix

services.phare.maintenanceWindows.<name>.monitors

Names of the monitors this maintenance window applies to. The names are resolved to phare.io monitor ids when the window is synced.

Type: list of string

Default:

[ ]

Declared by: - module/default.nix

services.phare.maintenanceWindows.<name>.startsAt

Start of the maintenance window as an ISO 8601 timestamp.

Type: string

Example:

"2026-09-05T14:30:00Z"

Declared by: - module/default.nix

services.phare.maintenanceWindows.<name>.statusPages

IDs of the status pages this maintenance window is shown on.

Type: list of (positive integer, meaning >0)

Default:

[ ]

Declared by: - module/default.nix

services.phare.maintenanceWindows.<name>.title

The title of the maintenance window. Defaults to the attribute name in maintenanceWindows.

Type: null or string

Default:

null

Declared by: - module/default.nix

services.phare.monitors

Declarative phare.io monitor config

Type: attribute set of (submodule)

Default:

{ }

Declared by: - module/default.nix

services.phare.monitors.<name>.incidentConfirmations

Number of uninterrupted failed checks required to create an incident

Type: integer between 1 and 5 (both inclusive)

Default:

2

Declared by: - module/default.nix

services.phare.monitors.<name>.interval

Monitoring interval in seconds.

Type: one of 30, 60, 120, 180, 300, 600, 900, 1800, 3600

Default:

60

Declared by: - module/default.nix

services.phare.monitors.<name>.name

The name of the monitor. Defaults to attribute name in monitors.

Type: null or string

Default:

null

Declared by: - module/default.nix

services.phare.monitors.<name>.protocol

Whether the monitor should use http, tcp or icmp (ping) to access the resource.

Type: one of “http”, “icmp”, “tcp”

Default:

"http"

Declared by: - module/default.nix

services.phare.monitors.<name>.recoveryConfirmations

Number of uninterrupted successful checks required to resolve an incident

Type: integer between 1 and 5 (both inclusive)

Default:

2

Declared by: - module/default.nix

services.phare.monitors.<name>.regionThreshold

Number of regions that must fail before an incident is confirmed. At most the number of regions.

Type: integer between 1 and 10 (both inclusive)

Default:

config.services.phare.regionThreshold

Declared by: - module/default.nix

services.phare.monitors.<name>.regions

List of regions where monitoring checks are performed

Type: list of (one of “as-jpn-hnd”, “as-sgp-sin”, “as-tha-bkk”, “eu-deu-fra”, “eu-fra-cdg”, “eu-gbr-lhr”, “eu-swe-arn”, “ng-nld-ams”, “na-mex-mex”, “na-usa-iad”, “na-usa-sea”, “oc-aus-syd”, “sa-bra-gru”)

Default:

[
  "eu-deu-fra"
  "eu-swe-arn"
]

Declared by: - module/default.nix

services.phare.monitors.<name>.request

Monitoring request, depends of the chosen protocol. The options listed below are the ones of an HTTP request; a TCP request takes host, port, connection (plain or tls) and tlsSkipVerify, and an ICMP request takes only host.

Type: submodule

Default:

{ }

Declared by: - module/default.nix

services.phare.monitors.<name>.request.body

HTTP request body for POST, PUT and PATCH requests

Type: null or string of at most 500 characters

Default:

null

Declared by: - module/default.nix

services.phare.monitors.<name>.request.followRedirects

Follow redirects

Type: null or boolean

Default:

null

Declared by: - module/default.nix

services.phare.monitors.<name>.request.headers

Additional HTTP headers to add to the request, at most 10.

Type: list of (submodule)

Default:

[ ]

Example:

[ { name = "Authorization"; valueFile = "/run/secrets/api-auth"; } ]

Declared by: - module/default.nix

services.phare.monitors.<name>.request.headers.*.name

Header name

Type: string of at most 50 characters

Declared by: - module/default.nix

services.phare.monitors.<name>.request.headers.*.value

Header value. It is stored in the world-readable Nix store; use valueFile for a secret such as a token.

Type: null or string of at most 1024 characters

Default:

null

Declared by: - module/default.nix

services.phare.monitors.<name>.request.headers.*.valueFile

Path to a file containing the header value. The file is read when the monitors are synced, so the value does not end up in the Nix store.

Type: null or absolute path outside the Nix store, given as a string

Default:

null

Example:

"/run/secrets/api-auth"

Declared by: - module/default.nix

services.phare.monitors.<name>.request.method

HTTP request method

Type: one of “HEAD”, “GET”, “POST”, “PUT”, “PATCH”, “OPTIONS”

Default:

"GET"

Declared by: - module/default.nix

services.phare.monitors.<name>.request.tlsSkipVerify

Skip SSL verification

Type: boolean

Default:

false

Declared by: - module/default.nix

services.phare.monitors.<name>.request.url

HTTP request url. Required, except for the monitor of an nginx virtual host, where it defaults to the virtual host.

Type: null or string of at most 255 characters

Default:

null

Declared by: - module/default.nix

services.phare.monitors.<name>.request.userAgentSecret

Deprecated: the secret is stored in the world-readable Nix store; use userAgentSecretFile instead. A secret value to be used in the User-Agent header for authenticating the request.

Type: null or string

Default:

null

Declared by: - module/default.nix

services.phare.monitors.<name>.request.userAgentSecretFile

Path to a file containing the value of userAgentSecret. The file is read when the monitors are synced, so the secret does not end up in the Nix store.

Type: null or absolute path outside the Nix store, given as a string

Default:

null

Example:

"/run/secrets/phare-user-agent"

Declared by: - module/default.nix

services.phare.monitors.<name>.successAssertions

List of assertions that must be true for the check to be considered successful. HTTP monitors only.

Type: null or (list of (submodule))

Default:

[
  {
    operator = "in";
    selector = null;
    type = "status_code";
    value = "2xx";
  }
]

Declared by: - module/default.nix

services.phare.monitors.<name>.successAssertions.*.operator

Operator to use for the assertion: in or not_in for status_code, equals or not_equals for response_header, and contains or not_contains for response_body.

Type: one of “contains”, “not_contains”, “equals”, “not_equals”, “in”, “not_in”

Declared by: - module/default.nix

services.phare.monitors.<name>.successAssertions.*.selector

The name of the header to assert. Required for, and only allowed with, response_header.

Type: null or string

Default:

null

Example:

"Content-Type"

Declared by: - module/default.nix

services.phare.monitors.<name>.successAssertions.*.type

Type of assertion.

Type: one of “response_body”, “response_header”, “status_code”

Declared by: - module/default.nix

services.phare.monitors.<name>.successAssertions.*.value

The value to assert: a comma-separated list of status codes (x is a wildcard for any digit), the value of the header, or a word or sentence in the response body.

Type: string

Example:

"2xx,30x,418"

Declared by: - module/default.nix

services.phare.monitors.<name>.tags

Tags of the monitor, at most 20. phare.io suggests the form key:value. Tags set on phare.io but not here are removed.

Type: list of at most 20 strings of 1 to 100 characters

Default:

[ ]

Example:

[
  "environment:production"
  "team:platform"
]

Declared by: - module/default.nix

services.phare.monitors.<name>.timeout

Monitoring timeout in milliseconds.

Type: one of 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000, 15000, 20000, 25000, 30000

Default:

7000

Declared by: - module/default.nix

services.phare.projectId

The phare.io project that monitors, maintenance windows and incidents are managed in, sent as the X-Phare-Project-Id header. Required with an organization-scoped API key; a project-scoped key already determines the project. The projectId of an alert rule takes precedence.

Type: null or (positive integer, meaning >0)

Default:

null

Example:

1234

Declared by: - module/default.nix

services.phare.recoveryConfirmations

Number of uninterrupted successful checks required to resolve an incident

Type: integer between 1 and 5 (both inclusive)

Default:

2

Declared by: - module/default.nix

services.phare.regionThreshold

Number of regions that must fail before an incident is confirmed, used for monitors that do not set their own.

Type: integer between 1 and 10 (both inclusive)

Default:

1

Declared by: - module/default.nix

services.phare.regions

List of regions where monitoring checks are performed

Type: list of (one of “as-jpn-hnd”, “as-sgp-sin”, “as-tha-bkk”, “eu-deu-fra”, “eu-fra-cdg”, “eu-gbr-lhr”, “eu-swe-arn”, “ng-nld-ams”, “na-mex-mex”, “na-usa-iad”, “na-usa-sea”, “oc-aus-syd”, “sa-bra-gru”)

Default:

[
  "eu-deu-fra"
  "eu-swe-arn"
]

Declared by: - module/default.nix

services.phare.rollingMaintenanceWindows

Declarative rolling phare.io maintenance windows for scheduled nixos-rebuilds. phare.io only supports maintenance windows with absolute timestamps, so a rolling window turns a recurring schedule (startAt) and a duration into concrete maintenance windows and keeps provisioning the next occurrence as time advances: a systemd timer firing on startAt provisions the occurrence that has just begun and the one after it, so the next window already exists once the previous one has elapsed.

Type: attribute set of (submodule)

Default:

{ }

Example:

{
  nixos-rebuild = {
    monitoringMode = "pause";
    startAt = "03:00";
    duration = "1h";
    monitors = [ "web" ];
  };
}

Declared by: - module/default.nix

services.phare.rollingMaintenanceWindows.<name>.cleanupAfterDays

If set, finished (completed or cancelled) instances of this rolling maintenance window that ended more than this many days ago are deleted from phare.io.

Type: null or (positive integer, meaning >0)

Default:

null

Example:

30

Declared by: - module/default.nix

services.phare.rollingMaintenanceWindows.<name>.description

An optional description of the maintenance window.

Type: null or string

Default:

null

Declared by: - module/default.nix

services.phare.rollingMaintenanceWindows.<name>.duration

How long each maintenance window lasts, as a systemd time span (e.g. “1h”, “90min”).

Type: string

Example:

"1h"

Declared by: - module/default.nix

services.phare.rollingMaintenanceWindows.<name>.monitoringMode

How monitoring behaves during the maintenance window: pause halts checks entirely, mute keeps checking but suppresses notifications, and normal changes nothing.

Type: one of “pause”, “mute”, “normal”

Default:

"pause"

Declared by: - module/default.nix

services.phare.rollingMaintenanceWindows.<name>.monitors

Names of the monitors this maintenance window applies to. The names are resolved to phare.io monitor ids when the window is provisioned.

Type: list of string

Default:

[ ]

Declared by: - module/default.nix

services.phare.rollingMaintenanceWindows.<name>.startAt

A systemd OnCalendar expression describing when each maintenance window begins. It drives both the timer that provisions the window and the computation of the concrete next occurrence sent to phare.io, so it should match the schedule of your nixos-rebuild (e.g. the dates of system.autoUpgrade).

Type: string

Example:

"03:00"

Declared by: - module/default.nix

services.phare.rollingMaintenanceWindows.<name>.statusPages

IDs of the status pages this maintenance window is shown on.

Type: list of (positive integer, meaning >0)

Default:

[ ]

Declared by: - module/default.nix

services.phare.rollingMaintenanceWindows.<name>.title

The title of the rolling maintenance window on phare.io. Defaults to the attribute name in rollingMaintenanceWindows.

Type: null or string

Default:

null

Declared by: - module/default.nix

services.phare.successAssertions

List of assertions that must be true for the check to be considered successful

Type: null or (list of (submodule))

Default:

[
  {
    operator = "in";
    type = "status_code";
    value = "2xx";
  }
]

Declared by: - module/default.nix

services.phare.successAssertions.*.operator

Operator to use for the assertion: in or not_in for status_code, equals or not_equals for response_header, and contains or not_contains for response_body.

Type: one of “contains”, “not_contains”, “equals”, “not_equals”, “in”, “not_in”

Declared by: - module/default.nix

services.phare.successAssertions.*.selector

The name of the header to assert. Required for, and only allowed with, response_header.

Type: null or string

Default:

null

Example:

"Content-Type"

Declared by: - module/default.nix

services.phare.successAssertions.*.type

Type of assertion.

Type: one of “response_body”, “response_header”, “status_code”

Declared by: - module/default.nix

services.phare.successAssertions.*.value

The value to assert: a comma-separated list of status codes (x is a wildcard for any digit), the value of the header, or a word or sentence in the response body.

Type: string

Example:

"2xx,30x,418"

Declared by: - module/default.nix

services.phare.timeout

Monitoring timeout in milliseconds.

Type: one of 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000, 15000, 20000, 25000, 30000

Default:

7000

Declared by: - module/default.nix

services.phare.tokenFile

Path to a file with the API key to access phare.io. It needs read and write access to ‘Uptime’. The path must be a string outside the Nix store, so that the key does not end up in the world-readable store.

Type: absolute path outside the Nix store, given as a string

Example:

"/run/secrets/phare-token"

Declared by: - module/default.nix

systemd.services.<name>.phareIncident.monitors

Names of the monitors affected by a failure of this service, used instead of services.phare.failureNotify.monitors for its incidents. To open no incidents for a service, set its onFailure with lib.mkForce.

Type: null or (non-empty (list of string))

Default:

null

Example:

[
  "web"
]

Declared by: - module/default.nix