Sign inSign up

applegater/status-server

By applegater

•Updated 6 days ago

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

Image
Monitoring & observability
0

8.8K

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_HOST✅MariaDB hostname
DB_PORT✅MariaDB port (default 3306)
DB_USER✅Database username
DB_PASSWORD✅Database password
DB_NAME✅Database name
SESSION_SECRET✅Long random string for session signing
EXTERNAL_URL✅Public base URL for dashboard links
TZ—Container timezone (default UTC)
CHECK_INTERVAL—Check interval in ms (default 30000)
PORT—HTTP port (default 3000)
SMTP_HOST—SMTP server for email alerts
SMTP_PORT—SMTP port
SMTP_USER—SMTP username
SMTP_PASS—SMTP password
SMTP_FROM—From address for email alerts

⁠Supported Platforms

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

Tag summary

Content type

Image

Digest

sha256:8334d7296…

Size

70.9 MB

Last updated

6 days ago

docker pull applegater/status-server