I’m trying to recreate an install of pinchflat in a podman container that was working on a previous install, but now I want it to run as its own user. I created the quadlet and put it at /home/pinchflat/.config/containers/systemd/pinchflat.container but the user I’m creating this for is a system user without a shell. So I cannot just su into it or sudo -u the command systemctl --user daemon-reload. I’m not really understanding where I’m going wrong.

  • Static_Rocket@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    3 days ago

    Pinchflat is one of the good containers that doesn’t try to play with ID remapping or anything. You just need a container quadlet like the following:

    [Install]
    WantedBy=default.target
    
    [Container]
    Image=ghcr.io/kieraneglin/pinchflat:latest
    
    Environment=TZ=CHANGEME
    
    Volume=CHANGEME/config:/config
    Volume=CHANGEME/downloads:/downloads
    
    PublishPort=127.0.0.1:8945:8945
    

    It’ll run as the quadlet user id by default.

    • muusemuuse@lemm.eeOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      3 days ago

      So I found I had 2 problems. First, I have a Name= line instead of a ContainerName= line in there. Second, diagnosing all this is impossible when theres no shell for that account. Turn on a shell (/bin/bash) for the user, fix this thing, activate it, disable the shell (/bin/nologin), drink heavily.

      I ended up with: -----/fuckingarray/homes/pinchflat/.config/containers/systemd/pinchflat.container----------

      [Unit]
      Description=PinchFlat container
      After=local-fs.target
      
      [Container]
      Image=ghcr.io/kieraneglin/pinchflat:latest
      ContainerName=pinchflat
      UserNS=keep-id
      Volume=/fuckingarray/homes/pinchflat/pinchflatdata/config:/config
      Volume=/fuckingarray/homes/pinchflat/pinchflatdata/downloads:/downloads
      PublishPort=8945:8945
      Environment=TZ=America/New_York
      
      [Install]
      WantedBy=multi-user.target