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

2 Likes

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]

7 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.

1 Like

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).

3 Likes

I just updated my qBitTorrent an hour ago (custom YAML) and it kept my icon.

I don’t know why on your /mnt/.ix-apps/app_configs/<APP_NAME>/metadata.yaml it works but not on mine.

In my conf, I remember adding a source for my qBitTorrent but now I don’t see it. Was it removed or did I just never put it, I don’t remember.

I think TrueNAS Scale might work differently on what was your 1st version. Mine was Dragonfish, so for example I still use admin and newer ISOs you use truenas_admin.

My icon recently disapeared so I’ve reread this post. And for I added the icon in the /mnt/.ix-apps/app_configs/<APP_NAME>/metadata.yaml and yeah it didn’t work for me.

Only /mnt/.ix-apps/metadata.yaml works for me.

image

Not only it works, but I can also add buttons and sources. You can also do that on the normal but I don’t know why on my TrueNAS it doesn’t work.

Do other people have the same problem as me?

I figured it out for myself, and it works. I’m sharing the information with everyone. If you don’t know the great Russian language, use a translator

https://dzen.ru/a/aPOTh4K_YGsnjP5_

is there a full proof way of this working yet?

editing the metadata.yaml should be suffient and did surive a reboot/update of TN Scale

Readeck: Install Custom App + Logo via YAML – MRi-LE Selfhosted

However it wont survive updating the App itself, so probably you want to update the metadata file in the app_config//version// as well

1 Like

My edits survived updates

Run these commands in the terminal. In the web UI, click the edit icon, save without making any changes, and you’re done!


icon_url=your_icon_url

app=your_app_name

app_pool=/mnt/.ix-apps

sed -i "/^[[:space:]]*\"metadata\":/a \  \"icon\": \"${icon_url}\"" ${app_pool}/app_configs/${app}/metadata.yaml