First, we create a volume for data persistency
Then let's look for an supported heimdall image on dockerhub. You could build one yourself as well or use the one built by the linuxserver community as an alternative (https://hub.docker.com/r/linuxserver/heimdall). Whichever option you choose, the image must support arm architcture for it to work on your Pi.
Next, let's have a look at the docker compose file and let's configure it in our Portainer Container settings.
--- version: "2.1" services: heimdall: image: lscr.io/linuxserver/heimdall:latest container_name: heimdall environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config ports: - 80:80 - 443:443 restart: unless-stopped
We create a container for Heimdall using the image we have chosen. As you could see, I have decided to map other ports to 80 and 443, which are needed by Heimdall. So my Heimdall will be reached via broser using 8080 and 8443 instead of 80 and 443. It's up to you which ports you have available on your environment and want to use for the mapping, just keep it as less messy as possible.
Set Interactive and TTY as well so that you can be cool and can access this Heimdall container using ssh.
Now I come back to the volume we have created above in the fist step and map it to the config folder needed to store Heimdall config in the container. With this, even the on the next start Heimdall will still remember what needs to be displayed on the dashboard and will not forget your stuff.
Remember the 3 environment variables above, which are needed? Let's create them and set them accordingly.
I preferred the always restart option over the unless stopped, so this has been set as well.
That's it, now Deploy the container and you're good to go.
Afterwards, your Heimdall will be reachable via browser using:
https://<ip-or-hostname>:9443
https://raspberrypi:9443