

There’s technically a Steam config for Obtainium listed on Obtainium Apps.
However, didn’t work for me when I tried it just now. So I am still stuck with the one I installed on my profile which has play services enabled.


There’s technically a Steam config for Obtainium listed on Obtainium Apps.
However, didn’t work for me when I tried it just now. So I am still stuck with the one I installed on my profile which has play services enabled.
Well besides the excellent options already mentioned by others, there is also Finamp, a Jellyfin music player.
Others have also mentioned Symfonium which can play audio from a Jellyfin server as well, not only from a subsonic one like Navidrome.
Hmm theoretically, you could spin up a second Immich and mount the folders in there as external libraries with write permissions 🤔
This is just an idea which came to mind reading your post. But I would assume that messes with the metadata stored in your primary Immich instance or rather its DB. So probably not the best idea in hindsight. Also even easier approach to achieve this would be using a simple imager viewer tool directly on the filesystem 😅
Sorry didn’t find the time until now to reply. Also in the process of migrating everything to my Kubernetes cluster, so this is not as up to date in regards to image versions as it should be.
This is my current setup, with only qBittorrent and SABnzbd going through the Gluetun VPN container. Everything else just uses my regular home internet:
---
[Unit]
Description=Flaresolverr Container
[Container]
ContainerName=flaresolverr
HostName=flaresolverr
EnvironmentFile=global.env
Image=ghcr.io/flaresolverr/flaresolverr:v3.4.6
AutoUpdate=registry
PublishPort=8091:8191
Network=arr-stack.network
[Service]
Restart=always
[Install]
WantedBy=default.target
---
[Unit]
Description=qBittorrent Container
Wants=gluetun.service
After=gluetun.service
[Container]
ContainerName=qbittorrent
HostName=qbittorrent
EnvironmentFile=global.env
Environment=WEBUI_PORT=8080
Image=lscr.io/linuxserver/qbittorrent:5.1.4
AutoUpdate=registry
UserNS=keep-id:uid=1000,gid=1000
Network=container:gluetun
Volume=%h/container_volumes/qbittorrent/conf:/config:Z,U
Volume=%h/Downloads/completed:/downloads:z,U
Volume=%h/Downloads/incomplete:/incomplete:z,U
Volume=%h/Downloads/torrents:/torrents:z,U
Memory=1.5g
[Service]
Restart=always
[Install]
WantedBy=default.target
---
[Unit]
Description=Recyclarr TRaSH Guide Sync Container
Wants=radarr.service sonarr.service
After=radarr.service sonarr.service
[Container]
ContainerName=recyclarr
HostName=recyclarr
EnvironmentFile=global.env
Image=ghcr.io/recyclarr/recyclarr:8
AutoUpdate=registry
UserNS=keep-id:uid=1000,gid=1000
Network=arr-stack.network
Secret=sonarr_api_key,type=env,target=SONARR_API_KEY
Secret=radarr_api_key,type=env,target=RADARR_API_KEY
Volume=%h/container_volumes/recyclarr/conf:/config:Z,U
[Service]
Restart=always
[Install]
WantedBy=default.target
---
[Unit]
Description=SABnzbd Container
Wants=gluetun.service
After=gluetun.service
[Container]
ContainerName=sabnzbd
HostName=sabnzbd
Image=lscr.io/linuxserver/sabnzbd:4.5.5
AutoUpdate=registry
UserNS=keep-id:uid=1000,gid=1000
Network=container:gluetun
EnvironmentFile=global.env
Volume=%h/container_volumes/sabnzbd/conf:/config:Z,U
Volume=%h/Downloads/sabnzbd/completed:/downloads:z,U
Volume=%h/Downloads/sabnzbd/incomplete:/incomplete-downloads:z,U
Memory=1.5g
[Service]
Restart=always
[Install]
WantedBy=default.target
---
[Unit]
Description=Sonarr Container
After=gluetun.service prowlarr.service
Wants=gluetun.service prowlarr.service
[Container]
ContainerName=sonarr
HostName=sonarr
EnvironmentFile=global.env
Image=lscr.io/linuxserver/sonarr:4.0.17
AutoUpdate=registry
UserNS=keep-id:uid=1000,gid=1000
PublishPort=8089:8989
Network=arr-stack.network
HealthCmd=["curl","--fail","http://127.0.0.1:8989/sonarr/ping"]
HealthInterval=30s
HealthRetries=10
SecurityLabelDisable=true
Volume=%h/container_volumes/sonarr/conf:/config:Z,U
Volume=/mnt/eldanas/tv:/tv
Volume=%h/Downloads/completed/sonarr:/downloads:z,U
Volume=%h/Downloads/sabnzbd/completed/tv:/downloads-usenet:z,U
[Service]
Restart=always
[Install]
WantedBy=default.target
---
[Unit]
Description=Prowlarr Container
Wants=gluetun.service flaresolverr.service
After=gluetun.service flaresolverr.service
[Container]
ContainerName=prowlarr
HostName=prowlarr
EnvironmentFile=global.env
Image=lscr.io/linuxserver/prowlarr:2.3.5
AutoUpdate=registry
UserNS=keep-id:uid=1000,gid=1000
PublishPort=8096:9696
Network=arr-stack.network
HealthCmd=["curl","--fail","http://127.0.0.1:9696/prowlarr/ping"]
HealthInterval=30s
HealthRetries=10
Volume=%h/container_volumes/prowlarr/conf:/config:Z,U
[Service]
Restart=always
[Install]
WantedBy=default.target
---
[Unit]
Description=Radarr Container
After=gluetun.service prowlarr.service
Wants=gluetun.service prowlarr.service
[Container]
ContainerName=radarr
HostName=radarr
EnvironmentFile=global.env
Image=lscr.io/linuxserver/radarr:6.1.1
AutoUpdate=registry
UserNS=keep-id:uid=1000,gid=1000
PublishPort=8078:7878
Network=arr-stack.network
HealthCmd=["curl","--fail","http://127.0.0.1:7878/radarr/ping"]
HealthInterval=30s
HealthRetries=10
SecurityLabelDisable=true
Volume=%h/container_volumes/radarr/conf:/config:Z,U
Volume=/mnt/eldanas/movies:/movies
Volume=%h/Downloads/completed/radarr:/downloads:z,U
Volume=%h/Downloads/sabnzbd/completed/movies:/downloads-usenet:z,U
[Service]
Restart=always
[Install]
WantedBy=default.target
---
[Unit]
Description=Gluetun Container
[Container]
ContainerName=gluetun
HostName=gluetun
EnvironmentFile=global.env
EnvironmentFile=gluetun.env
Environment=FIREWALL_INPUT_PORTS=8080
Image=docker.io/qmcgaw/gluetun:v3.41.1
AutoUpdate=registry
PodmanArgs=--privileged
AddCapability=NET_ADMIN
AddDevice=/dev/net/tun:/dev/net/tun
PublishPort=8080:8080
# SABnzbd Port Mapping
PublishPort=8085:8085
# Gluetun Port Mapping
PublishPort=8123:8000
Network=arr-stack.network
Volume=%h/container_volumes/gluetun/conf:/gluetun:Z,U
Secret=proton_wireguard_private_key,type=env,target=WIREGUARD_PRIVATE_KEY
[Service]
Restart=always
[Install]
WantedBy=default.target
---
[Unit]
Description=Seerr Container
After=gluetun.service
Wants=gluetun.service
[Container]
ContainerName=seerr
HostName=seerr
EnvironmentFile=global.env
Image=ghcr.io/seerr-team/seerr:v3.2.0
UserNS=keep-id:uid=1000,gid=1000
AutoUpdate=registry
PublishPort=8055:5055
Network=arr-stack.network
Volume=%h/container_volumes/seerr/conf:/app/config:Z,U
[Service]
Restart=always
[Install]
WantedBy=default.target
The global.env file only contains env variables like TZ or the PUID and PGID which are used in almost all my containers.
You can configure CoreDNS for what you are trying to do, there is usually a ConfigMap containing the CoreDNS config in the kube-system namespace. We did that as a quick hack on one of our clusters at work, but I wouldn’t recommend it tbh. Instead I would do what others already suggested and deploy a Pi-Hole or AdGuard Home, or even a second CoreDNS for this purpose.
Nice, did the move from docker to podman a couple of months ago myself. Now running the arr stack, nextcloud, immich and some other services as quadlets. File permission due to podmans rootless nature usually was the culprit if something was not working properly.
I can share my quadlet systemd files I use for the arr stack. I deployed it as a pod:
[Unit]
Description=Arr-stack pod
[Pod]
PodName=arr-stack
# Jellyseerr Port Mapping
PublishPort=8055:5055
# Sonarr Port Mapping
PublishPort=8089:8989
# Radarr Port Mapping
PublishPort=8078:7878
# Prowlarr Port Mapping
PublishPort=8096:9696
# Flaresolverr Port Mapping
PublishPort=8091:8191
# qBittorrent Port Mapping
PublishPort=8080:8080
---
[Unit]
Description=Gluetun Container
[Container]
ContainerName=gluetun
EnvironmentFile=global.env
EnvironmentFile=gluetun.env
Environment=FIREWALL_INPUT_PORTS=8080
Image=docker.io/qmcgaw/gluetun:v3.40.0
Pod=arr-stack.pod
AutoUpdate=registry
PodmanArgs=--privileged
AddCapability=NET_ADMIN
AddDevice=/dev/net/tun:/dev/net/tun
Volume=%h/container_volumes/gluetun/conf:/gluetun:Z,U
Secret=openvpn_user,type=env,target=OPENVPN_USER
Secret=openvpn_password,type=env,target=OPENVPN_PASSWORD
[Service]
Restart=always
[Install]
WantedBy=default.target
---
[Unit]
Description=qBittorrent Container
Requires=gluetun.service
After=gluetun.service
[Container]
ContainerName=qbittorrent
EnvironmentFile=global.env
Environment=WEBUI_PORT=8080
Image=lscr.io/linuxserver/qbittorrent:5.1.2
AutoUpdate=registry
UserNS=keep-id:uid=1000,gid=1000
Pod=arr-stack.pod
Network=container:gluetun
Volume=%h/container_volumes/qbittorrent/conf:/config:Z,U
Volume=%h/Downloads/completed:/downloads:z,U
Volume=%h/Downloads/incomplete:/incomplete:z,U
Volume=%h/Downloads/torrents:/torrents:z,U
[Service]
Restart=always
[Install]
WantedBy=default.target
---
[Unit]
Description=Prowlarr Container
Requires=gluetun.service
After=gluetun.service
[Container]
ContainerName=prowlarr
EnvironmentFile=global.env
Image=lscr.io/linuxserver/prowlarr:2.0.5
AutoUpdate=registry
UserNS=keep-id:uid=1000,gid=1000
Pod=arr-stack.pod
Network=container:gluetun
HealthCmd=["curl","--fail","http://127.0.0.1:9696/prowlarr/ping"]
HealthInterval=30s
HealthRetries=10
Volume=%h/container_volumes/prowlarr/conf:/config:Z,U
[Service]
Restart=always
[Install]
WantedBy=default.target
---
[Unit]
Description=Flaresolverr Container
[Container]
ContainerName=flaresolverr
EnvironmentFile=global.env
Image=ghcr.io/flaresolverr/flaresolverr:v3.4.0
AutoUpdate=registry
Pod=arr-stack.pod
Network=container:gluetun
[Service]
Restart=always
[Install]
WantedBy=default.target
---
[Unit]
Description=Radarr Container
[Container]
ContainerName=radarr
EnvironmentFile=global.env
Image=lscr.io/linuxserver/radarr:5.27.5
AutoUpdate=registry
UserNS=keep-id:uid=1000,gid=1000
Pod=arr-stack.pod
Network=container:gluetun
HealthCmd=["curl","--fail","http://127.0.0.1:7878/radarr/ping"]
HealthInterval=30s
HealthRetries=10
# Disable SecurityLabels due to SMB share
SecurityLabelDisable=true
Volume=%h/container_volumes/radarr/conf:/config:Z,U
Volume=/mnt/movies:/movies
Volume=%h/Downloads/completed/radarr:/downloads:z,U
[Service]
Restart=always
[Install]
WantedBy=default.target
---
[Unit]
Description=Sonarr Container
[Container]
ContainerName=sonarr
EnvironmentFile=global.env
Image=lscr.io/linuxserver/sonarr:4.0.15
AutoUpdate=registry
UserNS=keep-id:uid=1000,gid=1000
Pod=arr-stack.pod
Network=container:gluetun
HealthCmd=["curl","--fail","http://127.0.0.1:8989/sonarr/ping"]
HealthInterval=30s
HealthRetries=10
# Disable SecurityLabels due to SMB share
SecurityLabelDisable=true
Volume=%h/container_volumes/sonarr/conf:/config:Z,U
Volume=/mnt/tv:/tv
Volume=%h/Downloads/completed/sonarr:/downloads:z,U
[Service]
Restart=always
[Install]
WantedBy=default.target
---
[Unit]
Description=Jellyseerr Container
[Container]
ContainerName=jellyseerr
EnvironmentFile=global.env
Image=docker.io/fallenbagel/jellyseerr:2.7.3
AutoUpdate=registry
Pod=arr-stack.pod
Network=container:gluetun
Volume=%h/container_volumes/jellyseerr/conf:/app/config:Z,U
[Service]
Restart=always
[Install]
WantedBy=default.target
I run my podman containers in a VM running Alma Linux. Works pretty great so far.
Had the same issue when debugging systemctl errors, journalctl not being very helpful. At one point I just ran podman logs -f <container> in another terminal in a while loop just to catch the logs of the application. Not the most sophisticated approach, but it works 😄
Well I assume this is thought to be used in conjunction with a Git repository (as its all just markdown files). So this would handle revision history for you.