fix: correct app icon paths and add missing icons

- Fix 9 wrong/placeholder icon paths in backend (docker_packages.rs)
- Vaultwarden, Jellyfin, PhotoPrism, Immich: placeholder → correct icons
- Grafana, Morphos, Ollama, Penpot: wrong directory → app-icons/
- InDeeHub: external URL → local icon (CSP-safe)
- Add Tor app metadata entry with new icon
- Fix InDeeHub icon in Marketplace.vue

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Dorian 2026-03-06 18:05:25 +00:00
parent 589adb8b18
commit 5ae8708ff5
3 changed files with 25 additions and 10 deletions

View File

@ -301,7 +301,7 @@ fn get_app_metadata(app_id: &str) -> AppMetadata {
"grafana" => AppMetadata {
title: "Grafana".to_string(),
description: "Analytics and monitoring platform".to_string(),
icon: "/assets/img/grafana.png".to_string(),
icon: "/assets/img/app-icons/grafana.png".to_string(),
repo: "https://github.com/grafana/grafana".to_string(),
},
"endurain" => AppMetadata {
@ -319,7 +319,7 @@ fn get_app_metadata(app_id: &str) -> AppMetadata {
"morphos" | "morphos-server" => AppMetadata {
title: "Morphos".to_string(),
description: "Self-hosted file converter".to_string(),
icon: "/assets/img/morphos.png".to_string(),
icon: "/assets/img/app-icons/morphos.png".to_string(),
repo: "https://github.com/danvergara/morphos".to_string(),
},
"lnd" | "lightning-stack" => AppMetadata {
@ -343,7 +343,7 @@ fn get_app_metadata(app_id: &str) -> AppMetadata {
"ollama" => AppMetadata {
title: "Ollama".to_string(),
description: "Run large language models locally".to_string(),
icon: "/assets/img/ollama.webp".to_string(),
icon: "/assets/img/app-icons/ollama.png".to_string(),
repo: "https://github.com/ollama/ollama".to_string(),
},
"searxng" => AppMetadata {
@ -361,7 +361,7 @@ fn get_app_metadata(app_id: &str) -> AppMetadata {
"penpot" | "penpot-frontend" => AppMetadata {
title: "Penpot".to_string(),
description: "Open-source design and prototyping".to_string(),
icon: "/assets/img/penpot.webp".to_string(),
icon: "/assets/img/app-icons/penpot.webp".to_string(),
repo: "https://github.com/penpot/penpot".to_string(),
},
"nextcloud" => AppMetadata {
@ -373,25 +373,25 @@ fn get_app_metadata(app_id: &str) -> AppMetadata {
"vaultwarden" => AppMetadata {
title: "Vaultwarden".to_string(),
description: "Self-hosted password manager (Bitwarden compatible)".to_string(),
icon: "/assets/img/favico.png".to_string(), // Placeholder, no icon available
icon: "/assets/img/app-icons/vaultwarden.webp".to_string(),
repo: "https://github.com/dani-garcia/vaultwarden".to_string(),
},
"jellyfin" => AppMetadata {
title: "Jellyfin".to_string(),
description: "Free media server system".to_string(),
icon: "/assets/img/favico.png".to_string(), // Placeholder, no icon available
icon: "/assets/img/app-icons/jellyfin.webp".to_string(),
repo: "https://github.com/jellyfin/jellyfin".to_string(),
},
"photoprism" => AppMetadata {
title: "PhotoPrism".to_string(),
description: "AI-powered photo management".to_string(),
icon: "/assets/img/favico.png".to_string(), // Placeholder, no icon available
icon: "/assets/img/app-icons/photoprims.svg".to_string(),
repo: "https://github.com/photoprism/photoprism".to_string(),
},
"immich" | "immich_server" => AppMetadata {
title: "Immich".to_string(),
description: "High-performance self-hosted photo and video backup".to_string(),
icon: "/assets/img/favico.png".to_string(), // Placeholder, no icon available
icon: "/assets/img/app-icons/immich.png".to_string(),
repo: "https://github.com/immich-app/immich".to_string(),
},
"filebrowser" => AppMetadata {
@ -427,9 +427,15 @@ fn get_app_metadata(app_id: &str) -> AppMetadata {
"indeedhub" => AppMetadata {
title: "Indeehub".to_string(),
description: "Decentralized media streaming platform".to_string(),
icon: "https://indeehub.studio/favicon.ico".to_string(),
icon: "/assets/img/app-icons/indeedhub.png".to_string(),
repo: "https://github.com/indeedhub/indeedhub".to_string(),
},
"tor" | "archy-tor" => AppMetadata {
title: "Tor".to_string(),
description: "Anonymous overlay network for privacy".to_string(),
icon: "/assets/img/app-icons/tor.svg".to_string(),
repo: "https://gitlab.torproject.org/tpo/core/tor".to_string(),
},
_ => AppMetadata {
title: app_id.to_string(),
description: format!("{} application", app_id),

View File

@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200">
<rect width="200" height="200" rx="40" fill="#7D4698"/>
<g transform="translate(100,100)">
<circle r="60" fill="none" stroke="white" stroke-width="8"/>
<circle r="42" fill="none" stroke="white" stroke-width="6"/>
<circle r="24" fill="none" stroke="white" stroke-width="5"/>
<circle r="8" fill="white"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 400 B

View File

@ -774,7 +774,7 @@ function getCuratedAppList() {
title: 'Indeehub',
version: '0.1.0',
description: 'Bitcoin documentary streaming platform. Stream God Bless Bitcoin and other educational content about Bitcoin, sovereignty, and decentralized technology.',
icon: 'https://indeehub.studio/favicon.ico',
icon: '/assets/img/app-icons/indeedhub.png',
author: 'Indeehub Team',
dockerImage: 'localhost/indeedhub:latest',
manifestUrl: null,