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
];
nixpkgs.overlays = [
inputs.agenix-rekey.overlays.default
];
environment.systemPackages = with pkgs; [
agenix-rekey
];

View file

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

View file

@ -1,15 +1,13 @@
{ ... }:
let
port = "3000";
in
{
virtualisation.oci-containers.containers = {
adguardhome = {
autoStart = true;
image = "adguard/adguardhome:v0.107.51";
image = "adguard/adguardhome";
ports = [
"53:53" # Plain DNS
"${port}:3000" # WEBGUI
"3000:3000" # WEBGUI
];
volumes = [
"/srv/containers/adguardhome/work:/opt/adguardhome/work"
@ -35,7 +33,7 @@ in
services.traefik.dynamicConfigOptions.http.services = {
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
./recyclarr.nix
./sonarr.nix
./mealie.nix
./microbin
];
virtualisation.oci-containers.backend = "docker";

View file

@ -1,15 +1,13 @@
{ ... }:
let
port = "8096";
in
{
virtualisation.oci-containers.containers = {
# Volunteer-built media solution that puts you in control of your media
jellyfin = {
autoStart = true;
image = "jellyfin/jellyfin:10.9.6";
image = "jellyfin/jellyfin:10.8.12";
ports = [
"${port}:8096/tcp" # HTTP traffic
"8096:8096/tcp" # HTTP traffic
"8920:8920/tcp" # HTTPS traffic
# "1900:1900/udp" # Service auto-discovery
"7359:7359/udp" # Client auto-discovery
@ -26,7 +24,6 @@ in
"--device=/dev/dri/renderD128:/dev/dri/renderD128"
"--network=media-stack"
];
user = "1000:100";
};
};
@ -45,7 +42,7 @@ in
services.traefik.dynamicConfigOptions.http.services = {
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 = {
# Request management
jellyseerr = {
autoStart = true;
image = "ghcr.io/hotio/jellyseerr:release-1.9.2";
image = "ghcr.io/hotio/jellyseerr";
ports = [
"${port}:5055/tcp" # WebUI
"5055:5055/tcp" # WebUI
];
volumes = [
"/srv/containers/jellyseerr:/config"
];
environment = {
PUID = "1000";
PGID = "100";
};
extraOptions = [
"--network=media-stack"
];
@ -39,7 +33,7 @@ in
services.traefik.dynamicConfigOptions.http.services = {
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 = {
# # Music collection manager for Usenet and BitTorrent users
lidarr = {
autoStart = true;
image = "ghcr.io/hotio/lidarr:release-2.3.3.4204";
image = "ghcr.io/hotio/lidarr:nightly-2.0.2.3782";
ports = [
"${port}:8686/tcp" # WebUI
"8686:8686/tcp" # WebUI
];
volumes = [
# Media library
@ -17,10 +15,6 @@ in
# Container data
"/srv/containers/lidarr:/config:rw"
];
environment = {
PUID = "1000";
PGID = "100";
};
extraOptions = [
"--network=media-stack"
];
@ -42,7 +36,7 @@ in
services.traefik.dynamicConfigOptions.http.services = {
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, ... }:
let
port = "8181";
in
{
age.secrets.microbin = {
# Environment variables for microbin
rekeyFile = ./environment.age;
owner = "sajenim";
group = "users";
owner = "root";
group = "root";
};
virtualisation.oci-containers.containers = {
@ -16,7 +14,7 @@ in
autoStart = true;
image = "danielszabo99/microbin:2.0";
ports = [
"${port}:8080/tcp" # WebUI
"8181:8080/tcp" # WebUI
];
volumes = [
# Container data
@ -43,7 +41,7 @@ in
services.traefik.dynamicConfigOptions.http.services = {
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 = {
# Indexer manager/proxy built on the popular arr .net/reactjs base stack to integrate with your various PVR apps.
prowlarr = {
autoStart = true;
image = "ghcr.io/hotio/prowlarr:release-1.18.0.4543";
image = "ghcr.io/hotio/prowlarr:nightly-1.10.3.4070";
ports = [
"${port}:9696/tcp" # WebUI
"9696:9696/tcp" # WebUI
];
volumes = [
# Container data
"/srv/containers/prowlarr:/config:rw"
];
environment = {
PUID = "1000";
PGID = "100";
};
extraOptions = [
"--network=media-stack"
];
@ -39,7 +33,7 @@ in
services.traefik.dynamicConfigOptions.http.services = {
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 = {
# # Open-source software alternative to µTorrent
qbittorrent = {
autoStart = true;
image = "ghcr.io/hotio/qbittorrent:release-4.6.5";
image = "ghcr.io/hotio/qbittorrent:release-4.6.0";
ports = [
"${port}:8080/tcp" # WebUI
"8080:8080/tcp" # WebUI
"32372:32372/tcp" # Transport protocol
];
volumes = [
@ -17,10 +15,6 @@ in
"/srv/multimedia/torrents:/data/torrents:rw"
"/srv/containers/qbittorrent:/config:rw"
];
environment = {
PUID = "1000";
PGID = "100";
};
extraOptions = [
"--network=media-stack"
];
@ -42,7 +36,7 @@ in
services.traefik.dynamicConfigOptions.http.services = {
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 = {
# Movie collection manager for Usenet and BitTorrent users
radarr = {
autoStart = true;
image = "ghcr.io/hotio/radarr:release-5.6.0.8846";
image = "ghcr.io/hotio/radarr:nightly-5.1.3.8237";
ports = [
"${port}:7878/tcp" # WebUI
"7878:7878/tcp" # WebUI
];
volumes = [
# Media library
@ -17,10 +15,6 @@ in
# Container data
"/srv/containers/radarr:/config:rw"
];
environment = {
PUID = "1000";
PGID = "100";
};
extraOptions = [
"--network=media-stack"
];
@ -41,7 +35,7 @@ in
services.traefik.dynamicConfigOptions.http.services = {
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
recyclarr = {
autoStart = true;
image = "ghcr.io/recyclarr/recyclarr:6.0.2";
image = "ghcr.io/hotio/recyclarr:6.0";
volumes = [
"/srv/containers/recyclarr:/config"
];
extraOptions = [
"--network=media-stack"
];
user = "1000:100";
};
};
}

View file

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