Skip to content

feat(ui): Add customizable OIDC login screen branding#1583

Merged
TwiN merged 3 commits into
TwiN:masterfrom
hluaces:feat/oidc-login-customization
Apr 2, 2026
Merged

feat(ui): Add customizable OIDC login screen branding#1583
TwiN merged 3 commits into
TwiN:masterfrom
hluaces:feat/oidc-login-customization

Conversation

@hluaces

@hluaces hluaces commented Mar 16, 2026

Copy link
Copy Markdown
Contributor

As per #1579, this PR allows for some customizations in the OIDC login screen:

  • If a logo is set it will be displayed alongside the Gatus one
  • New ui config ui.login-subtitle: customises the message in the screen
  • If set, use ui.header will be used to customise the title

I haven't commited the web static assets. I believe that's triggered with a comment? let me know if I should be doing it.

Also please clarify if I've forgotten about something here, this is my first pr.

@github-actions github-actions Bot added feature New feature or request area/ui Related to the user interface labels Mar 16, 2026
@hluaces

hluaces commented Mar 16, 2026

Copy link
Copy Markdown
Contributor Author

This is how it looks like when a logo, header and login-subtitle is set:

Captura desde 2026-03-16 10-39-48

This is what it looks like with a login-subtitle and header, but no logo:

Captura desde 2026-03-16 10-41-05

And this is how it looks like with no header, logo or login-subtitle (matches existing default looks):

Captura desde 2026-03-16 10-50-44

@hluaces hluaces marked this pull request as ready for review March 16, 2026 09:53
As per TwiN#1579, this PR
allows for some customizations in the OIDC login screen:

- If a logo is set it will be displayed alongside the Gatus one
- New ui config `ui.login-subtitle`: customises the message in
  the screen
- If set, use `ui.header` will be used to customise the title

I haven't commited the web static assets. I believe that's
triggered with a comment? let me know if I should be doing it.

Also please clarify if I've forgotten about something here,
this is my first pr.
@hluaces hluaces force-pushed the feat/oidc-login-customization branch from cf37bd3 to f9b22cf Compare March 23, 2026 09:39
@TwiN

TwiN commented Apr 2, 2026

Copy link
Copy Markdown
Owner

/regenerate-static-assets

@TwiN TwiN requested a review from Copilot April 2, 2026 00:37
@github-actions

github-actions Bot commented Apr 2, 2026

Copy link
Copy Markdown
Contributor

@TwiN There was an issue regenerating static assets. Please check the workflow run logs for more details.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds configurable branding/text to the OIDC login screen so instances can present organization-specific identity rather than a fixed Gatus-only login view.

Changes:

  • Update OIDC login UI to optionally show a custom logo alongside the Gatus logo and use ui.header as the login title.
  • Introduce new UI config ui.login-subtitle surfaced to the frontend via window.config.
  • Add backend config field/defaulting + tests, and document the new UI option in the README.

Reviewed changes

Copilot reviewed 7 out of 8 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
web/app/src/App.vue Uses header and new loginSubtitle for the OIDC login screen and shows co-branding when logo is set.
web/app/public/index.html Adds loginSubtitle into the server-templated window.config object.
README.md Documents ui.login-subtitle and clarifies how ui.header/ui.logo affect the OIDC login page.
config/ui/ui.go Adds LoginSubtitle to UI config, default value, and defaulting logic.
config/ui/ui_test.go Extends UI config tests to cover LoginSubtitle defaults and preservation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread web/app/public/index.html
Comment thread web/app/src/App.vue
<CardTitle class="text-3xl">Gatus</CardTitle>
<p class="text-muted-foreground mt-2">System Monitoring Dashboard</p>
<div v-if="logo" class="flex items-center justify-center gap-4 mb-4">
<img :src="logo" alt="" class="w-20 h-20 object-contain" />

Copilot AI Apr 2, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The custom logo image uses an empty alt attribute. Since this logo is meaningful branding on the login screen (not purely decorative), provide a descriptive alt text (e.g., derived from header/a dedicated config value) so screen readers can announce it appropriately.

Suggested change
<img :src="logo" alt="" class="w-20 h-20 object-contain" />
<img :src="logo" :alt="header || 'Status page logo'" class="w-20 h-20 object-contain" />

Copilot uses AI. Check for mistakes.
@TwiN TwiN merged commit 12be9fa into TwiN:master Apr 2, 2026
@TwiN

TwiN commented Apr 2, 2026

Copy link
Copy Markdown
Owner

Excellent work!

doonga pushed a commit to greyrock-labs/home-ops that referenced this pull request May 20, 2026
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/twin/gatus](https://github.com/TwiN/gatus) | minor | `v5.35.0` → `v5.36.0` |

---

### Release Notes

<details>
<summary>TwiN/gatus (ghcr.io/twin/gatus)</summary>

### [`v5.36.0`](https://github.com/TwiN/gatus/releases/tag/v5.36.0)

[Compare Source](TwiN/gatus@v5.35.0...v5.36.0)

##### What's Changed

- perf: Add PostgreSQL indexes for \~15x performance improvement by [@&#8203;ozanonurtek](https://github.com/ozanonurtek) in [#&#8203;1541](TwiN/gatus#1541)
- fix(alerting): Remove square brackets from email subject by [@&#8203;jaydeethree](https://github.com/jaydeethree) in [#&#8203;1586](TwiN/gatus#1586)
- fix(security): Do not allow invalid security configs by [@&#8203;PythonGermany](https://github.com/PythonGermany) in [#&#8203;1531](TwiN/gatus#1531)
- fix: return error from rdapQuery when no expiration event found by [@&#8203;majiayu000](https://github.com/majiayu000) in [#&#8203;1603](TwiN/gatus#1603)
- fix(ci): regenerate-static-assets workflow reporting false errors on success by [@&#8203;Copilot](https://github.com/Copilot) in [#&#8203;1614](TwiN/gatus#1614)
- feat(ui): Add customizable OIDC login screen branding by [@&#8203;hluaces](https://github.com/hluaces) in [#&#8203;1583](TwiN/gatus#1583)
- fix(test): Remove t.Parallel() from tests racing on injectedHTTPClient by [@&#8203;Copilot](https://github.com/Copilot) in [#&#8203;1630](TwiN/gatus#1630)
- fix(storage): close rows before nested queries to prevent PostgreSQL driver error by [@&#8203;osalloum](https://github.com/osalloum) in [#&#8203;1503](TwiN/gatus#1503)
- docs: Document remote.client configuration by [@&#8203;surdaft](https://github.com/surdaft) in [#&#8203;1637](TwiN/gatus#1637)
- fix: update lib/pq to v1.11.2 to fix Supabase PostgreSQL connection regression by [@&#8203;wahajahmed010](https://github.com/wahajahmed010) in [#&#8203;1644](TwiN/gatus#1644)

##### New Contributors

- [@&#8203;ozanonurtek](https://github.com/ozanonurtek) made their first contribution in [#&#8203;1541](TwiN/gatus#1541)
- [@&#8203;jaydeethree](https://github.com/jaydeethree) made their first contribution in [#&#8203;1586](TwiN/gatus#1586)
- [@&#8203;majiayu000](https://github.com/majiayu000) made their first contribution in [#&#8203;1603](TwiN/gatus#1603)
- [@&#8203;hluaces](https://github.com/hluaces) made their first contribution in [#&#8203;1583](TwiN/gatus#1583)
- [@&#8203;osalloum](https://github.com/osalloum) made their first contribution in [#&#8203;1503](TwiN/gatus#1503)
- [@&#8203;surdaft](https://github.com/surdaft) made their first contribution in [#&#8203;1637](TwiN/gatus#1637)
- [@&#8203;wahajahmed010](https://github.com/wahajahmed010) made their first contribution in [#&#8203;1644](TwiN/gatus#1644)

**Full Changelog**: <TwiN/gatus@v5.35.0...v5.36.0>

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xODIuMiIsInVwZGF0ZWRJblZlciI6IjQzLjE4Mi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19-->

Reviewed-on: https://git.greyrock.io/greyrock-labs/home-ops/pulls/82
eleboucher pushed a commit to eleboucher/homelab that referenced this pull request May 20, 2026
…(#577)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/twin/gatus](https://github.com/TwiN/gatus) | minor | `v5.35.0` → `v5.36.0` |

---

### Release Notes

<details>
<summary>TwiN/gatus (ghcr.io/twin/gatus)</summary>

### [`v5.36.0`](https://github.com/TwiN/gatus/releases/tag/v5.36.0)

[Compare Source](TwiN/gatus@v5.35.0...v5.36.0)

##### What's Changed

- perf: Add PostgreSQL indexes for \~15x performance improvement by [@&#8203;ozanonurtek](https://github.com/ozanonurtek) in [#&#8203;1541](TwiN/gatus#1541)
- fix(alerting): Remove square brackets from email subject by [@&#8203;jaydeethree](https://github.com/jaydeethree) in [#&#8203;1586](TwiN/gatus#1586)
- fix(security): Do not allow invalid security configs by [@&#8203;PythonGermany](https://github.com/PythonGermany) in [#&#8203;1531](TwiN/gatus#1531)
- fix: return error from rdapQuery when no expiration event found by [@&#8203;majiayu000](https://github.com/majiayu000) in [#&#8203;1603](TwiN/gatus#1603)
- fix(ci): regenerate-static-assets workflow reporting false errors on success by [@&#8203;Copilot](https://github.com/Copilot) in [#&#8203;1614](TwiN/gatus#1614)
- feat(ui): Add customizable OIDC login screen branding by [@&#8203;hluaces](https://github.com/hluaces) in [#&#8203;1583](TwiN/gatus#1583)
- fix(test): Remove t.Parallel() from tests racing on injectedHTTPClient by [@&#8203;Copilot](https://github.com/Copilot) in [#&#8203;1630](TwiN/gatus#1630)
- fix(storage): close rows before nested queries to prevent PostgreSQL driver error by [@&#8203;osalloum](https://github.com/osalloum) in [#&#8203;1503](TwiN/gatus#1503)
- docs: Document remote.client configuration by [@&#8203;surdaft](https://github.com/surdaft) in [#&#8203;1637](TwiN/gatus#1637)
- fix: update lib/pq to v1.11.2 to fix Supabase PostgreSQL connection regression by [@&#8203;wahajahmed010](https://github.com/wahajahmed010) in [#&#8203;1644](TwiN/gatus#1644)

##### New Contributors

- [@&#8203;ozanonurtek](https://github.com/ozanonurtek) made their first contribution in [#&#8203;1541](TwiN/gatus#1541)
- [@&#8203;jaydeethree](https://github.com/jaydeethree) made their first contribution in [#&#8203;1586](TwiN/gatus#1586)
- [@&#8203;majiayu000](https://github.com/majiayu000) made their first contribution in [#&#8203;1603](TwiN/gatus#1603)
- [@&#8203;hluaces](https://github.com/hluaces) made their first contribution in [#&#8203;1583](TwiN/gatus#1583)
- [@&#8203;osalloum](https://github.com/osalloum) made their first contribution in [#&#8203;1503](TwiN/gatus#1503)
- [@&#8203;surdaft](https://github.com/surdaft) made their first contribution in [#&#8203;1637](TwiN/gatus#1637)
- [@&#8203;wahajahmed010](https://github.com/wahajahmed010) made their first contribution in [#&#8203;1644](TwiN/gatus#1644)

**Full Changelog**: <TwiN/gatus@v5.35.0...v5.36.0>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDEuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEwMS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19-->

Reviewed-on: https://git.erwanleboucher.dev/eleboucher/homelab/pulls/577
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/ui Related to the user interface feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants