Docs

Configuration

A complete reference for settings.json options, site branding, theme colors, and placeholders.

All configuration for Vail is defined inside settings.json located at the root of your installation.

Vail processes settings.json exclusively on the server. Client browser sessions never receive unredacted configuration data or server credentials.

Complete settings.json Example

settings.json
{
  "site": {
    "title": "Zero Development",
    "description": "Real-time service health and live latency tracking.",
    "logo": "",
    "icon": "/icon.png",
    "favicon": "/favicon.ico",
    "links": [
      {
        "label": "Home",
        "url": "https://zerodev.ca"
      }
    ]
  },
  "theme": {
    "primaryColor": "blue",
    "defaultColorScheme": "dark",
    "radius": "sm"
  },
  "announcement": {
    "enabled": false,
    "type": "info",
    "title": "Scheduled Maintenance",
    "message": "Routine server upgrades in progress."
  },
  "footer": {
    "text": "%sitename% • Made with Vail Status"
  },
  "discord": {
    "enabled": false,
    "webhookUrl": "",
    "username": "Vail Status",
    "avatarUrl": ""
  },
  "groups": [],
  "incidents": []
}

Site Settings (site)

PropertyTypeDescription
titlestringThe status page title displayed in the header and browser document title.
descriptionstringA brief description displayed below the main header.
logostringOptional URL or public path to an image logo.
iconstringOptional path to a square app icon (e.g. /icon.png).
faviconstringOptional path to a favicon file (e.g. /favicon.ico).
linksarrayHeader navigation links formatted with label and url.

Theme Settings (theme)

PropertyTypeDescription
primaryColorstringMantine theme color name (e.g. blue, cyan, teal, violet, orange, red).
defaultColorSchemestringInitial color scheme. Values: dark, light, or auto.
radiusstringBorder radius applied to components: xs, sm, md, lg, or xl.

Announcement Banner (announcement)

PropertyTypeDescription
enabledbooleanSet to true to display a persistent banner alert at the top of the page.
typestringBanner visual style: info, warning, or error.
titlestringHeadline text for the announcement.
messagestringDetailed message body.

The footer.text string supports dynamic template placeholders:

PlaceholderReplacement
%sitename%Populated with the configured site.title.
%year%Populated with the current four-digit calendar year (e.g. 2026).

Example:

"footer": {
  "text": "%sitename% • %year% • Made with Vail Status"
}

Incidents (incidents)

You can publish historical or ongoing incident reports with timeline entries:

"incidents": [
  {
    "id": "inc-101",
    "title": "API Gateway Latency",
    "status": "resolved",
    "severity": "minor",
    "createdAt": "2026-09-12T14:00:00.000Z",
    "updates": [
      {
        "timestamp": "2026-09-12T14:30:00.000Z",
        "status": "resolved",
        "message": "Latency normalized after routing adjustments."
      },
      {
        "timestamp": "2026-09-12T14:00:00.000Z",
        "status": "investigating",
        "message": "Investigating elevated latencies on US-East."
      }
    ]
  }
]
  • status: investigating, identified, monitoring, or resolved.
  • severity: minor, major, or critical.

On this page