Skip to content

feat: add dashboard-icons as icon fallback source#1154

Merged
tw93 merged 2 commits intotw93:mainfrom
dbraendle:feat/dashboard-icons-fallback
Mar 21, 2026
Merged

feat: add dashboard-icons as icon fallback source#1154
tw93 merged 2 commits intotw93:mainfrom
dbraendle:feat/dashboard-icons-fallback

Conversation

@dbraendle
Copy link
Copy Markdown
Contributor

Summary

  • Adds walkxcode/dashboard-icons as a primary icon source, matching by --name parameter
  • When packaging selfhosted apps (Grafana, Proxmox, TrueNAS, etc.) behind authentication, the existing domain-based icon services (logo.dev, Brandfetch, Clearbit, Google Favicons, favicon.ico) fail because they either can't reach the favicon or return an incorrect icon based on the root domain
  • Dashboard-icons is tried first by app name; if no match is found, falls back to the existing domain-based services

Problem

When running e.g. pake https://grafana.mylab.local --name Grafana, the icon services try to resolve the favicon for grafana.mylab.local. Since the app is behind auth, /favicon.ico returns a redirect or error. The services then match the root domain and return an incorrect generic icon.

Solution

Before trying domain-based services, attempt to fetch the icon from cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/{name}.png using the --name parameter. This covers 500+ popular selfhosted applications. If the name doesn't match any dashboard icon (404), the existing flow continues unchanged.

Test plan

  • Tested with --name Grafana → correct Grafana icon fetched
  • Verified Proxmox, TrueNAS slugs resolve (HTTP 200)
  • Non-matching names fall through to existing domain-based services
  • Verify no regression for public URLs (e.g. pake https://twitter.com --name Twitter)

dbraendle and others added 2 commits March 20, 2026 00:24
When packaging selfhosted apps (Grafana, Proxmox, TrueNAS, etc.)
behind authentication, the existing domain-based icon services fail
because they cannot access the favicon. This adds walkxcode/dashboard-icons
as a primary icon source, matching by app name (--name). Falls back to
existing domain-based services if no match is found.
@tw93
Copy link
Copy Markdown
Owner

tw93 commented Mar 21, 2026

@dbraendle Thanks for the contribution.

I merged this with a follow-up adjustment on top of your branch.

Reason for the change:

  • dashboard-icons is useful for self-hosted apps behind auth, so keeping it as a fallback makes sense.
  • Putting it first changes behavior for many public sites as well, because the icon set already contains entries like twitter, github, google, notion, and others.
  • That means we could override a valid site-specific favicon with a name-based static icon, which is a broader regression than intended.
  • I moved dashboard-icons to the final fallback position, after the existing domain-based services fail.
  • I also kept slug matching conservative, only exact name and space-to-hyphen, to reduce false positives.

This keeps the benefit for self-hosted and authenticated installs, without changing the normal path for public websites.

@tw93 tw93 merged commit b66feb2 into tw93:main Mar 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants