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.alertPolicyId

The ID of the associated alert policy.

Type: positive integer, meaning >0

Default:

config.services.phare.alertPolicyId

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.projectId

The associated project.

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

Default:

null

Declared by: - module/default.nix

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

Whether the monitor should use http of tcp to access the resource.

Type: one of “http”, “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.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-sea”, “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.

Type: (submodule) or (submodule)

Default:

{ }

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 (attribute set))

Default:

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

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.alertPolicyId

The default ID of the associated alert policy, used for monitors that do not set their own.

Type: positive integer, meaning >0

Example:

1234

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.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>.alertPolicyId

The ID of the associated alert policy.

Type: positive integer, meaning >0

Default:

config.services.phare.alertPolicyId

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>.projectId

The associated project.

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

Default:

null

Declared by: - module/default.nix

services.phare.monitors.<name>.protocol

Whether the monitor should use http of tcp to access the resource.

Type: one of “http”, “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>.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-sea”, “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.

Type: (submodule) or (submodule)

Default:

{ }

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 (attribute set))

Default:

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

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.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

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

Default:

null

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-sea”, “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 a concrete maintenance window and keeps provisioning the next one as time advances: a systemd timer firing on startAt reschedules the window to the following occurrence 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 (attribute set))

Default:

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

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’.

Type: absolute path

Declared by: - module/default.nix