One dashboard, every site
Pick the domains, a level, and a slot, type a message, hit Send. The banner goes live on all of them at once.
Maintenance windows, incidents, notices — pushed to every site you run, without redeploying anything.
SphereAlert is a self-hosted, Dockerized web app. Manage alerts from one dashboard; it writes a TXT record to each domain's DNS provider, and a tiny client script reads that record and renders the banner. Your DNS API keys never leave your box, and SphereAlert never phones home.
From a single dashboard to every visitor's browser — no redeploys, no third parties.
Pick the domains, a level, and a slot, type a message, hit Send. The banner goes live on all of them at once.
SphereAlert writes a TXT record to each domain's provider in parallel. Browsers read it over DNS-over-HTTPS on page load.
Five severity levels and three stackable slots per domain — info notices and critical incidents side by side.
Set an end time and a background worker clears the alert automatically every 60 seconds.
Provider API keys are encrypted at rest with AES-256-GCM before they touch the database, and never leave your box.
Every push, clear, and expiry is recorded in History — and even cleared records leave a timestamped note behind.
Add one CDN <script> tag, or use zip-injection to add it to every HTML file in your build automatically.
One admin account, session-based auth, forced credential change on first login. No sign-up, no phone-home.
A .NET 8 container with embedded SQLite. docker compose up and you're live on port 7227.
You manage alerts in one place; DNS does the distribution.
Start SphereAlert and add your DNS provider credentials — encrypted before they hit the database.
Drop one <script> tag in the <head> of pages that should show alerts.
Pick the domains, a level, and a slot, write a message (≤ 240 chars), and Send.
A small JSON payload is written to a TXT record at alert.<domain> on every selected provider, in parallel.
Each page load reads the record over DNS-over-HTTPS and renders the banner. Timed alerts clear themselves.
operator ──> SphereAlert ──> DNS provider API ──> TXT record at alert.<domain>
(web UI) (:7227) │
▼
visitor's browser <── sphere-alert.js reads it
renders banner
Fourteen provider integrations — credentials are tested before you rely on them.
Credentials are encrypted with AES-256-GCM before they touch the database, and a Test button verifies they reach the provider's API.
SphereAlert listens on port 7227 in the container.
git clone https://github.com/kl3mta3/SphereAlert.git
cd SphereAlert
docker compose up -d --build
# Then open the dashboard
# http://<host>:7227/
services:
spherealert:
build: .
ports:
- "7227:7227"
environment:
- SPHEREALERT_DATA_DIR=/data
- SPHEREALERT_LOG_LEVEL=Info
volumes:
- spherealert-data:/data
restart: unless-stopped
volumes:
spherealert-data:
<!-- Add inside the <head> of pages that should show alerts -->
<script src="https://cdn.jsdelivr.net/gh/kl3mta3/SphereAlert@main/js/sphere-alert.js"></script>
admin / pass123.
spherealert-dataNamed volume at /data — database, keyfile & logs. Survives rebuilds.
SPHEREALERT_DATA_DIRDirectory for the database, keyfile, and logs. Default /data.
SPHEREALERT_LOG_LEVELInfo or Debug. Default Info.
Each domain has three slots — alert, alert2, alert3 — rendered stacked. Each slot's TXT record is one JSON object.
{"l":2,"m":"Maintenance Sat 7am-9am","d":1,"s":0}
| Field | Required | Meaning |
|---|---|---|
| l | yes | level — 0 info, 1 low, 2 medium, 3 high, 4 critical |
| m | yes | message text (≤ 240 chars) |
| d | no | dismissable — 1 yes (default), 0 no |
| s | no | force scroll-on-hover — 1 yes, 0 auto (default) |
Anything that isn't valid JSON renders no banner. Clearing or expiring an alert replaces the
record with a Cleared <timestamp> note — so the record itself is an audit trail.
Full setup, usage, and architecture details live in the repository.
Install, configure, and push your first alert.
The exact JSON payload SphereAlert writes to DNS.
Providers, domains, pushing alerts, and the client script.
Stack, auth, security, scheduler, and endpoints.
Sibling product — manage and auto-renew your own SSL certs.
Found a bug or want a provider? Open an issue or a PR.
SphereAlert is released under the MIT License — fork it, study it, self-host it, and use it however you like.
Part of the Sphere family of self-hosted infrastructure tools. © 2026 Kenneth Lasyone.
Read the licenseDeploy SphereAlert with Docker and push your first alert today.