update containers

jellyfin, ollama, and scrypted
This commit is contained in:
Joseph Hanson 2025-01-23 10:46:55 -06:00
parent eed4e314a3
commit 13fd35a05f
3 changed files with 35 additions and 37 deletions

View file

@ -4,24 +4,24 @@
pkgs, pkgs,
... ...
}: }:
with lib; with lib; let
let
app = "jellyfin"; app = "jellyfin";
cfg = config.mySystem.containers.${app}; cfg = config.mySystem.containers.${app};
group = "kah"; group = "kah";
image = "ghcr.io/jellyfin/jellyfin:${version}"; image = "ghcr.io/jellyfin/jellyfin:${version}";
user = "kah"; user = "kah";
# renovate: depName=ghcr.io/jellyfin/jellyfin datasource=docker # renovate: depName=ghcr.io/jellyfin/jellyfin datasource=docker
version = "10.10.3"; version = "10.10.4";
volumeLocation = "/nahar/containers/volumes/jellyfin"; volumeLocation = "/nahar/containers/volumes/jellyfin";
in in {
{
# Options # Options
options.mySystem.containers.${app} = { options.mySystem.containers.${app} = {
enable = mkEnableOption "${app}"; enable = mkEnableOption "${app}";
openFirewall = mkEnableOption "Open firewall for ${app}" // { openFirewall =
default = true; mkEnableOption "Open firewall for ${app}"
}; // {
default = true;
};
}; };
# Implementation # Implementation
@ -29,8 +29,8 @@ in
# Systemd service for container # Systemd service for container
systemd.services.${app} = { systemd.services.${app} = {
description = "Jellyfin Media Server"; description = "Jellyfin Media Server";
wantedBy = [ "multi-user.target" ]; wantedBy = ["multi-user.target"];
after = [ "network.target" ]; after = ["network.target"];
serviceConfig = { serviceConfig = {
ExecStartPre = "${pkgs.writeShellScript "jellyfin-start-pre" '' ExecStartPre = "${pkgs.writeShellScript "jellyfin-start-pre" ''
@ -46,8 +46,8 @@ in
--rm \ --rm \
--name=${app} \ --name=${app} \
--user="${toString config.users.users."${user}".uid}:${ --user="${toString config.users.users."${user}".uid}:${
toString config.users.groups."${group}".gid toString config.users.groups."${group}".gid
}" \ }" \
--device='nvidia.com/gpu=all' \ --device='nvidia.com/gpu=all' \
--log-driver=journald \ --log-driver=journald \
--cidfile=/run/${app}.ctr-id \ --cidfile=/run/${app}.ctr-id \
@ -113,10 +113,10 @@ in
services.restic.backups = config.lib.mySystem.mkRestic { services.restic.backups = config.lib.mySystem.mkRestic {
inherit app user; inherit app user;
environmentFile = config.sops.secrets."restic/jellyfin/env".path; environmentFile = config.sops.secrets."restic/jellyfin/env".path;
excludePaths = [ ]; excludePaths = [];
localResticTemplate = "/eru/restic/jellyfin"; localResticTemplate = "/eru/restic/jellyfin";
passwordFile = config.sops.secrets."restic/jellyfin/password".path; passwordFile = config.sops.secrets."restic/jellyfin/password".path;
paths = [ volumeLocation ]; paths = [volumeLocation];
remoteResticTemplateFile = config.sops.secrets."restic/jellyfin/template".path; remoteResticTemplateFile = config.sops.secrets."restic/jellyfin/template".path;
}; };
# TODO add nginx proxy # TODO add nginx proxy

View file

@ -4,15 +4,13 @@
pkgs, pkgs,
... ...
}: }:
with lib; with lib; let
let
app = "ollama"; app = "ollama";
# renovate: depName=docker.io/ollama/ollama datasource=docker # renovate: depName=docker.io/ollama/ollama datasource=docker
version = "0.5.5"; version = "0.5.7";
image = "docker.io/ollama/ollama:${version}"; image = "docker.io/ollama/ollama:${version}";
cfg = config.mySystem.containers.${app}; cfg = config.mySystem.containers.${app};
in in {
{
# Options # Options
options.mySystem.containers.${app} = { options.mySystem.containers.${app} = {
enable = mkEnableOption "${app}"; enable = mkEnableOption "${app}";
@ -20,9 +18,11 @@ in
# addToHomepage = mkEnableOption "Add ${app} to homepage" // { # addToHomepage = mkEnableOption "Add ${app} to homepage" // {
# default = true; # default = true;
# }; # };
openFirewall = mkEnableOption "Open firewall for ${app}" // { openFirewall =
default = true; mkEnableOption "Open firewall for ${app}"
}; // {
default = true;
};
}; };
# Implementation # Implementation
@ -30,8 +30,8 @@ in
# Systemd service for container # Systemd service for container
systemd.services.${app} = { systemd.services.${app} = {
description = "Ollama"; description = "Ollama";
wantedBy = [ "multi-user.target" ]; wantedBy = ["multi-user.target"];
after = [ "network.target" ]; after = ["network.target"];
serviceConfig = { serviceConfig = {
ExecStartPre = "${pkgs.writeShellScript "ollama-start-pre" '' ExecStartPre = "${pkgs.writeShellScript "ollama-start-pre" ''
@ -76,7 +76,7 @@ in
allowedTCPPorts = [ allowedTCPPorts = [
11434 # HTTP web interface 11434 # HTTP web interface
]; ];
allowedUDPPorts = [ ]; allowedUDPPorts = [];
}; };
# TODO add nginx proxy # TODO add nginx proxy
@ -131,6 +131,5 @@ in
# paths = [ appFolder ]; # paths = [ appFolder ];
# inherit appFolder; # inherit appFolder;
# }; # };
}; };
} }

View file

@ -4,15 +4,13 @@
pkgs, pkgs,
... ...
}: }:
with lib; with lib; let
let
app = "scrypted"; app = "scrypted";
# renovate: depName=ghcr.io/koush/scrypted datasource=docker versioning=docker # renovate: depName=ghcr.io/koush/scrypted datasource=docker versioning=docker
version = "v0.123.58-jammy-nvidia"; version = "v0.127.1-noble-nvidia";
image = "ghcr.io/koush/scrypted:${version}"; image = "ghcr.io/koush/scrypted:${version}";
cfg = config.mySystem.containers.${app}; cfg = config.mySystem.containers.${app};
in in {
{
# Options # Options
options.mySystem.containers.${app} = { options.mySystem.containers.${app} = {
enable = mkEnableOption "${app}"; enable = mkEnableOption "${app}";
@ -20,9 +18,11 @@ in
# addToHomepage = mkEnableOption "Add ${app} to homepage" // { # addToHomepage = mkEnableOption "Add ${app} to homepage" // {
# default = true; # default = true;
# }; # };
openFirewall = mkEnableOption "Open firewall for ${app}" // { openFirewall =
default = true; mkEnableOption "Open firewall for ${app}"
}; // {
default = true;
};
}; };
# Implementation # Implementation
@ -30,8 +30,8 @@ in
# Systemd service for container # Systemd service for container
systemd.services.${app} = { systemd.services.${app} = {
description = "Scrypted Home Security"; description = "Scrypted Home Security";
wantedBy = [ "multi-user.target" ]; wantedBy = ["multi-user.target"];
after = [ "network.target" ]; after = ["network.target"];
serviceConfig = { serviceConfig = {
ExecStartPre = "${pkgs.writeShellScript "scrypted-start-pre" '' ExecStartPre = "${pkgs.writeShellScript "scrypted-start-pre" ''
@ -134,6 +134,5 @@ in
# paths = [ appFolder ]; # paths = [ appFolder ];
# inherit appFolder; # inherit appFolder;
# }; # };
}; };
} }