Open source · v1.0.0

Your services.
Your status page.
Automatically.

A self-hosted status page that monitors your services, publishes incidents and keeps your customers informed.

Free core · Your own domain · Shared hosting or Docker

status.your-company.comPUBLIC PAGE
Pharos status page: service availability, 90 day uptime, planned maintenance and automatically published incidents
EXAMPLE WORKFLOW
Checking your servicesHTTP, TCP, DNS and heartbeat checks
From a failed check to an informed customer.HTTP, TCP, DNS and heartbeat monitoring built in.
01Monitor your services

Check websites, ports and scheduled jobs.

02Publish the incident

Failures open an incident. Recovery closes it.

03Keep people informed

A public page, email and notification integrations.

GET UP AND RUNNING

Choose the hosting you already have.

Read the installation guides
COMMAND LINE

PHP with SSH

A hosting shell or your own server

Run the installer, follow the document-root instructions and verify the scheduler.

curl -fsSL https://pharos.solutionmax.net/get | sh -s -- --php
SSH installation guide →
CONTAINERS

Docker

Your server · Docker Compose

Configure your application key, then start the app and scheduler together.

docker compose up -d

Requires the Compose file and configured environment from the guide.

Docker setup guide →

PHP 8.3+ · Required extensions · SQLite or MySQL · One cron job per minute Full requirements →

SEE IT IN ACTION

One outage. The whole story.

Walk through detection, notification and recovery in this interactive example.

status.northwind.example.net customer view
Get notified

All systems operational

updated 14:38
0%uptimelast 90 days
90 days agotoday

Services

▸Web & API3 components 99.98%Operational
▸Checkout & payments2 components 99.91%Operational
▸Mail delivery2 components 100.00%Operational

Incidents

Today · 5 September

Checkout slow for some customers

Resolved

Affected Checkout API, Payments

APISubscribe Powered by Northwind

Components

The individual things a service is made of
Add component
Operational
7
of 7 components
Not operational
0
nothing to report
Automatic checks
7
every 60 seconds
ComponentStateCheckUptime
Website Operational 200 · 142 ms100%
Checkout API Operational 200 · 96 ms99.98%
Paymentstcp://pay-gw:443 Operational open · 38 ms99.99%
Databasereported by Zabbix Operational webhook100%
Outbound mail Operational open · 21 ms100%

Incidents

What you told customers, and when
Report an incident
Open now
1
opened by a check
Last 30 days
3
2 opened by a check
Typical time to resolve
34m
mean over 30 days
Checkout API unreachable Investigating opened 14:02 by a check 1 update
Investigating Identified Monitoring Resolved
Goes to the page and to 1,284 subscribers Post update

Subscribers

Who hears it, straight from your own mail server
Export CSV
Subscribers
0
confirmed, double opt-in
Delivered
0
in 41 seconds
Bounced
0
via your own SMTP
To subscribers · [email protected]
Subject: [Northwind] Checkout API unreachable - Investigating
Northwind Status

Investigating - a check failed twice: no response on HTTP. Pharos opened this incident by itself and we are looking into it.

View the status page You are subscribed to updates. Unsubscribe with one click - the link is in every mail.
DeliveryResult
E-mail · 1,284 subscribers sent
Slack · #statushooks.slack.com · signed 200 OK
Webhook · ops-bridgePOST /pharos · HMAC 200 OK
Zabbix · incident closedmediatype 105 queued
3check types, no agents
90days of uptime history
CIautomated release checks
€0for the core, forever

Live demo

Try it. Change it. Make it yours.

Explore a real Pharos installation with public demo access. Post an incident, flip a component, change the branding - everything is thrown away and seeded again every 20 minutes.

Address
demo-pharos.solutionmax.net
E-mail
[email protected]
Password
demo123
Open the demo
ONE PLACE FOR CHECKS AND COMMUNICATION

Know what is happening.
Show what you are doing.

Pharos connects service checks, public incidents and customer updates. Your team gets context. Your visitors get a page they can check.

01 / MONITOR

Your services,
in focus.

HTTP, TCP, DNS and heartbeat checks help you follow websites, ports and scheduled jobs. See the current state of your components and their uptime history from one place.

  • Group services in a way your customers understand.
  • Open and resolve incidents through configured checks.
  • Explain a shared failure across several components.
  • Schedule maintenance and announce it to subscribers in advance.
Explore monitoring →
PHAROS / COMPONENTSActual interface · demo data
Pharos components for one status page: what is down right now, uptime over 90 days, the check behind each component and its status
02 / COMMUNICATE

A public page with a purpose.

Show service status, incident history and updates on your own domain. Visitors can subscribe to email updates, with double opt-in and an unsubscribe link. Choose per notification destination which events it receives.

Subscriber guide →
PUBLIC STATUS PAGEOne link for the latest update.Services · Incidents · Uptime historyExplore the real public demo ↗
03 / MAKE IT YOURS

Choose what visitors see.

Toggle public sections, set service visibility and preview your page. The free core includes your name and accent colour. The optional Brand pack adds your logo, favicon and editable email templates.

Status page guide →
The Layout screen of a status page: one switch per section beside a live preview that shows an upcoming maintenance window
Actual settings screen with example data.
04 / SEVERAL PAGES

One install, a page per customer.

Run separate status pages from one installation, each with its own services, subscribers, branding, email and integrations. Give every user a role per page: Read only, Editor or Page admin. Free and Brand pack run 1 page, Supported up to 5, the Commercial licence has no limit.

Pages and plans →
The Status pages screen with cards for Harbor Logistics, Northwind Hosting and Northwind Internal, each with its status, address, 90 day uptime, open incidents and subscribers
Actual Status pages screen with example data.
05 / THEIR OWN BRAND

Every page looks like its owner.

Each public page has its own name, accent colour and, with a paid plan, its own logo and favicon. The default page keeps your main address; the others get their own path or domain.

Public page guide →
The public page of Harbor Logistics, a second status page on the same installation, with its own logo and green accent and all systems operational
A second public page on the same installation, example data.
BUILT FOR INDEPENDENT TEAMS

Less switching tools.
More shared understanding.

For hosting resellers, agencies and teams that want monitoring and a public status page in a self-hosted application.

01

Checks lead to updates.

Configured failures open incidents. Recovery closes them. Your team can add context while the checks keep running.

02

Your installation. Your data.

Run Pharos on infrastructure you manage. Hosting, backups, email delivery and application maintenance remain your responsibility.

03

Start with the free core.

Monitoring, incidents, integrations and updates are included under AGPL-3.0. Paid branding and support are optional.

A SMALL, PRACTICAL FOOTPRINT

A status page.
Not another hosting migration.

Use compatible PHP hosting with a scheduler, or run the app and scheduler with Docker Compose. You do not need to move the services you want to monitor.

Choose your installation ↓

Check your environment

PHP installation
PHP 8.3+, required extensions, writable storage and outbound access.
Database
SQLite or MySQL, with the required PHP database drivers.
Scheduler
A cron job every minute, or the configured Docker scheduler.
Public web root
Only public files should be served. Follow the guide for your hosting layout.
Read all requirements →
CONNECT YOUR EXISTING WORK

A useful part
of your toolkit.

Keep the tools your team already knows. Use the API, outgoing webhooks and heartbeat endpoints to connect them to your status page.

PHAROS / SEND OUTActual interface · demo data
The Send out screen: add a destination such as Slack, Microsoft Teams, Discord, Telegram, Signal or generic JSON in numbered steps and choose its moments, beside the destinations of this page with their health

The API is Cachet-shaped, not a complete drop-in replacement. Read the supported endpoints and adapt your integration before using it in production.

ALREADY USING ANOTHER TOOL?

Check the fit
before you switch.

Pharos makes sense when you want a public status page and service checks together on compatible PHP hosting or Docker. Compare requirements, licensing and supported integrations for your own setup.

06Pricing

Start free. Add what you need.

Monitoring, incidents, notifications and updates are free. Add your own branding, more status pages and support, or a commercial licence for private modifications.

Core

Free

AGPL-3.0 · self-hosted
  • Every feature of the core: checks, incidents, notifications, API and updates
  • HTTP, TCP, DNS and heartbeat checks
  • Uptime history and the public page
  • Your name and accent colour
  • 1 status page
  • Carries a “Powered by Pharos” link
Read the install guide

Brand pack

€79

One time · works forever
  • Your own logo, for light and dark
  • Your favicon
  • Your logo in email, and editable email templates
  • The footer credit removed
  • Verified locally, no phone home
  • 1 status page
Buy the Brand pack

Supported

€149/year

Yearly · cancel any time
  • The Brand pack included, yours to keep
  • Support by email, answered within a working day
  • Up to 5 status pages, each with its own components, subscribers, branding, email and integrations
  • User roles per page
Start Supported

Commercial licence

from €599/year

For companies that modify it
  • Everything in Supported
  • Unlimited status pages
  • The AGPL publication duty lifted
  • Keep your changes to yourself
  • Ship it inside your own service
Request a quote

Prices include applicable VAT. Your total and tax treatment are shown before payment. Hosting and third-party services are separate costs. Supported renews annually until cancelled; the commercial licence is subject to a written quote and scope. If a yearly key lapses, the branding stays and existing status pages keep running, but you cannot create or reactivate pages beyond one.

Consumer rights: Brand pack immediate delivery requires express consent and acknowledgement of losing the withdrawal right when supply starts. For delayed delivery, contact us before buying. Supported retains a 14-day withdrawal right for the whole initial purchase.

Terms, delivery and cancellation · Información de contratación en español · Withdraw from a contract

The core is licensed under AGPL-3.0. Obligations depend on use, modification and distribution. Branding and support purchases do not replace that licence. A commercial agreement grants additional rights only within its written scope.

07Questions

The things a hosting reseller asks first.

01Does Pharos need a VPS?

No. It runs on PHP 8.3 or later with SQLite or MySQL, which cPanel, DirectAdmin, Plesk and other compatible PHP hosts provide, and one cron line drives the scheduled checks. Docker is also supported for anyone who prefers containers.

02Why choose Pharos for shared hosting?

Pharos combines a public status page with HTTP, TCP, DNS and heartbeat monitoring, automatic incidents and notifications. It runs on compatible PHP 8.3 hosting with a working cron job, or in Docker. Choose it when you want to manage both checks and customer updates in one application.

03Will my existing Cachet API integrations still work?

Mostly. The API is Cachet-shaped: read and set components, open incidents and post updates, with the same X-Cachet-Token header, the same status integers and the same response envelope, so existing n8n workflows and scripts port with small changes. Component groups, metrics, subscribers, schedules, ping and version have no endpoint here.

04What is a heartbeat check?

It is a check aimed at things you cannot poll from outside, such as a backup job or a cron script. Your job calls a URL on its own schedule, and if that call stops arriving, Pharos treats the silence as the failure and opens an incident.

05Can I control what visitors see on the page?

Yes. Every section of the public page is a switch under Status page: the overall banner, uptime bar, services list, per-component bars, incident history, empty days, API link and subscribe button. Visibility can also be set per service, and a live preview shows the real page as you toggle.

06Is Pharos really free?

The core is AGPL-3.0 and free to host yourself, with monitoring, incidents, notifications and updates included, for one status page; branding is optional and paid. Three paid options are available, all optional: a one time Brand pack (€79) to use your own logo and drop the credit, a yearly Supported plan (€149) for support from the person who wrote it, with the Brand pack included and up to 5 status pages, and a commercial licence (from €599/year) with unlimited status pages for companies that modify Pharos and would rather not publish the change.

07What does the Brand pack include?

Your own logo for the light and dark theme, your favicon, your logo in email and editable email templates, and the footer credit removed. It is a one time purchase for one status page, tied to the domain of the installation you give at checkout, and verified locally with an Ed25519 signature rather than a phone home check, so it keeps working forever, even if the licensing server is unreachable.

08How do updates work, and what if the update server is unreachable?

Pharos checks for a signed release manifest and shows what is available under Updates - on every installation, paid or not. On a PHP host it downloads the release, verifies the checksum, backs up the current version and replaces its own files. On Docker the host pulls the new image. If the release server cannot be reached, that reads as no update available, never as an error.

09Can one installation run several status pages?

Yes, with Supported (up to 5) or the commercial licence (unlimited). Each page has its own components, subscribers, branding, email settings, integrations and API tokens, and every user gets a role per page: read only, editor or page administrator. Without a paid key an installation runs one status page. If a yearly key lapses, existing pages keep running; only creating or reactivating pages beyond one is blocked.

08Contact

A question? Talk to the maker.

A licence question, an install that will not cooperate, a quote for the commercial licence. It lands in one inbox and is answered by the person who wrote the code - normally within a working day.

We use your details to answer. Do not include passwords or sensitive personal information.
09Get started

Stop finding out from a customer.

Open source under AGPL-3.0, installed on the hosting you already run. Point it at your components, wire a heartbeat into the jobs nobody else can see, and let it write the incident before anyone has to ask.