How to change icon of custom app?

I don’t quite understand what the feedback is. The image link I shared is publicly accessible.

The link you shared, when I click on it, brings up a web page, not a PNG. Mine brings up only the png.

Paste your link into a browser, you get a web page including the image, but it’s a web page (try it). Mine used to work, but now does not so not a reliable image either.

Which is why I used my Caddy reverse proxy to serve the images. That way, I can download them and store them on truenas and use the NAS as the link and don’t have to worry about broken links.

Since the link below seems to include a version, no guarantee it will stay there indefinitely. The raw link which currently works is:

https://github.com/pathsny/scale_apps/blob/main/charts/cisqua/2.0.3/cisqua.png?raw=true

1 Like

Got it, thank you, you were right about the url not pointing directly to the icon.

I can confirm that this made the icon now shows up and I was able to use the same approach for a custom app that was deployed via the UI rather than a docker-compose.

1 Like

So here is another solution in order not to use the internet, and it is super fast to load. No need to use the filesystem too.

Get your icon ready.
Go to

I can’t post links, so search for Guru Base64 and go there.

In the Datatype, use Local File (and upload the file) or Remote URL (and paste the url of the icon). I use SVG, not sure about other icon types, should work though.

in the Output Format, select “Data URI – data:content/type;base64”

Click “Encode image to Base64”

Copy the textbox inside Base64

Go to
/mnt/.ix-apps/app_configs/{container_name}
nano metadata.yaml
inside the metadata: section add
icon: ‘{The base64 you copied}’

BE CAREFUL TO HAVE THE RIGHT NUMBER OF TABS, the Base64 MUST be surrounded by single quotes ‘{base64here}’.

Go to the container, edit it and save, in your browser, CTRL + SHIFT + R to force refresh.

[EDIT: It didn’t surve the update]

6 Likes

Does someone know how to add the Web UI button for custom apps?

Darn! I was going to do this. Thanks for posting it though, was a good attempt for sure.

custom yaml or custom wizard?
The wizard should have a section to add the webui portal.
I know of a way for custom yaml, but it only works if the solution is included when the app gets first created. If you add it afterwards it doesn’t work.

Edit:

x-portals:
  - host: 0.0.0.0
    name: "Web UI"
    path: /
    port: XXXX #add webui port here
    scheme: http

would be the solution for a custom yaml.
But as mentioned it has to be included when the app first gets created.

2 Likes

Apparently they changed how it works. I’m on TrueNAS Scale 25.04.1 and this is what I did to make it work :

sudo nano /mnt/.ix-apps/metadata.yaml

Find the app you want and change icon. In my case I couldn’t make it work with icons in my system so I get the icon from URL :

image

Before it was /mnt/.ix-apps/app_configs/YOUR_APP/metadata.yaml now it’s /mnt/.ix-apps/metadata.yaml.

You don’t even need to restart the app, just leave the app page and go back.

1 Like

I’m on ElectricEel-24.10.2.4. Editing the global file at /mnt/.ix-apps/metadata.yaml does change icons, but that file gets regenerated whenever an app is updated or you edit a custom app’s YAML – so the changes don’t stick.

To make icon changes persist through updates, edit each app’s own metadata instead:

/mnt/.ix-apps/app_configs/<APP_NAME>/metadata.yaml

I’ve also found that using SVGs from Self-Hosted Dashboard Icons works well (use the direct image URL).

1 Like