Update to use selfhosted icons
All checks were successful
Build and Deploy / build (push) Successful in 1m0s

This commit is contained in:
Justin Deal 2025-05-06 20:10:17 -07:00
parent b0d6fcc6d8
commit 29d0b51dfe
4 changed files with 31 additions and 21 deletions

View File

@ -12,14 +12,14 @@
{
"name": "Nextcloud",
"link": "https://cloud.justin.deal",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/nextcloud-light.svg",
"icon": "https://icons.justin.deal/nextcloud.svg?color=ebdbb2",
"iconDark": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/nextcloud-dark.svg",
"alt": "Nextcloud"
},
{
"name": "Gitea",
"link": "https://code.justin.deal",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/gitea-light.svg",
"icon": "https://icons.justin.deal/gitea.svg?color=ebdbb2",
"iconDark": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/gitea-dark.svg",
"alt": "Gitea",
"tags": ["git", "code", "repository"]
@ -27,7 +27,7 @@
{
"name": "OpenGist",
"link": "https://snippets.justin.deal",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/opengist-light.svg",
"icon": "https://icons.justin.deal/opengist.svg?color=ebdbb2",
"iconDark": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/opengist-dark.svg",
"alt": "OpenGist",
"tags": ["gist", "snippets"]
@ -35,7 +35,7 @@
{
"name": "Calibre-Web",
"link": "https://books.justin.deal",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/calibre-web-light.svg",
"icon": "https://icons.justin.deal/calibre-web.svg?color=ebdbb2",
"iconDark": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/calibre-web-dark.svg",
"alt": "Calibre-Web",
"tags": ["books", "read"]
@ -43,7 +43,7 @@
{
"name": "Jellyfin",
"link": "https://watch.justin.deal",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/jellyfin-light.svg",
"icon": "https://icons.justin.deal/jellyfin.svg?color=ebdbb2",
"iconDark": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/jellyfin-dark.svg",
"alt": "Jellyfin",
"tags": ["movies", "tv", "shows", "watch"]
@ -54,7 +54,7 @@
{
"name": "Searxng",
"link": "https://search.justin.deal",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/searxng-light.svg",
"icon": "https://icons.justin.deal/searxng.svg?color=ebdbb2",
"iconDark": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/searxng-dark.svg",
"alt": "Searxng",
"tags": ["search", "privacy", "metasearch"]
@ -62,15 +62,23 @@
{
"name": "IT-Tools",
"link": "https://tools.justin.deal",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/it-tools-light.svg",
"icon": "https://icons.justin.deal/it-tools.svg?color=ebdbb2",
"iconDark": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/it-tools-dark.svg",
"alt": "IT-Tools",
"tags": ["dev"]
},
{
"name": "Icons",
"link": "https://icons.justin.deal",
"icon": "https://icons.justin.deal/selfh-st.svg?color=ebdbb2",
"iconDark": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/slfh-st-dark.svg",
"alt": "Icons",
"tags": ["icons"]
},
{
"name": "Ollama",
"link": "https://ai.justin.deal",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/ollama-light.svg",
"icon": "https://icons.justin.deal/ollama.svg?color=ebdbb2",
"iconDark": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/ollama-dark.svg",
"alt": "Ollama",
"tags": ["LLM", "AI", "models", "chatbot"]
@ -81,7 +89,7 @@
{
"name": "Uptime Kuma",
"link": "https://status.justin.deal",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/uptime-kuma-light.svg",
"icon": "https://icons.justin.deal/uptime-kuma.svg?color=ebdbb2",
"iconDark": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/uptime-kuma-dark.svg",
"alt": "Uptime Kuma",
"tags": ["status"]
@ -89,7 +97,7 @@
{
"name": "Umami",
"link": "https://analytics.justin.deal",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/umami-light.svg",
"icon": "https://icons.justin.deal/umami.svg?color=ebdbb2",
"iconDark": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/umami-dark.svg",
"alt": "Umami",
"tags": ["analytics"]
@ -97,7 +105,7 @@
{
"name": "TeslaMate",
"link": "https://tesla.justin.deal",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/teslamate-light.svg",
"icon": "https://icons.justin.deal/teslamate.svg?color=ebdbb2",
"iconDark": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/teslamate-dark.svg",
"alt": "TeslaMate",
"tags": ["car", "tesla"]
@ -108,7 +116,7 @@
{
"name": "Pi-hole",
"link": "http://pi.hole/admin/",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/pi-hole-light.svg",
"icon": "https://icons.justin.deal/pi-hole.svg?color=ebdbb2",
"iconDark": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/pi-hole-dark.svg",
"alt": "Pi-hole",
"tags": ["dns"]
@ -116,7 +124,7 @@
{
"name": "Ntfy",
"link": "https://ntfy.justin.deal",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/ntfy-light.svg",
"icon": "https://icons.justin.deal/ntfy.svg?color=ebdbb2",
"iconDark": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/ntfy-dark.svg",
"alt": "Ntfy",
"tags": ["notifications"]
@ -124,7 +132,7 @@
{
"name": "Vaultwarden",
"link": "https://passwords.justin.deal",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/vaultwarden-light.svg",
"icon": "https://icons.justin.deal/vaultwarden.svg?color=ebdbb2",
"iconDark": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/vaultwarden-dark.svg",
"alt": "Vaultwarden",
"tags": ["passwords"]
@ -132,7 +140,7 @@
{
"name": "Authentik",
"link": "https://auth.justin.deal",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/authentik-light.svg",
"icon": "https://icons.justin.deal/authentik.svg?color=ebdbb2",
"iconDark": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/authentik-dark.svg",
"alt": "Authentik",
"tags": ["SSO", "Auth", "Authentication"]
@ -140,7 +148,7 @@
{
"name": "Traefik",
"link": "https://proxy.justin.deal:8080",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/traefik-light.svg",
"icon": "https://icons.justin.deal/traefik.svg?color=ebdbb2",
"iconDark": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/traefik-dark.svg",
"alt": "Traefik",
"tags": ["proxy", "reverse-proxy", "load-balancer"]
@ -148,7 +156,7 @@
{
"name": "Syncthing",
"link": "https://sync.justin.deal",
"icon": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/syncthing-light.svg",
"icon": "https://icons.justin.deal/syncthing.svg?color=ebdbb2",
"iconDark": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/syncthing-dark.svg",
"alt": "Syncthing",
"tags": ["sync", "files"]

View File

@ -3,7 +3,7 @@
"name": "Gitea",
"url": "https://code.justin.deal/dealjus",
"iconDark": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/gitea-dark.svg",
"iconLight": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/gitea-light.svg",
"iconLight": "https://icons.justin.deal/gitea.svg?color=ebdbb2",
"alt": "Gitea Profile",
"showInFooter": true,
"showInAbout": true
@ -12,7 +12,7 @@
"name": "LinkedIn",
"url": "https://www.linkedin.com/in/justin-deal/",
"iconDark": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/linkedin-dark.svg",
"iconLight": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/linkedin-light.svg",
"iconLight": "https://icons.justin.deal/linkedin.svg?color=ebdbb2",
"alt": "LinkedIn Profile",
"showInFooter": true,
"showInAbout": true
@ -21,7 +21,7 @@
"name": "GitHub",
"url": "https://github.com/justintdeal",
"iconDark": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/github-dark.svg",
"iconLight": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/github-light.svg",
"iconLight": "https://icons.justin.deal/github.svg?color=ebdbb2",
"alt": "GitHub Profile",
"showInFooter": true,
"showInAbout": true

View File

@ -70,6 +70,7 @@ const cardId = `service-card-${crypto.randomUUID().slice(0, 8)}`;
width="64"
height="64"
fetchpriority="low"
onerror="this.onerror=null; this.src=this.src.includes('icons.justin.deal') ? this.src.replace('icons.justin.deal', 'cdn.jsdelivr.net/gh/selfhst/icons/svg').replace(/\.svg\?color=.*$/, '-light.svg') : this.src;"
/>
<!-- Dark icon (shown in light mode) -->
<img

View File

@ -36,6 +36,7 @@ const sizeClasses = {
src={lightIcon}
alt={alt}
class={`${sizeClasses[size]} dark-theme-only zag-transition`}
onerror="this.onerror=null; this.src=this.src.includes('icons.justin.deal') ? this.src.replace('icons.justin.deal', 'cdn.jsdelivr.net/gh/selfhst/icons/svg').replace(/\.svg\?color=.*$/, '-light.svg') : this.src;"
/>
</Anchor>