Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Installation

Yet Another Status Page can be deployed in several ways. The recommended path is the Helm chart on Kubernetes; everything else is provided for evaluation, single-host self-hosting, or managed PaaS users.

Prerequisites

PathRequires
Helm (recommended)Kubernetes >= 1.25, Helm >= 3.8, kubectl
Docker ComposeDocker + Docker Compose
From sourceNode.js 24+, PostgreSQL 15+
VercelA Vercel account

The official chart is published as an OCI artifact on GitHub Container Registry. Read the full Helm guide for configuration details.

kubectl create namespace status

helm upgrade --install status \
  oci://ghcr.io/hostzero-gmbh/charts/yet-another-status-page \
  --namespace status \
  --set serverUrl=https://status.example.com \
  --set secret.payloadSecret=$(openssl rand -hex 32)

Why Helm:

  • Built-in Postgres subchart (or bring-your-own via externalDatabase.existingSecret)
  • Ingress + TLS, NetworkPolicy, PodDisruptionBudget, persistent media uploads
  • Versioned chart releases that match the application image tag
  • Atomic upgrades and rollbacks (helm rollback)

Option 2: Vercel (One-Click)

Deploy instantly to Vercel with a managed PostgreSQL database:

Deploy with Vercel

This will:

  1. Create a new Vercel project
  2. Provision a Vercel Postgres database
  3. Prompt you to set PAYLOAD_SECRET (generate a random 32+ character string)

All configuration (site name, logos, services, notifications) is done through the admin panel — no code changes required.

Option 3: Docker Compose (single host)

Suitable for evaluation or small self-hosted setups. See the Docker Compose guide.

git clone https://github.com/Hostzero-GmbH/yet-another-status-page.git
cd yet-another-status-page

cp .env.example .env
# Edit .env: PAYLOAD_SECRET, POSTGRES_PASSWORD, SERVER_URL

docker compose up -d

Option 4: Pre-built Docker image (BYO Postgres)

docker run -d \
  --name status-page \
  -p 3000:3000 \
  -e DATABASE_URI=postgres://user:pass@host:5432/db \
  -e PAYLOAD_SECRET=$(openssl rand -hex 32) \
  -e SERVER_URL=https://status.example.com \
  ghcr.io/hostzero-gmbh/yet-another-status-page:latest

Option 5: Build from source

git clone https://github.com/Hostzero-GmbH/yet-another-status-page.git
cd yet-another-status-page
npm install
npm run build
npm start

First-Time Setup

  1. Access the admin panel at <serverUrl>/admin.
  2. Create the first admin user when prompted.
  3. Configure the site under:
    • Configuration → Site Settings (name, description, favicon, logos)
    • Configuration → Email Settings (SMTP)
    • Configuration → SMS Settings (Twilio)
  4. Add services by creating service groups and services that represent your infrastructure.
  5. Go live at <serverUrl>.