Free status page self hosted
Run the MIT-licensed Logdash Next.js starter on your own server or in Docker for a free self-hosted status page, while the checks behind it stay on the Logdash free plan, because the monitoring itself does not self-host in one command yet.
A status page has two halves. The page is HTML that tells visitors what is up. The checks are what make that HTML true: something outside your stack hitting your endpoints every few minutes and remembering the answers. Self-hosting the page is cheap and boring. Self-hosting the checks means running a monitor that has to survive the outage it is supposed to report.
With Logdash you self-host the page and leave the checks hosted. The free plan covers 5 services with an HTTP check every 5 minutes, 1 published status page and Telegram alerts. The page reads that status page from a public JSON API with no key, so it runs on any box you own. A custom domain on the hosted page needs Pro. A self-hosted page on status.yourdomain.com does not, because the domain points at your server, not ours.
Status page self hosted with Docker
The starter is a small Next.js 16 app: one page, one component, Tailwind. Create it without installing, so the container installs its own Linux binaries.
npx create-next-app@latest status-page \
--example https://github.com/logdash-io/logdash.io \
--example-path templates/status-page-next \
--skip-install
cd status-page services:
status-page:
image: node:22-alpine
working_dir: /app
volumes:
- ./:/app
environment:
LOGDASH_STATUS_PAGE_ID: your-status-page-id
command: sh -c "npm install && npm run build && npm start"
ports:
- "3000:3000"
restart: unless-stoppedRun docker compose up -d and open port 3000. The build fetches your status page once, so a wrong id fails with a 404 and an unpublished page with a 403, instead of shipping a blank page. After that, Next.js renders the page again at most every 60 seconds and the browser polls every 60 seconds. If the Logdash API cannot be reached, the page keeps the last data it had.
Host it apart from your app. People open a status page when your app is down, and a page that shares a server, a deploy or a DNS setup with the app goes down with it. A small VPS at a different provider, or its own Vercel project, is enough.
Can the checks be self-hosted too?
The starter, the shadcn component and the @logdash/status client are MIT. Fork them, restyle them, delete what you do not need. The Logdash server that runs the checks is AGPL-3.0 and public, but production self-hosting is not supported today. The backend does not boot without Stripe and Resend keys, login is GitHub or Google OAuth only, and there is no published image or compose file that runs the apps. It runs locally for development. The full list of blockers is at /docs/self-hosting.
- Publish a status page Create a service per app in Logdash, point each HTTP monitor at a health URL, add the monitors to a status page and publish it. Copy the id from the Build your own section.
- Start the container Paste the id into compose.yaml, run docker compose up -d on a host that shares nothing with your app, and point status.yourdomain.com at port 3000 through your reverse proxy.
- Break it once Stop your app. Within one 5-minute check the monitor flips to down, and your self-hosted page shows it within about 3 minutes of that. The Telegram alert does not wait: it arrives at the flip, with the monitor name and status code.
Logdash starter vs Uptime Kuma
| Feature | Logdash | Uptime Kuma |
|---|---|---|
| Checks self-hosted too | No, checks run on Logdash | Yes, one container |
| Checks survive your server dying | Yes, they run elsewhere | No, they die with the host |
| Monitor types | HTTP checks, push heartbeats on Pro | HTTP, TCP, ping, DNS, keyword and more |
| Incident notes and maintenance | Not built in | Pinned incident banner and maintenance windows |
| Page design | Your own React code with your Tailwind theme | Built-in layout plus custom CSS |
| Cost | Free plan plus the box | Free plus the box |
When Uptime Kuma is the better pick
- Every byte, check history included, has to stay on your hardware.
- You need TCP, DNS, ping or keyword checks. Logdash has none of them.
- You want to post incident notes and schedule maintenance on the page itself.