Compare commits

..

No commits in common. "a98e863719e490d9491e3f20ec0b46832f816ff5" and "38c63e6ad123a8664be47f8861287475b1a9361e" have entirely different histories.

14 changed files with 41 additions and 136 deletions

View file

@ -8,10 +8,6 @@ in
inputs.agenix-rekey.nixosModules.default inputs.agenix-rekey.nixosModules.default
]; ];
nixpkgs.overlays = [
inputs.agenix-rekey.overlays.default
];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
agenix-rekey agenix-rekey
]; ];

View file

@ -1,4 +1,4 @@
{ outputs, ... }: { inputs, outputs, ... }:
{ {
imports = [ imports = [
@ -10,6 +10,8 @@
nixpkgs = { nixpkgs = {
overlays = [ overlays = [
# Overlays exported from other flakes
inputs.agenix-rekey.overlays.default
# Overlays our own flake exports # Overlays our own flake exports
outputs.overlays.additions outputs.overlays.additions
outputs.overlays.modifications outputs.overlays.modifications

View file

@ -1,15 +1,13 @@
{ ... }: { ... }:
let
port = "3000";
in
{ {
virtualisation.oci-containers.containers = { virtualisation.oci-containers.containers = {
adguardhome = { adguardhome = {
autoStart = true; autoStart = true;
image = "adguard/adguardhome:v0.107.51"; image = "adguard/adguardhome";
ports = [ ports = [
"53:53" # Plain DNS "53:53" # Plain DNS
"${port}:3000" # WEBGUI "3000:3000" # WEBGUI
]; ];
volumes = [ volumes = [
"/srv/containers/adguardhome/work:/opt/adguardhome/work" "/srv/containers/adguardhome/work:/opt/adguardhome/work"
@ -35,7 +33,7 @@ in
services.traefik.dynamicConfigOptions.http.services = { services.traefik.dynamicConfigOptions.http.services = {
adguard-home.loadBalancer.servers = [ adguard-home.loadBalancer.servers = [
{ url = "http://127.0.0.1:${port}"; } { url = "http://127.0.0.1:3000"; }
]; ];
}; };
} }

View file

@ -11,7 +11,6 @@
./radarr.nix ./radarr.nix
./recyclarr.nix ./recyclarr.nix
./sonarr.nix ./sonarr.nix
./mealie.nix
./microbin ./microbin
]; ];
virtualisation.oci-containers.backend = "docker"; virtualisation.oci-containers.backend = "docker";

View file

@ -1,15 +1,13 @@
{ ... }: { ... }:
let
port = "8096";
in
{ {
virtualisation.oci-containers.containers = { virtualisation.oci-containers.containers = {
# Volunteer-built media solution that puts you in control of your media # Volunteer-built media solution that puts you in control of your media
jellyfin = { jellyfin = {
autoStart = true; autoStart = true;
image = "jellyfin/jellyfin:10.9.6"; image = "jellyfin/jellyfin:10.8.12";
ports = [ ports = [
"${port}:8096/tcp" # HTTP traffic "8096:8096/tcp" # HTTP traffic
"8920:8920/tcp" # HTTPS traffic "8920:8920/tcp" # HTTPS traffic
# "1900:1900/udp" # Service auto-discovery # "1900:1900/udp" # Service auto-discovery
"7359:7359/udp" # Client auto-discovery "7359:7359/udp" # Client auto-discovery
@ -26,7 +24,6 @@ in
"--device=/dev/dri/renderD128:/dev/dri/renderD128" "--device=/dev/dri/renderD128:/dev/dri/renderD128"
"--network=media-stack" "--network=media-stack"
]; ];
user = "1000:100";
}; };
}; };
@ -45,7 +42,7 @@ in
services.traefik.dynamicConfigOptions.http.services = { services.traefik.dynamicConfigOptions.http.services = {
jellyfin.loadBalancer.servers = [ jellyfin.loadBalancer.servers = [
{ url = "http://127.0.0.1:${port}"; } { url = "http://127.0.0.1:8096"; }
]; ];
}; };
} }

View file

@ -1,23 +1,17 @@
{ ... }: { ... }:
let
port = "5055";
in
{ {
virtualisation.oci-containers.containers = { virtualisation.oci-containers.containers = {
# Request management # Request management
jellyseerr = { jellyseerr = {
autoStart = true; autoStart = true;
image = "ghcr.io/hotio/jellyseerr:release-1.9.2"; image = "ghcr.io/hotio/jellyseerr";
ports = [ ports = [
"${port}:5055/tcp" # WebUI "5055:5055/tcp" # WebUI
]; ];
volumes = [ volumes = [
"/srv/containers/jellyseerr:/config" "/srv/containers/jellyseerr:/config"
]; ];
environment = {
PUID = "1000";
PGID = "100";
};
extraOptions = [ extraOptions = [
"--network=media-stack" "--network=media-stack"
]; ];
@ -39,7 +33,7 @@ in
services.traefik.dynamicConfigOptions.http.services = { services.traefik.dynamicConfigOptions.http.services = {
jellyseerr.loadBalancer.servers = [ jellyseerr.loadBalancer.servers = [
{ url = "http://127.0.0.1:${port}"; } { url = "http://127.0.0.1:5055"; }
]; ];
}; };
} }

View file

@ -1,15 +1,13 @@
{ ... }: { ... }:
let
port = "8686";
in
{ {
virtualisation.oci-containers.containers = { virtualisation.oci-containers.containers = {
# # Music collection manager for Usenet and BitTorrent users # # Music collection manager for Usenet and BitTorrent users
lidarr = { lidarr = {
autoStart = true; autoStart = true;
image = "ghcr.io/hotio/lidarr:release-2.3.3.4204"; image = "ghcr.io/hotio/lidarr:nightly-2.0.2.3782";
ports = [ ports = [
"${port}:8686/tcp" # WebUI "8686:8686/tcp" # WebUI
]; ];
volumes = [ volumes = [
# Media library # Media library
@ -17,10 +15,6 @@ in
# Container data # Container data
"/srv/containers/lidarr:/config:rw" "/srv/containers/lidarr:/config:rw"
]; ];
environment = {
PUID = "1000";
PGID = "100";
};
extraOptions = [ extraOptions = [
"--network=media-stack" "--network=media-stack"
]; ];
@ -42,7 +36,7 @@ in
services.traefik.dynamicConfigOptions.http.services = { services.traefik.dynamicConfigOptions.http.services = {
lidarr.loadBalancer.servers = [ lidarr.loadBalancer.servers = [
{ url = "http://127.0.0.1:${port}"; } { url = "http://127.0.0.1:8686"; }
]; ];
}; };
} }

View file

@ -1,48 +0,0 @@
{ ... }:
let
port = "9925";
in
{
virtualisation.oci-containers.containers = {
mealie = {
autoStart = true;
image = "ghcr.io/mealie-recipes/mealie:v1.8.0";
ports = [
"${port}:9000"
];
volumes = [
"/srv/containers/mealie:/app/data/"
];
environment = {
ALLOW_SIGNUP = "false";
PUID = "1000";
PGID = "100";
TZ = "Australia/Perth";
MAX_WORKERS = "1";
WEB_CONCURRENCY = "1";
BASE_URL = "https://mealie.kanto.dev";
};
};
};
services.traefik.dynamicConfigOptions.http.routers = {
mealie = {
rule = "Host(`mealie.kanto.dev`)";
entryPoints = [
"websecure"
];
middlewares = [
"internal"
];
service = "mealie";
};
};
services.traefik.dynamicConfigOptions.http.services = {
mealie.loadBalancer.servers = [
{ url = "http://127.0.0.1:${port}"; }
];
};
}

View file

@ -1,13 +1,11 @@
{ config, ... }: { config, ... }:
let
port = "8181";
in
{ {
age.secrets.microbin = { age.secrets.microbin = {
# Environment variables for microbin # Environment variables for microbin
rekeyFile = ./environment.age; rekeyFile = ./environment.age;
owner = "sajenim"; owner = "root";
group = "users"; group = "root";
}; };
virtualisation.oci-containers.containers = { virtualisation.oci-containers.containers = {
@ -16,7 +14,7 @@ in
autoStart = true; autoStart = true;
image = "danielszabo99/microbin:2.0"; image = "danielszabo99/microbin:2.0";
ports = [ ports = [
"${port}:8080/tcp" # WebUI "8181:8080/tcp" # WebUI
]; ];
volumes = [ volumes = [
# Container data # Container data
@ -43,7 +41,7 @@ in
services.traefik.dynamicConfigOptions.http.services = { services.traefik.dynamicConfigOptions.http.services = {
microbin.loadBalancer.servers = [ microbin.loadBalancer.servers = [
{ url = "http://127.0.0.1:${port}"; } { url = "http://127.0.0.1:8181"; }
]; ];
}; };
} }

View file

@ -1,24 +1,18 @@
{ ... }: { ... }:
let
port = "9696";
in
{ {
virtualisation.oci-containers.containers = { virtualisation.oci-containers.containers = {
# Indexer manager/proxy built on the popular arr .net/reactjs base stack to integrate with your various PVR apps. # Indexer manager/proxy built on the popular arr .net/reactjs base stack to integrate with your various PVR apps.
prowlarr = { prowlarr = {
autoStart = true; autoStart = true;
image = "ghcr.io/hotio/prowlarr:release-1.18.0.4543"; image = "ghcr.io/hotio/prowlarr:nightly-1.10.3.4070";
ports = [ ports = [
"${port}:9696/tcp" # WebUI "9696:9696/tcp" # WebUI
]; ];
volumes = [ volumes = [
# Container data # Container data
"/srv/containers/prowlarr:/config:rw" "/srv/containers/prowlarr:/config:rw"
]; ];
environment = {
PUID = "1000";
PGID = "100";
};
extraOptions = [ extraOptions = [
"--network=media-stack" "--network=media-stack"
]; ];
@ -39,7 +33,7 @@ in
services.traefik.dynamicConfigOptions.http.services = { services.traefik.dynamicConfigOptions.http.services = {
prowlarr.loadBalancer.servers = [ prowlarr.loadBalancer.servers = [
{ url = "http://127.0.0.1:${port}"; } { url = "http://127.0.0.1:9696"; }
]; ];
}; };
} }

View file

@ -1,15 +1,13 @@
{ ... }: { ... }:
let
port = "8487";
in
{ {
virtualisation.oci-containers.containers = { virtualisation.oci-containers.containers = {
# # Open-source software alternative to µTorrent # # Open-source software alternative to µTorrent
qbittorrent = { qbittorrent = {
autoStart = true; autoStart = true;
image = "ghcr.io/hotio/qbittorrent:release-4.6.5"; image = "ghcr.io/hotio/qbittorrent:release-4.6.0";
ports = [ ports = [
"${port}:8080/tcp" # WebUI "8080:8080/tcp" # WebUI
"32372:32372/tcp" # Transport protocol "32372:32372/tcp" # Transport protocol
]; ];
volumes = [ volumes = [
@ -17,10 +15,6 @@ in
"/srv/multimedia/torrents:/data/torrents:rw" "/srv/multimedia/torrents:/data/torrents:rw"
"/srv/containers/qbittorrent:/config:rw" "/srv/containers/qbittorrent:/config:rw"
]; ];
environment = {
PUID = "1000";
PGID = "100";
};
extraOptions = [ extraOptions = [
"--network=media-stack" "--network=media-stack"
]; ];
@ -42,7 +36,7 @@ in
services.traefik.dynamicConfigOptions.http.services = { services.traefik.dynamicConfigOptions.http.services = {
qbittorrent.loadBalancer.servers = [ qbittorrent.loadBalancer.servers = [
{ url = "http://127.0.0.1:${port}"; } { url = "http://127.0.0.1:8080"; }
]; ];
}; };
} }

View file

@ -1,15 +1,13 @@
{ ... }: { ... }:
let
port = "7878";
in
{ {
virtualisation.oci-containers.containers = { virtualisation.oci-containers.containers = {
# Movie collection manager for Usenet and BitTorrent users # Movie collection manager for Usenet and BitTorrent users
radarr = { radarr = {
autoStart = true; autoStart = true;
image = "ghcr.io/hotio/radarr:release-5.6.0.8846"; image = "ghcr.io/hotio/radarr:nightly-5.1.3.8237";
ports = [ ports = [
"${port}:7878/tcp" # WebUI "7878:7878/tcp" # WebUI
]; ];
volumes = [ volumes = [
# Media library # Media library
@ -17,10 +15,6 @@ in
# Container data # Container data
"/srv/containers/radarr:/config:rw" "/srv/containers/radarr:/config:rw"
]; ];
environment = {
PUID = "1000";
PGID = "100";
};
extraOptions = [ extraOptions = [
"--network=media-stack" "--network=media-stack"
]; ];
@ -41,7 +35,7 @@ in
services.traefik.dynamicConfigOptions.http.services = { services.traefik.dynamicConfigOptions.http.services = {
radarr.loadBalancer.servers = [ radarr.loadBalancer.servers = [
{ url = "http://127.0.0.1:${port}"; } { url = "http://127.0.0.1:7878"; }
]; ];
}; };
} }

View file

@ -5,14 +5,13 @@
# Automatically synchronize recommended settings from the TRaSH guides to your Sonarr/Radarr instances # Automatically synchronize recommended settings from the TRaSH guides to your Sonarr/Radarr instances
recyclarr = { recyclarr = {
autoStart = true; autoStart = true;
image = "ghcr.io/recyclarr/recyclarr:6.0.2"; image = "ghcr.io/hotio/recyclarr:6.0";
volumes = [ volumes = [
"/srv/containers/recyclarr:/config" "/srv/containers/recyclarr:/config"
]; ];
extraOptions = [ extraOptions = [
"--network=media-stack" "--network=media-stack"
]; ];
user = "1000:100";
}; };
}; };
} }

View file

@ -1,15 +1,13 @@
{ ... }: { ... }:
let
port = "8989";
in
{ {
virtualisation.oci-containers.containers = { virtualisation.oci-containers.containers = {
# PVR for Usenet and BitTorrent users # PVR for Usenet and BitTorrent users
sonarr = { sonarr = {
autoStart = true; autoStart = true;
image = "ghcr.io/hotio/sonarr:release-4.0.5.1710"; image = "ghcr.io/hotio/sonarr:nightly-4.0.0.710";
ports = [ ports = [
"${port}:8989/tcp" # WebUI "8989:8989/tcp" # WebUI
]; ];
volumes = [ volumes = [
# Media library # Media library
@ -17,10 +15,6 @@ in
# Container data # Container data
"/srv/containers/sonarr:/config:rw" "/srv/containers/sonarr:/config:rw"
]; ];
environment = {
PUID = "1000";
PGID = "100";
};
extraOptions = [ extraOptions = [
"--network=media-stack" "--network=media-stack"
]; ];
@ -42,7 +36,7 @@ in
services.traefik.dynamicConfigOptions.http.services = { services.traefik.dynamicConfigOptions.http.services = {
sonarr.loadBalancer.servers = [ sonarr.loadBalancer.servers = [
{ url = "http://127.0.0.1:${port}"; } { url = "http://127.0.0.1:8989"; }
]; ];
}; };
} }