Skip to content

feat(ui): Add support for custom favicon#1097

Merged
TwiN merged 1 commit into
TwiN:masterfrom
mloskot:ml/feat/ui-favicon.ico
Jan 16, 2026
Merged

feat(ui): Add support for custom favicon#1097
TwiN merged 1 commit into
TwiN:masterfrom
mloskot:ml/feat/ui-favicon.ico

Conversation

@mloskot

@mloskot mloskot commented May 11, 2025

Copy link
Copy Markdown
Contributor

Adds new node favicon to ui configuration with properties that allow to overwrite the three favicons which are currently in use in the index.html template.

Configuration Example

ui:
  favicon:
    # these are all optional, can be mixed and matched
    default: https://example.com/favicon.ico       # replaces default /favicon.ico
    size16x16: https://example.com/favicon.ico     # replaces default /favicon-16x16.png
    size32x32: https://example.com/logo-32x32.ico  # replaces default /favicon-32x32.png

References

@github-actions github-actions Bot added the feature New feature or request label May 11, 2025
@mloskot mloskot mentioned this pull request May 11, 2025
@owennewo-dev

Copy link
Copy Markdown

Any reason why this has not been merged? I would appreciate if I could easily change the favicon.

@benedikt-bartscher

Copy link
Copy Markdown

This looks good to me, thanks @mloskot

i hope we can get a review from @TwiN and get it merged soon

@minakoto00

Copy link
Copy Markdown

Any updates on this? Thanks.

@TwiN

TwiN commented Oct 30, 2025

Copy link
Copy Markdown
Owner

@mloskot Could you add a quick test for the new feature?

@mloskot

mloskot commented Oct 30, 2025

Copy link
Copy Markdown
Contributor Author

@mloskot Could you add a quick test for the new feature?

Sure, I can try. I see there is also a conflict to resolve. Please, give me 2-3 days and I will deliver an update to this PR.

@TwiN

TwiN commented Oct 30, 2025

Copy link
Copy Markdown
Owner

@mloskot No problem, take your time!

@mloskot

mloskot commented Oct 30, 2025

Copy link
Copy Markdown
Contributor Author

@TwiN I've resolved the conflicts and force-pushed to update this PR. I see there is a change to ui_test.go. Is there anything else to cover with tests?

@vermium

vermium commented Dec 30, 2025

Copy link
Copy Markdown

Would very much want this.

@mloskot

mloskot commented Dec 31, 2025

Copy link
Copy Markdown
Contributor Author

@TwiN I've just resolved the conflicts again and force-pushed to update this PR.

p.s. It would be helpful if the Go part of the codebase adopted the go fmt unification in order to make working with style of Go code a no-brainer :)

@TwiN

TwiN commented Jan 2, 2026

Copy link
Copy Markdown
Owner

There's a typo in the HTML you updated. It should be 32x32, not 32x23

@mloskot

mloskot commented Jan 2, 2026

Copy link
Copy Markdown
Contributor Author

@TwiN Thanks for catching the typo. I've just fixed it.

@mloskot

mloskot commented Jan 9, 2026

Copy link
Copy Markdown
Contributor Author

@TwiN Is there anything else this PR needs? Are you planning to accept it?

@vermium

vermium commented Jan 10, 2026

Copy link
Copy Markdown

@TwiN we would really like this feature as well.

Not sure why it is really needed to have multiple sizes tho? Usually when I set favicon on applications I use same url for all devices.

@mloskot

mloskot commented Jan 10, 2026

Copy link
Copy Markdown
Contributor Author

@vermium I'm not a frontend developer and I don't know the answer to your second question.
However, this PR does not introduce the use of multiple sizes, but follows the existing implementation and only enables setting the favicon(s) with a custome icon.

@TwiN

TwiN commented Jan 11, 2026

Copy link
Copy Markdown
Owner

Given that so far, all images that can be configured are external (e.g. image in the header accepts an external link), does the favicon also accept external images, or must the favicon be under the same domain?

I'm not sure myself, as I've always had the favicon configured under the same domain

@mloskot

mloskot commented Jan 12, 2026

Copy link
Copy Markdown
Contributor Author

@TwiN

does the favicon also accept external images, or must the favicon be under the same domain?

Again, I'm not a frontend developer,. but looks like it does, for example, favicon is treated just as any other HTTP resources on page, so it can be external.

I've always had the favicon configured under the same domain

Me too.

@thedaneeffect

thedaneeffect commented Jan 13, 2026

Copy link
Copy Markdown

Perhaps gatus could request the image itself and cache it in memory, that way you don't have to worry about cross-domain requests.

@mloskot

mloskot commented Jan 13, 2026

Copy link
Copy Markdown
Contributor Author

@thedaneeffect

Perhaps gatus could request the image itself and cache it in memory,

Sounds like an interesting idea to explore, but I'd rather focus here on merging this PR first.
I don't want to sound like I'm complaining here, but objectively speaking, given how trivial changes this PR proposes, it has already been open for too long.

Adds new node `favicon` to `ui` configuration
with properties that allow to overwrite the three
favicons which are currently in use in the index.html template.

Closes #174

Signed-off-by: Mateusz Łoskot <mateusz@loskot.net>
@TwiN

TwiN commented Jan 16, 2026

Copy link
Copy Markdown
Owner

/regenerate-static-assets

@github-actions

Copy link
Copy Markdown
Contributor

@TwiN No changes to commit after regenerating static assets 🎉

@TwiN TwiN changed the title feat: Add UI configuration for custom favicon feat(ui): Add support for custom favicon Jan 16, 2026
@TwiN TwiN added the area/ui Related to the user interface label Jan 16, 2026
@TwiN TwiN merged commit 309d68e into TwiN:master Jan 16, 2026
3 checks passed
@TwiN

TwiN commented Jan 16, 2026

Copy link
Copy Markdown
Owner

Thank you for the contribution!

@mloskot mloskot deleted the ml/feat/ui-favicon.ico branch January 16, 2026 22:39
@mloskot

mloskot commented Jan 16, 2026

Copy link
Copy Markdown
Contributor Author

@TwiN Thank you for the reviews and merging!

@mloskot

mloskot commented Feb 20, 2026

Copy link
Copy Markdown
Contributor Author

@TwiN Forgive me for asking, but is there any plan to issue new release with this feature?

By the way, I do read the release notes :) I quite understand your message, I have been there too. Take your time, computers will wait.

@TwiN

TwiN commented Feb 20, 2026

Copy link
Copy Markdown
Owner

@mloskot No worries, don't hesitate to ask questions :) While I've got a lot on my plate right now, I look at new issues/discussions/PRs daily, I just prioritize based on urgency, and I also prioritize stability over new shiny features, which combined with my current situation means that some PRs don't get the love they deserve as fast as they should.

And yeah, I was kind of blown away by the response on the release note. I didn't think this many people paid attention to release notes.

I just released v5.35.0 for you, have a great weekend!

alexlebens pushed a commit to alexlebens/infrastructure that referenced this pull request Feb 20, 2026
This PR contains the following updates:

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

---

### Release Notes

<details>
<summary>TwiN/gatus (TwiN/gatus)</summary>

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

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

#### What's Changed

- feat(conditions,ui): Add `endpoints[].ui.resolve-successful-conditions` by [@&#8203;lorenzoppx](https://github.com/lorenzoppx) in [#&#8203;1486](TwiN/gatus#1486)
- feat(ui): Add support for custom favicon by [@&#8203;mloskot](https://github.com/mloskot) in [#&#8203;1097](TwiN/gatus#1097)
- fix(ui): Persist show average response time setting by [@&#8203;PythonGermany](https://github.com/PythonGermany) in [#&#8203;1438](TwiN/gatus#1438)
- fix(ci): Adjust static asset generation workflow by [@&#8203;PythonGermany](https://github.com/PythonGermany) in [#&#8203;1480](TwiN/gatus#1480)
- fix: handle HTTP header names case-insensitively by [@&#8203;AnuragEkkati](https://github.com/AnuragEkkati) in [#&#8203;1506](TwiN/gatus#1506)
- refactor: Simplify and modernize loops by [@&#8203;PythonGermany](https://github.com/PythonGermany) in [#&#8203;1522](TwiN/gatus#1522)
- docs: Fix typo in README concurrency section by [@&#8203;emrebasarannn](https://github.com/emrebasarannn) in [#&#8203;1520](TwiN/gatus#1520)
- chore: Update to Go 1.25 by [@&#8203;TwiN](https://github.com/TwiN) in [#&#8203;1519](TwiN/gatus#1519)
- chore(deps): bump github.com/aws/aws-sdk-go-v2 from 1.40.0 to 1.41.0 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;1466](TwiN/gatus#1466)
- chore(deps): bump golang.org/x/crypto from 0.45.0 to 0.46.0 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;1488](TwiN/gatus#1488)
- chore(deps): bump github.com/miekg/dns from 1.1.68 to 1.1.70 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;1490](TwiN/gatus#1490)
- chore(deps): bump github.com/aws/aws-sdk-go-v2/credentials from 1.19.2 to 1.19.7 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;1498](TwiN/gatus#1498)
- chore(deps): bump code.gitea.io/sdk/gitea from 0.22.1 to 0.23.2 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;1525](TwiN/gatus#1525)
- chore(deps): bump github.com/TwiN/whois from 1.2.0 to 1.3.0 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;1538](TwiN/gatus#1538)
- chore(deps): bump google.golang.org/api from 0.264.0 to 0.265.0 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;1533](TwiN/gatus#1533)
- chore(deps): bump github.com/prometheus-community/pro-bing from 0.7.0 to 0.8.0 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;1544](TwiN/gatus#1544)
- chore(deps): bump golang.org/x/oauth2 from 0.34.0 to 0.35.0 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;1543](TwiN/gatus#1543)

#### New Contributors

- [@&#8203;lorenzoppx](https://github.com/lorenzoppx) made their first contribution in [#&#8203;1486](TwiN/gatus#1486)
- [@&#8203;AnuragEkkati](https://github.com/AnuragEkkati) made their first contribution in [#&#8203;1506](TwiN/gatus#1506)
- [@&#8203;emrebasarannn](https://github.com/emrebasarannn) made their first contribution in [#&#8203;1520](TwiN/gatus#1520)

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

***

Have a great weekend!

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiI0My4yNS43IiwidXBkYXRlZEluVmVyIjoiNDMuMjUuNyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/4130
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
@mloskot

mloskot commented Feb 21, 2026

Copy link
Copy Markdown
Contributor Author

@TwiN

I just released v5.35.0 for you

Thank you very much!

I just prioritize based on urgency, and I also prioritize stability over new shiny features

It is perfectly understandable.

Have a good weekend too!

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.

Support favicon

7 participants