> ## Documentation Index
> Fetch the complete documentation index at: https://docs.phare.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Status pages

> Keep your customers in the loop with a sleek status page. Build trust with transparent communication on incidents and maintenance periods.

Status pages are your public-facing communication hub during both good times and bad. They show your users the real-time status of your services, any ongoing incidents, and planned maintenance. Status pages by Phare are lightning-fast and [among the most eco-friendly](https://www.websitecarbon.com/website/status-phare-io/) you can find.

<Frame>
  <iframe width="704" height="396" frameborder="0" title="Create a status page" src="https://iframe.mediadelivery.net/embed/238508/dc0fe30e-efbe-4192-a05c-5a0e6c1d5802?autoplay=false&loop=true&muted=true&preload=true&responsive=true" loading="lazy" allow="accelerometer;gyroscope;autoplay;encrypted-media;picture-in-picture;fullscreen" allowfullscreen />
</Frame>

## Creating a status page

Create as many status pages as your projects need, there's no limit. Pick which monitors to display, customize the look to match your brand, and give Phare a few seconds to generate an SSL certificate, your status page will be ready in no time.

<Frame>
  <img src="https://mintcdn.com/phare/Jh1uiqHFo-IwwO2b/images/uptime/status-pages/status-pages-creation.webp?fit=max&auto=format&n=Jh1uiqHFo-IwwO2b&q=85&s=541e4a046233940a849b3af946adac26" alt="Status page creation" width="3317" height="1864" data-path="images/uptime/status-pages/status-pages-creation.webp" />
</Frame>

## Phare domain

Every status page gets its own `*.status.phare.io` domain name, complete with SSL protection out of the box.

## Custom domain

Want your status page on your own domain? Simply create a CNAME record in your DNS settings pointing to `cname.status.phare.io`:

| Type  | Name               | Target                |
| :---- | :----------------- | :-------------------- |
| CNAME | status.example.com | cname.status.phare.io |

Make sure your DNS is configured correctly so Phare can generate a valid SSL certificate. This usually takes a few minutes. Once verified, your Phare domain will automatically redirect to your custom domain.

### Custom domain with Cloudflare DNS

Using Cloudflare? Make sure to create your CNAME with proxy status in `DNS-only` mode (keep the cloud icon gray, not orange) as shown below:

<Frame>
  <img src="https://mintcdn.com/phare/Jh1uiqHFo-IwwO2b/images/uptime/status-pages/custom-domain-cloudflare.webp?fit=max&auto=format&n=Jh1uiqHFo-IwwO2b&q=85&s=bb103c005cf0be364c68d5c407e37faa" alt="Custom domain on Cloudflare" width="2483" height="1007" data-path="images/uptime/status-pages/custom-domain-cloudflare.webp" />
</Frame>

### Custom domain with Bunny.net

Hello fellow Bunny enthusiast!

Since Phare also uses Bunny.net as a DNS and certificate provider, there's an extra security step, called **multi-domain**, required to make your domain work with Phare. Don't worry, it's quick and straightforward:

<Steps>
  <Step title="Create a TXT record">
    Add this TXT record to your DNS settings to help Bunny.net verify your request:

    | Type | Name               | Target                |
    | :--- | :----------------- | :-------------------- |
    | TXT  | status.example.com | Bunny Support - Phare |
  </Step>

  <Step title="Open a support ticket">
    Head over to your [Bunny.net support hub](https://dash.bunny.net/support/tickets) and create a new ticket.
  </Step>

  <Step title="Write a message">
    Select the **DNS** department and send something like this (with your actual domain):

    ```text theme={null}
    Hello Bunny.net team,

    I created a CNAME entry for my subdomain status.example.com that points to cname.status.phare.io.

    Phare.io is also using Bunny, and they need your authorization to add my subdomain on their PullZone and generate an SSL certificate for my subdomain. Could you please whitelist my domain for multi-use across the bunny platform? I've created a TXT record called `Bunny Support - Phare` as proof of ownership.

    Thank you for being awesome!
    ```
  </Step>

  <Step title="Wait for the ticket to be processed">
    Bunny's support team is usually quick, sit tight for a few minutes.
  </Step>

  <Step title="Verify your custom domain">
    Once resolved, go back to your <a href="https://app.phare.io/uptime/status-pages" rel="nofollow">status page dashboard</a> and hit the `Verify again` button to activate your custom domain.
  </Step>
</Steps>

<Frame>
  <img src="https://mintcdn.com/phare/Jh1uiqHFo-IwwO2b/images/uptime/status-pages/verify-failed-status-page-domain.webp?fit=max&auto=format&n=Jh1uiqHFo-IwwO2b&q=85&s=62d11d540044559bc66304120c792041" alt="Verify failed status page domain" width="1742" height="1070" data-path="images/uptime/status-pages/verify-failed-status-page-domain.webp" />
</Frame>

#### Known Issues

If you remove your domain name from **your own** Bunny DNS account, and later try to add it back, you will encounter the following error:

<Danger>
  It appears that the domain, or a subdomain of it, is already registered in
  another account.
</Danger>

This is due to the way Bunny handles domain ownership verification. When you remove the domain from your account, it will still be registered on Phare's account to handle your status page, preventing you from re-adding it.

**How to fix:**

1. [Disable your status page](https://app.phare.io/uptime/status-pages) in Phare
2. [Add your domain](https://dash.bunny.net/dns/zones) back to your Bunny account

The multi‑domain setting that was previously enabled by Bunny's support agents will stay active, allowing you to recreate your status page right away.

Having trouble? [Contact support](https://phare.io/contact).

## Subscription

Your users can stay informed about your service's status with automatic update subscriptions. Phare status pages come with built-in RSS and ATOM feeds, allowing for easy integration with various platforms.

### RSS and ATOM feeds

Every status page automatically includes feed endpoints that users can subscribe to:

* **RSS feed**: Available at `https://status.example.com/history.rss` or `https://example.status.phare.io/history.rss`
* **ATOM feed**: Available at `https://status.example.com/history.atom` or `https://example.status.phare.io/history.atom`

### Slack feed

Phare provides a dedicated Slack-compatible RSS feed for easy integration with Slack workspaces:

* **Slack RSS feed**: Available at `https://status.example.com/history.slack.rss` or `https://example.status.phare.io/history.slack.rss`

To subscribe in Slack, use the command:

```
/feed subscribe https://status.phare.io/history.slack.rss
```

### Subscribing to feeds

Your users can subscribe to the standard RSS/ATOM feeds using:

1. **Feed readers**: Apps like Feedly, Inoreader, or NewsBlur
2. **Email notifications**: Services that convert feeds to email alerts
3. **Other integrations**: Many platforms like Microsoft teams or Discord can connect to standard RSS/ATOM feeds for notifications

The number of subscribers is currently unlimited on any Phare plan at no extra cost.

## Access control

<Warning>Access control are only available with a Scale plan subscription</Warning>

By default, status pages are publicly accessible. You can restrict access using three complementary control mechanisms.

Multiple access controls can be activated to fit your needs, they are evaluated in order:

1. If the visitor's IP is in the allowlist → access is granted
2. If the URL includes a valid token query parameter → access is granted
3. If a password is configured → the visitor is redirected to a login page

### IP allowlist

<Frame>
  <img src="https://mintcdn.com/phare/gUgmTdIs5i7IDO-O/images/uptime/status-pages/access-control-ip.avif?fit=max&auto=format&n=gUgmTdIs5i7IDO-O&q=85&s=24437d18f04774175ab697a9a4596491" alt="Access control ips" width="1504" height="900" data-path="images/uptime/status-pages/access-control-ip.avif" />
</Frame>

<Tip>IP restrictions are the most seamless option when everyone accesses the page from a shared network or VPN.</Tip>

Define individual IPv4 addresses or CIDR ranges that are granted access automatically, with no token or password required. Requests from listed addresses bypass all other checks.

Common use cases:

* Office or campus networks
* VPN exit nodes
* CI/CD infrastructure polling badges or feeds

### Access token

<Frame>
  <img src="https://mintcdn.com/phare/gUgmTdIs5i7IDO-O/images/uptime/status-pages/access-control-token.avif?fit=max&auto=format&n=gUgmTdIs5i7IDO-O&q=85&s=1785d115713f5b4cd756261787868907" alt="Access control token" width="1486" height="524" data-path="images/uptime/status-pages/access-control-token.avif" />
</Frame>

<Tip>Tokens are ideal for programmatic access like RSS/Atom feeds, or showing embedded badges on internal resources.</Tip>

Append a secret `token` query parameter to any status page URL to grant access. The token works on the main page, feeds, and badge endpoints:

```
https://example.status.phare.io?token=<your-token>
https://status.example.com/history.rss?token=<your-token>
https://status.example.com/embed-badges/static-status?token=<your-token>
```

When a browser visits a URL with a valid token, a session cookie is set automatically, subsequent visits from that browser won't need the token for 1h.

### Access password

<Frame>
  <img src="https://mintcdn.com/phare/gUgmTdIs5i7IDO-O/images/uptime/status-pages/access-control-password.avif?fit=max&auto=format&n=gUgmTdIs5i7IDO-O&q=85&s=35f2ed652f086f0c4a0f0017ff4d3117" alt="Access control password" width="1486" height="406" data-path="images/uptime/status-pages/access-control-password.avif" />
</Frame>

<Tip>Passwords are the simplest option for human visitors who access the page through a regular browser.</Tip>

When a password is configured, visitors are prompted with a login screen before they can view the status page. This works well for internal pages shared with team members or customers.

## Status badges

Once your status page is live, you get access to status badges you can proudly display on your website or repository. They're a great way to show transparency and confidence in your service reliability. Access them through your status page's action menu.

<Frame>
  <img src="https://mintcdn.com/phare/Jh1uiqHFo-IwwO2b/images/uptime/status-pages/status-badges-menu.webp?fit=max&auto=format&n=Jh1uiqHFo-IwwO2b&q=85&s=07a435a7606b42f772f6b0fd4d4acbfb" alt="Status badges menu" width="1636" height="814" data-path="images/uptime/status-pages/status-badges-menu.webp" />
</Frame>

### Embed badges

These badges are designed for your website and can be customized to fit right in with your design. They adapt to light/dark themes or can be forced to either style. You can adjust:

* `align`: For the live status badge positioning. Options: `start`, `center`, or `end`.
* `background-light`: Background color in light mode.
* `background-dark`: Background color in dark mode.
* `text-light`: Text color in light mode.
* `text-dark`: Text color in dark mode.

Colors accept standard hex formats (RGB, RGBA, RRGGBB, or RRGGBBAA). Not feeling creative? There's already some stylish presets ready to go.

<Frame>
  <img src="https://mintcdn.com/phare/Jh1uiqHFo-IwwO2b/images/uptime/status-pages/embed-status-badge.webp?fit=max&auto=format&n=Jh1uiqHFo-IwwO2b&q=85&s=c94a3b843bcb6f43e965dbbdcc781e56" alt="Embed status badges" width="2516" height="1516" data-path="images/uptime/status-pages/embed-status-badge.webp" />
</Frame>

### Shield badges

These are the classic badges you see in GitHub repositories. Perfect for your README file, they come in all the popular shield styles. Based on the [Shields.io](https://shields.io) service, they're [fully customizable](https://shields.io/badges/endpoint-badge) to match your project's look.

<Frame>
  <img src="https://mintcdn.com/phare/Jh1uiqHFo-IwwO2b/images/uptime/status-pages/shield-status-badge.webp?fit=max&auto=format&n=Jh1uiqHFo-IwwO2b&q=85&s=7b1ad5d22f49df5c1bb061c660d0b98c" alt="Shield status badges" width="2478" height="962" data-path="images/uptime/status-pages/shield-status-badge.webp" />
</Frame>
