Sign inSign up

applegater/status-server

By applegater

Updated about 1 hour ago

Self-hosted server status monitor — public dashboard, alerts, and multi-tenant dashboards.

Image
Monitoring & observability
0

7.7K

applegater/status-server repository overview

Status Server

A clean, self-hosted server and service status monitor. Get a beautiful public status page, real-time uptime tracking, and instant alerts — all running on your own infrastructure.

Docker Pulls GitHub Release License: MIT


Features

  • 📊 Live status dashboard — public-facing status page with real-time updates
  • 🔔 Webhook alerts — Discord, Slack, ntfy, email, and more
  • 🏪 Square POS monitoring — track Square reader status per location
  • 🌐 Omada SDN monitoring — monitor TP-Link Omada controllers and sites
  • 👥 Multi-tenant dashboards — scoped group dashboards with custom domains
  • 🔐 Auth — local accounts + Google OAuth, role-based access (admin / viewer)
  • 📜 Audit log — full history of status changes and admin actions
  • 🌙 Dark / light mode — per-dashboard theme preference
  • 📱 PWA ready — installable on mobile devices

Quick Start

services:
  status-server:
    image: applegater/status-server:latest
    container_name: status-server
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      - ./servers.json:/config/servers.json
    environment:
      - DB_HOST=mariadb
      - DB_PORT=3306
      - DB_USER=statusadmin
      - DB_PASSWORD=changeme
      - DB_NAME=status_monitor
      - SESSION_SECRET=changeme_use_a_long_random_string
      - EXTERNAL_URL=https://status.yourdomain.com
      - TZ=America/Los_Angeles
    cap_add:
      - NET_RAW
    depends_on:
      - mariadb

  mariadb:
    image: mariadb:11
    container_name: mariadb
    restart: unless-stopped
    environment:
      - MYSQL_ROOT_PASSWORD=rootpassword
      - MYSQL_DATABASE=status_monitor
      - MYSQL_USER=statusadmin
      - MYSQL_PASSWORD=changeme
    volumes:
      - mariadb_data:/var/lib/mysql

volumes:
  mariadb_data:

A full example is available at docker-compose.example.yml.


Environment Variables

VariableRequiredDescription
DB_HOSTMariaDB hostname
DB_PORTMariaDB port (default 3306)
DB_USERDatabase username
DB_PASSWORDDatabase password
DB_NAMEDatabase name
SESSION_SECRETLong random string for session signing
EXTERNAL_URLPublic base URL for dashboard links
TZContainer timezone (default UTC)
CHECK_INTERVALCheck interval in ms (default 30000)
PORTHTTP port (default 3000)
SMTP_HOSTSMTP server for email alerts
SMTP_PORTSMTP port
SMTP_USERSMTP username
SMTP_PASSSMTP password
SMTP_FROMFrom address for email alerts

Supported Platforms

PlatformArchitecture
linux/amd64Standard servers and desktops
linux/arm64Raspberry Pi, Apple Silicon

Tag summary

Content type

Image

Digest

sha256:57011c4c0

Size

70.1 MB

Last updated

about 1 hour ago

docker pull applegater/status-server