Before I dabbled a bit with Docker. I wanted to dabble a bit with Podman because it seemed quite interesting. I reinstalled Pi OS Lite on my Pi 3B+ and installed Podman. Then I figured out what to run and started digging through the documentation. Apparently Docker containers work quite similar and even Docker compose can be used. Then I came across the auto update function and stumbled upon quadlets to use auto update and got confused. Then I tried reading up on Podman rootless and rootful and networking stuff and really got lost.
I want to run the following services:
- Heimdall
- Adguard Home
- Jellyfin
- Vaultwarden
- Nextcloud
I am not sure a Pi is even powerful enough to run these things but I am even more unsure about how to set things up. Do I use quadlets? Do I run containers? How do I do the networking so I can reach the containers (maybe even outside my home)?
Can someone point me in the right direction? I can’t seem to find the needed information.
Use docker, once you’re comfortable with it then switch to Podman. Podman has a few more complications, so it’s easier to get the base thing running using the most common tool, and work from there.
Yeah this might be the smartest way. I thought I could do both at the same time but it’s probably more than I can chew.
I’m a pretty Podman novice guy too but I’m running quadlets since it automatically creates and runs these containers just like the other services would be with systemd. In terms of networking I can usually access to my container via publishing a port and using the PC’s IP where the container is running, and this is the default network that Podman uses initially.
I have a Jellyfin quadlet config, that may help you. I’ve had numerous sufferings to make a working one, but here you go (These 3 files are in ~/.config/containers/systemd/jellyfin):
Description=Jellyfin Media Server After=network.target [Container] Image=lscr.io/linuxserver/jellyfin:latest PublishPort=8096:8096 Volume=jellyfin-config.volume:/config:Z Volume=jellyfin-cache:/cache:Z Volume=/home/USERNAME/media/storage1/Filmek:/data/Filmek:Z,U Volume=/home/USERNAME/media/storage1/Sorozatok:/data/Sorozatok:Z,U [Service] Restart=on-failure [Install] WantedBy=default.target
[Unit] Description=Jellyfin Cache Volume [Volume]
[Unit] Description=Jellyfin Config Volume [Volume]
Please do ask questions if you have any. ^^
I use podman at work, mostly just a Docker replacement. My biggest problem with it is typing “pdoman” in commands by mistake.
Just
alias pdoman=podman
. I do that with all my common typos.or install
fuck
(github) ;)It’s crazy how much I actually use this tool. 99% of the time, it can figure out exactly what I was trying to accomplish.
For me the value of podman is how easily it works without root. Just install and run, no need for sudo or adding myself to docker group.
I use it for testing and dev work, not for running any services.
The pi 3B+ is not powerful enough for all that. I would get a used minipc as even a old one will run circles around the old Broadcom CPU.
Podman is similar to docker except for the fact that it is daemonless and rootless by default. To expose things on lower ports you will need to battle permissions. Also podman has pods like kubernetes.
Not related to containers but I’ve had quite a lot of success using NixOS as the host OS. Setting up services like jellyfin is as simple as adding
services.jellyfin.enable = true;
to the config file.My humble POV it’s to stick with whatever do the work.