From 29d0b51dfef931dac6b941a1a9722ba030dff90c Mon Sep 17 00:00:00 2001 From: Justin Deal Date: Tue, 6 May 2025 20:10:17 -0700 Subject: [PATCH] Update to use selfhosted icons --- config/services.json | 42 +++++++++++++++---------- config/socials.json | 6 ++-- src/components/common/ServiceCard.astro | 1 + src/components/common/SocialIcon.astro | 3 +- 4 files changed, 31 insertions(+), 21 deletions(-) diff --git a/config/services.json b/config/services.json index fd06e78..2995170 100644 --- a/config/services.json +++ b/config/services.json @@ -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"] diff --git a/config/socials.json b/config/socials.json index 23c1382..1bf7aa8 100644 --- a/config/socials.json +++ b/config/socials.json @@ -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 diff --git a/src/components/common/ServiceCard.astro b/src/components/common/ServiceCard.astro index fd41673..b398ef1 100644 --- a/src/components/common/ServiceCard.astro +++ b/src/components/common/ServiceCard.astro @@ -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;" /> {alt}