Do you guys have any success with setting up an arr stack with rootless Podman Quadlets? I really like the idea of Quadlets, but I can’t make it work.

Any guide and/or experience sharing would be greatly appreciated.

I have set up a Rocky Linux 10 with Podman 5.4.2 but after downloading the containers the quadlets were crashing.

Shall I continue digging this rabbit hole or shall I switch back to Docker Compose?

  • thenorthernmist@lemmy.world
    link
    fedilink
    English
    arrow-up
    8
    ·
    1 day ago

    Heya, I managed to set up the *arr stack as separate quadlets. The main problem I had was to get the correct permissions for the files inside the containers, and that seemed to be because of the way linuxserver.io is handling the filesystem (don’t quote me on this). Anyways this is how I set up the container segment in the .container file (located in /home/USER/.container/systemd/):

    [Container]
    Image=lscr.io/linuxserver/radarr:latest
    Timezone=Europe/Stockholm
    Environment=PUID=1002
    Environment=PGID=1002
    UIDMap=1002:0:1
    UIDMap=0:1:1002
    GIDMap=1002:0:1
    GIDMap=0:1:1002
    AutoUpdate=registry
    Volume=/mnt/docker/radarr:/config:Z
    Volume=/mnt/media/movies:/data/movies:z
    #PublishPort=7878:7878
    Network=proxy.network
    

    The thing that made it work for me was the UID-/GIDMaps, which basically translates the UID/GID from the host into the container. All you need to do is change the 1002 ID, which represents the UID and GID of the user that owns the files and directories.

    I also have a proxy.network file placed in the same directory with the content:

    [Unit]
    Description=Proxy network for containers
    [Network]
    

    So I can use that for container-container communication (and a caddy container for external access).

    Also notice the AutoUpdate=registry, which auto-updates the container (if you want that). However you first need to enable the “update-timer”: systemctl --user enable podman-auto-update.timer

    Also also, remember to create a file with the user running podman in /var/lib/systemd/linger, so that your containers don’t exit when you logout: touch /var/lib/systemd/linger/USERNAME

    And full disclosure, I ended up switching back to docker and docker-compose for my arr stack, however I still strongly prefer podman and run podman container on my externally accessible servers (VPS).

    Hope it helps.

    • filister@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      17 hours ago

      You can actually set your user to linger with

      sudo loginctl enable-linger $USER
      

      I will test your setup and report back if it works.

      By the way what was the reason to switch back to Docker Compose?

      • thenorthernmist@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        16 hours ago

        Cool, didn’t know that :)

        The reason for it was that I found myself fixing weird issues, like the one with the UID map and also an issue where containers couldn’t talk to each other outside of the container network (a container couldn’t talk to another container that used host networking).

        I was happy to figure out how to do quadlets, and still prefer dem from a security point of view, but found myself spending more time than I wanted fixing things when I already had a fully working arr stack compose file (which has something like 18 containers in it, that I would need to port).

        Now granted I could probably just have run podman-compose, and knowing myself I’ll probably try that later as well :)

        Let me know how it goes!