I migrated from a Raspberry Pi with Ubuntu and Docker containers to a x64 server with NixOS (24.11) and rootless Podman implemented through quadlet-nix earlier this year. I primarily use my server for media consumption through Jellyfin, Audiobookshelf, and some Servarr apps for content management.
The migrations to 25.05 and 25.11 went without issues.
A couple of days ago I updated my system, and after the switch, the services managed with Podman started failing. They all show the following message in the logs:
jellyfin.service: Service has no ExecStart=, ExecStop=, or SuccessAction=. Refusing
Some were still working, so I reverted to the previous commit, but that didn’t solve the problem. Finally, I tried doing a complete server reboot, but that resulted in all the containers stopping working.
This is an example of my container.nix file:
{ config, pkgs, inputs, ... }:
{
# Enable podman qualet containers
virtualisation.quadlet.enable = true;
# Podman user for rootless containers
users.users.poppy = {
...
linger = true;
...
extraGroups = [ "video" "render" "podman" ];
autoSubUidGidRange = true;
};
# Rootless podman containers
home-manager.users.poppy = { pkgs, config, ... }: {
imports = [
inputs.quadlet-nix.homeManagerModules.quadlet
inputs.sops-nix.homeManagerModules.sops
];
home ={
stateVersion = "24.11";
homeDirectory = "/home/poppy";
};
systemd.user.startServices = "sd-switch";
virtualisation.quadlet = {
# Enable podman auto-update
autoUpdate = {
enable = true;
# Run auto-update every monday at 02:15
calendar = "Mon *-*-* 02:15:00";
};
autoEscape = true;
# Define containers
containers = {
# Jellyfin media server
jellyfin = {
autoStart = true;
serviceConfig = {
Restart = "unless-stopped";
RestartSec = "10";
};
containerConfig = {
image = "ghcr.io/jellyfin/jellyfin:latest";
userns ="keep-id";
publishPorts = [
"8096:8096" # Web UI HTTP
"8920:8920" # Web UI HTTPS
"1900:1900/udp" # DLNA discovery
];
volumes = [
"/home/poppy/container/jellyfin/config:/config"
"/home/poppy/container/jellyfin/cache:/cache"
"/data/media:/media"
];
devices = [
"/dev/dri/renderD128:/dev/dri/renderD128:rwm" # Add access to the graphics card
];
addCapabilities = [ "CAP_SYS_RAWIO" ];
autoUpdate = "registry";
};
};
# Audiobookshelf container
audiobookshelf = {
autoStart = true;
serviceConfig = {
Restart = "unless-stopped";
RestartSec = "10";
};
containerConfig = {
image = "ghcr.io/advplyr/audiobookshelf:latest";
publishPorts = [ "9090:80" ];
volumes = [
"/data/media/audiobooks:/audiobooks"
"/data/media/podcasts:/podcasts"
"/home/poppy/container/audiobookshelf/config:/config"
"/home/poppy/container/audiobookshelf/metadata:/metadata"
];
autoUpdate = "registry";
};
};
I can’t find what I’m doing wrong