From 165dff7faa812bb1b3436b5cde1eb3264c6e8862 Mon Sep 17 00:00:00 2001 From: servius Date: Tue, 13 Jan 2026 00:55:46 +0530 Subject: [PATCH] feat(tsuba): Add image pruning systemd timer --- nixos/tsuba/configuration.nix | 2 -- nixos/tsuba/services/default.nix | 1 + nixos/tsuba/services/docker.nix | 21 +++++++++++++++++++++ nixos/tsuba/services/jellyfin.nix | 2 +- 4 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 nixos/tsuba/services/docker.nix diff --git a/nixos/tsuba/configuration.nix b/nixos/tsuba/configuration.nix index 985a4d42..dab2bdd1 100644 --- a/nixos/tsuba/configuration.nix +++ b/nixos/tsuba/configuration.nix @@ -5,8 +5,6 @@ device, ... }: { - virtualisation.docker.enable = true; - virtualisation.oci-containers.backend = "docker"; users.extraUsers.servius.extraGroups = ["docker"]; networking.firewall.enable = false; services.openssh.enable = true; diff --git a/nixos/tsuba/services/default.nix b/nixos/tsuba/services/default.nix index fafe5021..a7304ade 100644 --- a/nixos/tsuba/services/default.nix +++ b/nixos/tsuba/services/default.nix @@ -12,5 +12,6 @@ ./monitoring.nix ./pihole.nix ./resolved.nix + ./docker.nix ]; } diff --git a/nixos/tsuba/services/docker.nix b/nixos/tsuba/services/docker.nix new file mode 100644 index 00000000..e375782c --- /dev/null +++ b/nixos/tsuba/services/docker.nix @@ -0,0 +1,21 @@ +{pkgs, ...}: { + virtualisation.docker.enable = true; + virtualisation.oci-containers.backend = "docker"; + systemd.services.docker-prune-image = { + description = "Docker prune unused images"; + serviceConfig = { + Type = "oneshot"; + ExecStart = "${pkgs.docker}/bin/docker image prune -f"; + }; + }; + systemd.timers.docker-prune-image = { + description = "Timer for docker image prune"; + wantedBy = ["timers.target"]; + timerConfig = { + OnCalendar = "Mon *-*-* 02:00:00"; + OnUnitInactiveSec = "6d"; + Persistent = true; + RandomizedDelaySec = "1h"; + }; + }; +} diff --git a/nixos/tsuba/services/jellyfin.nix b/nixos/tsuba/services/jellyfin.nix index 384ec7f4..fa90adf0 100644 --- a/nixos/tsuba/services/jellyfin.nix +++ b/nixos/tsuba/services/jellyfin.nix @@ -50,7 +50,7 @@ description = "Pull latest Jellyfin Docker image"; serviceConfig = { Type = "oneshot"; - ExecStart = "${pkgs.docker}/bin/docker pull ghcr.io/jellyfin/jellyfin:latest"; + ExecStart = "${pkgs.docker}/bin/docker pull jellyfin/jellyfin:latest"; ExecStartPost = "${pkgs.systemd}/bin/systemctl restart docker-jellyfin.service"; }; };