You can specify any HTML for an icon. It’s a popular choice to use Unicode icons because they are extremely fast to load and there are a lot of them.

Version 2024.03.06 also introduced support for Iconify, built in to OliveTin.

Figure 2. Examples of icons in OliveTin

Iconify Icons

Browse over 200,000 icons that can be used with OliveTin here; https://icon-sets.iconify.design/

Note, the icons are loaded from the internet, but should be cached by your browser afer the first load.

On the Iconfiy website, you should select Iconify Icon


Then copy this icon code, and place it in your config;

  - title: Iconify Icon
    icon: <iconify-icon icon="ant-design:bug-filled"></iconify-icon>

And you should get something that looks like this;

action button iconify

Unicode icons ("emoji")

For example on the here is a list of "Emoji" in unicode. If you find "Smiling face with sunglasses" you can click on it to see it’s "HTML-code". In OliveTin, you’d setup the icon like this;

  - title: Unicode (emoji) icon
    icon: "&#128526;"
    shell: echo "You are awesome"

Full HTML icons (<img src …​)

You can also specify the full HTML for an image, like;

    - title: HTML (jpg/png/etc) icon
      icon: '<img src = "https://www.docker.com/sites/default/files/d8/2019-07/vertical-logo-monochromatic.png" width = "48px"/>'
      shell: docker ps
This full HTML thing is very customizable, but easier options will probably be added in the future as well.

Saving and serving icons for "offline" use

Sometimes you might want to store images to use as icons, with your installation of OliveTin. This can be useful when your installation is meant to be offline, or disconnected from the internet. This is easily done.

You should put icons in a new customIcons directory, inside the standard webui directory. The webui directory could be in a few different locations:

  • If you installed OliveTin with a package, this directory is normally /var/www/olivetin on Linux. Create the directory /var/www/olivetin/customIcons/.

  • If you installed OliveTin with a Linux Container, it’s probably best to bind mount a new volume into the container.

    `docker create jamesread/OliveTin --name OliveTin -v /opt/OliveTinIcons:/var/www/olivetin/customIcons ...`

Once you’ve created this customIcons directory. Place your icon, for example mrgreen.gif into this custom icon directory. Below is a picture of Mr Green. Feel free to save his likeness and awesomeness for yourself, for future awesome offline usage.

Mr Green
Figure 3. Mr Green, the original awesome smily.

In your OliveTin config, customize your command again using HTML, like this;

    - title: Mr Green
      icon: '<img src = "customIcons/mrgreen.gif" />'
      shell: echo "I don't like the word 'emoji' "

This will result in a locally hosted icon that will work offline, that looks like this;