update flake

This commit is contained in:
2026-07-28 13:45:34 -05:00
parent 4fa21e1226
commit b5f720b5ca
9 changed files with 772 additions and 117 deletions

208
flake.lock generated
View File

@@ -20,11 +20,11 @@
]
},
"locked": {
"lastModified": 1778857089,
"narHash": "sha256-TclWRW2SdFeETLaiTG4BA8C8C4m/LppQEldncqyTzAQ=",
"lastModified": 1784368054,
"narHash": "sha256-zF1iJkBQSDWmRO4/LEeHR1SpKY0lqZaxkoQJpPS9K9U=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "ab2b0af63fbc9fb779d684f19149b790978be8a8",
"rev": "9b5f14d9483445e766294eb8fbe0b8f370269ed0",
"type": "github"
},
"original": {
@@ -61,11 +61,11 @@
]
},
"locked": {
"lastModified": 1780290312,
"narHash": "sha256-eTAlX0CwgB84Ts3GaBd944A3DRXVMzgA0EqroZBISUo=",
"lastModified": 1781152676,
"narHash": "sha256-RxWs5ND31KzTG7wvMM+PMfUjyNpmIEr999lqNARaM5o=",
"owner": "nix-community",
"repo": "disko",
"rev": "115e5211780054d8a890b41f0b7734cafad54dfe",
"rev": "ff8702b4de27f72b4c78573dfb89ec74e36abdf1",
"type": "github"
},
"original": {
@@ -82,11 +82,11 @@
},
"locked": {
"dir": "pkgs/firefox-addons",
"lastModified": 1780286561,
"narHash": "sha256-73UvAlulbn6cSaoq+Wllj7WxKrhti8wkT+zYKvFD9d0=",
"lastModified": 1785211368,
"narHash": "sha256-FJFp7T2KGoOhsT0cmXi38bFtrK/fB9jOs3KBoiNz6vQ=",
"owner": "rycee",
"repo": "nur-expressions",
"rev": "2838055f920c314b0731f71a53a6b878de0309cc",
"rev": "854311a577a3646df9175010e943890aceef4d66",
"type": "gitlab"
},
"original": {
@@ -151,11 +151,11 @@
"nixpkgs-lib": "nixpkgs-lib_2"
},
"locked": {
"lastModified": 1778716662,
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"lastModified": 1782949081,
"narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e",
"type": "github"
},
"original": {
@@ -169,11 +169,11 @@
"nixpkgs-lib": "nixpkgs-lib_3"
},
"locked": {
"lastModified": 1775087534,
"narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=",
"lastModified": 1782949081,
"narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b",
"rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e",
"type": "github"
},
"original": {
@@ -191,11 +191,11 @@
]
},
"locked": {
"lastModified": 1772408722,
"narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=",
"lastModified": 1782949081,
"narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3",
"rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e",
"type": "github"
},
"original": {
@@ -204,28 +204,6 @@
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"hyprland",
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": "nixpkgs"
@@ -251,11 +229,11 @@
]
},
"locked": {
"lastModified": 1780341248,
"narHash": "sha256-PPWavrpeQFqE3bEShp9xcWeh2xyVbUucjBbG64MLRl0=",
"lastModified": 1785119570,
"narHash": "sha256-Rgs2xKnGLFWQscxUaXX07oyZeuMDOHEbqDOsgliLFGM=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "4baa8ac595f6122d2899093f575347af9c4e66d7",
"rev": "d4fd24667c8cbef124bb70a20380cab75ec8474d",
"type": "github"
},
"original": {
@@ -270,11 +248,11 @@
"nixpkgs": "nixpkgs_7"
},
"locked": {
"lastModified": 1780347968,
"narHash": "sha256-I8ibSDQx+E8cgw6k3UxX6Bm7awmGoKSTXc8Gt1Zbpp4=",
"lastModified": 1785168662,
"narHash": "sha256-kGJTc0oEUQuEwV66lSlMxYtOEtpk9N/HS43k+rFAvs8=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "d0af9b8bf3b4a1d449be7034bebc9f8f9fd6ee99",
"rev": "cbb77679b3d992c8b62f884cd3a84af534a28621",
"type": "github"
},
"original": {
@@ -328,11 +306,11 @@
]
},
"locked": {
"lastModified": 1776426399,
"narHash": "sha256-RUESLKNikIeEq9ymGJ6nmcDXiSFQpUW1IhJ245nL3xM=",
"lastModified": 1782566056,
"narHash": "sha256-haEZcHzYrePnjFOYSWTbxm/Nrla0aPslJfmvdCvqtVc=",
"owner": "hyprwm",
"repo": "hyprgraphics",
"rev": "68d064434787cf1ed4a2fe257c03c5f52f33cf84",
"rev": "c6e7b9f673f4360bc813d3dc75028f75ee88d3f8",
"type": "github"
},
"original": {
@@ -358,11 +336,11 @@
"xdph": "xdph"
},
"locked": {
"lastModified": 1780334452,
"narHash": "sha256-v+GmvijnXvcpN7pMrKFSYnNozYZ/hz5w7fsswLaT7DM=",
"lastModified": 1785237127,
"narHash": "sha256-M2ktqS/7o1tThairxRh7m5iR6doJktVeypGJE8RebyA=",
"ref": "refs/heads/main",
"rev": "13be9a3305150fa9b9492418bbc409707129ab44",
"revCount": 7402,
"rev": "ff24e1755fd308ee70367d63168a12feb05d1fc2",
"revCount": 7664,
"submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland"
@@ -406,11 +384,11 @@
]
},
"locked": {
"lastModified": 1776426575,
"narHash": "sha256-KI6nIfVihn/DPaeB5Et46Xg3dkNHrrEtUd5LBBVomB0=",
"lastModified": 1784196523,
"narHash": "sha256-ahtKMGXFJdlQNhatQm1+BBU/pGfGYnAqQt3vWvq4p8s=",
"owner": "hyprwm",
"repo": "hyprland-guiutils",
"rev": "a968d211048e3ed538e47b84cb3649299578f19d",
"rev": "a6ccb6cb112ed5a244c0191fb972347ecfa893e0",
"type": "github"
},
"original": {
@@ -512,11 +490,11 @@
]
},
"locked": {
"lastModified": 1772462885,
"narHash": "sha256-5pHXrQK9zasMnIo6yME6EOXmWGFMSnCITcfKshhKJ9I=",
"lastModified": 1782554491,
"narHash": "sha256-+p3MlyN/nqRefcf2IckPlGRUn9+hielqpS9XClbLleM=",
"owner": "hyprwm",
"repo": "hyprtoolkit",
"rev": "9af245a69fa6b286b88ddfc340afd288e00a6998",
"rev": "bdba25ced39ea39ab004a8f31593ba0b0ff1ca35",
"type": "github"
},
"original": {
@@ -537,11 +515,11 @@
]
},
"locked": {
"lastModified": 1779475241,
"narHash": "sha256-Nw4DN0A5krWNcPBvuWe5Gz2yuxsUUPiDgtu6SVPJQeU=",
"lastModified": 1784323413,
"narHash": "sha256-XnAVV+H4f8Xdv0yZcSwJ5kCjLyE8fHxPeLX6a3HSrAU=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "3cd3972b2ee658a14d2610d8494e09259e530124",
"rev": "5f03477ab3a005ff27c527486f551883535aea2f",
"type": "github"
},
"original": {
@@ -621,11 +599,11 @@
},
"import-tree_2": {
"locked": {
"lastModified": 1778781969,
"narHash": "sha256-Jjuz5CmSkur8KvLDoGa+vylEp+RkQtv4mt/qcMznpH0=",
"lastModified": 1784254960,
"narHash": "sha256-iI88R3wHz8wTKQb5orvpc51L/Xr64AJyxid/0MKa/b8=",
"owner": "vic",
"repo": "import-tree",
"rev": "d321337efd0f23a9eb14a42adb7b2c29313ab274",
"rev": "4ebb10ae17d5f1ad366e7aef5b92cb8eecf24f69",
"type": "github"
},
"original": {
@@ -639,11 +617,11 @@
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1780310866,
"narHash": "sha256-fPBRVf6A5xlACYcOI59shGrjURuvwu0lRsDoSCEXt/I=",
"lastModified": 1785232496,
"narHash": "sha256-65EQYIRRpTdpH8lUiB6Mvo5uBkG60aBIzAJuALfx+O0=",
"owner": "nixos",
"repo": "nixos-hardware",
"rev": "4ed851c979641e28597a05086332d75cdc9e395f",
"rev": "2e790b0a6be8ec2b76174ac0931b8ff11919ec98",
"type": "github"
},
"original": {
@@ -659,11 +637,11 @@
"nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1784058842,
"narHash": "sha256-3u3tvbCIAid3Mv7RrJx13jusIEQC/HeKYhO/SUSxR3A=",
"lastModified": 1784642409,
"narHash": "sha256-hcbDqFuySAJawljt5r0sKBCJKYnbtGD0T/ZIozH1Dq0=",
"owner": "nix-community",
"repo": "NixOS-WSL",
"rev": "24c8dc8e0f2170e1a377be24dfadc7d9d21dc1ad",
"rev": "eaeb18da90024448a60eb1ec7132eafa4003404e",
"type": "github"
},
"original": {
@@ -706,11 +684,11 @@
},
"nixpkgs-lib_2": {
"locked": {
"lastModified": 1777168982,
"narHash": "sha256-GOkGPcboWE9BmGCRMLX3worL4EMnsnG8MyKmXNeYuhQ=",
"lastModified": 1782614948,
"narHash": "sha256-ePjCwr1sNm9NYUqywL7QfK3JnlS015msC+eBu2zKlp8=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "f5901329dade4a6ea039af1433fb087bd9c1fe14",
"rev": "db3f255737b94216eb71cce308e2912cf6bc2d7c",
"type": "github"
},
"original": {
@@ -721,11 +699,11 @@
},
"nixpkgs-lib_3": {
"locked": {
"lastModified": 1774748309,
"narHash": "sha256-+U7gF3qxzwD5TZuANzZPeJTZRHS29OFQgkQ2kiTJBIQ=",
"lastModified": 1782614948,
"narHash": "sha256-ePjCwr1sNm9NYUqywL7QfK3JnlS015msC+eBu2zKlp8=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "333c4e0545a6da976206c74db8773a1645b5870a",
"rev": "db3f255737b94216eb71cce308e2912cf6bc2d7c",
"type": "github"
},
"original": {
@@ -736,11 +714,11 @@
},
"nixpkgs-us": {
"locked": {
"lastModified": 1780243769,
"narHash": "sha256-x5UQuRsH3MqI0U9afaXSNqzTPSeZlRLvFAav2Ux1pNw=",
"lastModified": 1785090369,
"narHash": "sha256-m0pDuRJG7EDo9ri+4Ksu83VsI+PlxNC9lNBfydejce4=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "331800de5053fcebacf6813adb5db9c9dca22a0c",
"rev": "624af665418d3c65d544145b4d34ad696439570e",
"type": "github"
},
"original": {
@@ -784,11 +762,11 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1779357205,
"narHash": "sha256-cCO8aTqss5x9Ky8GWkpY0Hy5fyTZEbtifSUV8QjSzic=",
"lastModified": 1784356753,
"narHash": "sha256-12KrbMiWLcf8m7pCvAtZh1ZrgF85ZXDXvfR/fWTKy84=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f83fc3c307e74bc5fd5adb7eb6b8b13ffd2a36e1",
"rev": "61b7c44c4073f0b827768aff0049561b5110ea5a",
"type": "github"
},
"original": {
@@ -829,11 +807,11 @@
},
"nixpkgs_6": {
"locked": {
"lastModified": 1780203844,
"narHash": "sha256-K5sT4jTpGs15ADhviMKNBH38REpPf5Q6mM1+N6cArVE=",
"lastModified": 1785104993,
"narHash": "sha256-eKbrvPoAOFutbYMdbB3r5EQVmFxKv24iKqHPPUXA0gM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "b51242d7d43689db2f3be91bd05d5b24fbb469c4",
"rev": "8623c4c20aa4ca2f5fb81510d2944066c3fb0d96",
"type": "github"
},
"original": {
@@ -845,11 +823,11 @@
},
"nixpkgs_7": {
"locked": {
"lastModified": 1779877693,
"narHash": "sha256-NOF9NAREhxr50bbBfVcVOq+ArCMSoe8dP79Pk2uyARk=",
"lastModified": 1783604885,
"narHash": "sha256-tzMgSkV7kljEkqIjlgV6F+n+xD+/a35Db8bs7a4BFAo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4100e830e085863741bc69b156ec4ccd53ab5be0",
"rev": "767b0d3ec98a143ad9ed7dfc0d5553510ac27133",
"type": "github"
},
"original": {
@@ -861,11 +839,11 @@
},
"nixpkgs_8": {
"locked": {
"lastModified": 1775710090,
"narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=",
"lastModified": 1785090369,
"narHash": "sha256-m0pDuRJG7EDo9ri+4Ksu83VsI+PlxNC9lNBfydejce4=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "4c1018dae018162ec878d42fec712642d214fdfa",
"rev": "624af665418d3c65d544145b4d34ad696439570e",
"type": "github"
},
"original": {
@@ -877,11 +855,11 @@
},
"nixpkgs_9": {
"locked": {
"lastModified": 1774701658,
"narHash": "sha256-CIS/4AMUSwUyC8X5g+5JsMRvIUL3YUfewe8K4VrbsSQ=",
"lastModified": 1784555310,
"narHash": "sha256-/FCliTPgiuV1owejZFNx3Ch9irdvkOfOFl+HHZ+DrtM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b63fe7f000adcfa269967eeff72c64cafecbbebe",
"rev": "421eebfd0ec7bccd4abe826ce62d7e6e83129493",
"type": "github"
},
"original": {
@@ -899,11 +877,11 @@
"nixvim": "nixvim_2"
},
"locked": {
"lastModified": 1776887413,
"narHash": "sha256-zIx29OCh30Bpi4lHwce/5Qz86n6OVqDFi3P5QLRXh7Y=",
"lastModified": 1785202851,
"narHash": "sha256-k80oByOkICFc5g//BN/dmIvZU7b0gisoS9xY9jhz6LA=",
"ref": "refs/heads/master",
"rev": "7fb16160f7170a580d6791d0f26736ff68cceb3c",
"revCount": 40,
"rev": "e9c296072c90d65a2573fee682ea51100f5916c8",
"revCount": 41,
"type": "git",
"url": "https://gitea.esotericbytes.com/nathan/Moirai"
},
@@ -919,11 +897,11 @@
"systems": "systems_2"
},
"locked": {
"lastModified": 1775837497,
"narHash": "sha256-L17VI03w/wVXvc1SK7EI1muLqHxD3+esYPPzgQvvdOE=",
"lastModified": 1785001306,
"narHash": "sha256-xWqmquUtqKXLeDZ1oQUO+rV4sjA9TShIJhLL8M5Bozo=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "a587a96a48c705609bfd2ad23f9ae5961eb0d373",
"rev": "48409beb41e8e28b64e8160ca82d8a93fb628963",
"type": "github"
},
"original": {
@@ -954,18 +932,17 @@
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": [
"hyprland",
"nixpkgs"
]
},
"locked": {
"lastModified": 1778507602,
"narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=",
"lastModified": 1784288435,
"narHash": "sha256-ReRHaLgr/uVqdD8afFSn+myXIfpHeOhP0yYe0TJqAA8=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a",
"rev": "43b3c1ab9d40fb1dbb008f451988a91e375825e9",
"type": "github"
},
"original": {
@@ -999,11 +976,11 @@
]
},
"locked": {
"lastModified": 1777944972,
"narHash": "sha256-VfGRo1qTBKOe3s2gOv8LSoA6Fk19PvBlwQ1ECN0Evn8=",
"lastModified": 1783174389,
"narHash": "sha256-aCWC8ngycU7OdJrU2+Je3qf+1a2ykuBvpPhZT/9tXMc=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "c591bf665727040c6cc5cb409079acb22dcce33c",
"rev": "f1406619a3884cd5c47992a70b8b35c9c0fcb4c9",
"type": "github"
},
"original": {
@@ -1029,15 +1006,16 @@
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"lastModified": 1774449309,
"narHash": "sha256-brhZ8DmuGtzkCYHJg4HEd602amKm89Y9ytsFZ5uWD1w=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"rev": "c29398b59d2048c4ab79345812849c9bd15e9150",
"type": "github"
},
"original": {
"owner": "nix-systems",
"ref": "future-26.11",
"repo": "default",
"type": "github"
}
@@ -1070,11 +1048,11 @@
]
},
"locked": {
"lastModified": 1778265244,
"narHash": "sha256-8jlPtGSsv/CQY6tVVyLF4Jjd0gnS+Zbn9yk/V13A9nM=",
"lastModified": 1784371182,
"narHash": "sha256-S8A1lezEalltWcCp3gAic5lssS0xTSISK6fKODefhOk=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "813ea5ca9a1702a9a2d1f5836bc00172ef698968",
"rev": "08d99f727944dd15e4740090305e31c5fb92a50a",
"type": "github"
},
"original": {

View File

@@ -0,0 +1,97 @@
{ self, ... }: {
flake.nixosModules.bazarr = { config, lib, pkgs, ... }: let
subdomain = "bazarr";
name = "bazarr";
in {
imports = [
self.nixosModules.docker
];
config = {
virtualisation.oci-containers.containers.bazarr = {
image = "lscr.io/linuxserver/bazarr:latest";
# unstable, waiting for 26.05
#pull = "newer";
hostname = "${subdomain}.esotericbytes.com";
networks = [
"docker-main"
];
labels = {
"traefik.enable" = "true";
"traefik.http.routers.${name}.entrypoints" = "localsecure";
"traefik.http.routers.${name}.rule" = "Host(`${subdomain}.esotericbytes.com`)";
"traefik.http.routers.${name}.service" = "${name}";
"traefik.http.routers.${name}.tls.certResolver" = "cloudflare";
#"traefik.http.services.${name}.loadbalancer.server.url" = "http://192.168.100.10:${builtins.toString hostPort}";
"traefik.http.services.${name}.loadbalancer.server.port" = "8989";
};
ports = [
];
extraOptions = [
"--ip=192.168.101.10"
];
volumes = [
"vol_bazarr-config:/config"
"/ssd1/Jellyfin/data:/data"
];
};
systemd.services."docker-bazarr" = {
serviceConfig = {
Restart = lib.mkOverride 90 "always";
RestartMaxDelaySec = lib.mkOverride 90 "1m";
RestartSec = lib.mkOverride 90 "100ms";
RestartSteps = lib.mkOverride 90 9;
};
after = [
"docker-network-setup.service"
"docker-volume-bazarr-config.service"
];
requires = [
"docker-network-setup.service"
"docker-volume-bazarr-config.service"
];
partOf = [
"docker-compose-bazarr-root.target"
];
wantedBy = [
"docker-compose-bazarr-root.target"
];
};
systemd.services."docker-volume-bazarr-config" = {
path = [ pkgs.docker ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
};
script = ''
docker volume inspect vol_bazarr-config || docker volume create vol_bazarr-config --driver=local
'';
partOf = [ "docker-compose-bazarr-root.target" ];
wantedBy = [ "docker-compose-bazarr-root.target" ];
};
systemd.targets."docker-compose-bazarr-root" = {
wantedBy = [ "multi-user.target" ];
};
};
};
}

View File

@@ -29,9 +29,10 @@
volumes = [
"vol_jellyfin-config:/config"
"vol_jellyfin-cache:/cache"
"vol_jellyfin-cache:/cache"
"/etc/jellyfin/media:/media"
"/ssd1/Jellyfin/media:/media"
"/ssd1/Jellyfin/data:/data"
];
labels = {

View File

@@ -0,0 +1,96 @@
{ self, ... }: {
flake.nixosModules.jellyseerr = { config, lib, pkgs, ... }: let
subdomain = "jellyseerr";
name = "jellyseerr";
in {
imports = [
self.nixosModules.docker
];
config = {
virtualisation.oci-containers.containers.jellyseerr = {
image = "lscr.io/linuxserver/jellyseerr:latest";
# unstable, waiting for 26.05
#pull = "newer";
hostname = "${subdomain}.esotericbytes.com";
networks = [
"docker-main"
];
labels = {
"traefik.enable" = "true";
"traefik.http.routers.${name}.entrypoints" = "localsecure";
"traefik.http.routers.${name}.rule" = "Host(`${subdomain}.esotericbytes.com`)";
"traefik.http.routers.${name}.service" = "${name}";
"traefik.http.routers.${name}.tls.certResolver" = "cloudflare";
#"traefik.http.services.${name}.loadbalancer.server.url" = "http://192.168.100.10:${builtins.toString hostPort}";
"traefik.http.services.${name}.loadbalancer.server.port" = "8989";
};
ports = [
];
extraOptions = [
"--ip=192.168.101.10"
];
volumes = [
"vol_jellyseerr-config:/config"
];
};
systemd.services."docker-jellyseerr" = {
serviceConfig = {
Restart = lib.mkOverride 90 "always";
RestartMaxDelaySec = lib.mkOverride 90 "1m";
RestartSec = lib.mkOverride 90 "100ms";
RestartSteps = lib.mkOverride 90 9;
};
after = [
"docker-network-setup.service"
"docker-volume-jellyseerr-config.service"
];
requires = [
"docker-network-setup.service"
"docker-volume-jellyseerr-config.service"
];
partOf = [
"docker-compose-jellyseerr-root.target"
];
wantedBy = [
"docker-compose-jellyseerr-root.target"
];
};
systemd.services."docker-volume-jellyseerr-config" = {
path = [ pkgs.docker ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
};
script = ''
docker volume inspect vol_jellyseerr-config || docker volume create vol_jellyseerr-config --driver=local
'';
partOf = [ "docker-compose-jellyseerr-root.target" ];
wantedBy = [ "docker-compose-jellyseerr-root.target" ];
};
systemd.targets."docker-compose-jellyseerr-root" = {
wantedBy = [ "multi-user.target" ];
};
};
};
}

View File

@@ -0,0 +1,97 @@
{ self, ... }: {
flake.nixosModules.lidarr = { config, lib, pkgs, ... }: let
subdomain = "lidarr";
name = "lidarr";
in {
imports = [
self.nixosModules.docker
];
config = {
virtualisation.oci-containers.containers.lidarr = {
image = "lscr.io/linuxserver/lidarr:latest";
# unstable, waiting for 26.05
#pull = "newer";
hostname = "${subdomain}.esotericbytes.com";
networks = [
"docker-main"
];
labels = {
"traefik.enable" = "true";
"traefik.http.routers.${name}.entrypoints" = "localsecure";
"traefik.http.routers.${name}.rule" = "Host(`${subdomain}.esotericbytes.com`)";
"traefik.http.routers.${name}.service" = "${name}";
"traefik.http.routers.${name}.tls.certResolver" = "cloudflare";
#"traefik.http.services.${name}.loadbalancer.server.url" = "http://192.168.100.10:${builtins.toString hostPort}";
"traefik.http.services.${name}.loadbalancer.server.port" = "8989";
};
ports = [
];
extraOptions = [
"--ip=192.168.101.10"
];
volumes = [
"vol_lidarr-config:/config"
"/ssd1/Jellyfin/data:/data"
];
};
systemd.services."docker-lidarr" = {
serviceConfig = {
Restart = lib.mkOverride 90 "always";
RestartMaxDelaySec = lib.mkOverride 90 "1m";
RestartSec = lib.mkOverride 90 "100ms";
RestartSteps = lib.mkOverride 90 9;
};
after = [
"docker-network-setup.service"
"docker-volume-lidarr-config.service"
];
requires = [
"docker-network-setup.service"
"docker-volume-lidarr-config.service"
];
partOf = [
"docker-compose-lidarr-root.target"
];
wantedBy = [
"docker-compose-lidarr-root.target"
];
};
systemd.services."docker-volume-lidarr-config" = {
path = [ pkgs.docker ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
};
script = ''
docker volume inspect vol_lidarr-config || docker volume create vol_lidarr-config --driver=local
'';
partOf = [ "docker-compose-lidarr-root.target" ];
wantedBy = [ "docker-compose-lidarr-root.target" ];
};
systemd.targets."docker-compose-lidarr-root" = {
wantedBy = [ "multi-user.target" ];
};
};
};
}

View File

@@ -0,0 +1,96 @@
{ self, ... }: {
flake.nixosModules.prowlarr = { config, lib, pkgs, ... }: let
subdomain = "prowlarr";
name = "prowlarr";
in {
imports = [
self.nixosModules.docker
];
config = {
virtualisation.oci-containers.containers.prowlarr = {
image = "lscr.io/linuxserver/prowlarr:latest";
# unstable, waiting for 26.05
#pull = "newer";
hostname = "${subdomain}.esotericbytes.com";
networks = [
"docker-main"
];
labels = {
"traefik.enable" = "true";
"traefik.http.routers.${name}.entrypoints" = "localsecure";
"traefik.http.routers.${name}.rule" = "Host(`${subdomain}.esotericbytes.com`)";
"traefik.http.routers.${name}.service" = "${name}";
"traefik.http.routers.${name}.tls.certResolver" = "cloudflare";
#"traefik.http.services.${name}.loadbalancer.server.url" = "http://192.168.100.10:${builtins.toString hostPort}";
"traefik.http.services.${name}.loadbalancer.server.port" = "8989";
};
ports = [
];
extraOptions = [
"--ip=192.168.101.10"
];
volumes = [
"vol_prowlarr-config:/config"
];
};
systemd.services."docker-prowlarr" = {
serviceConfig = {
Restart = lib.mkOverride 90 "always";
RestartMaxDelaySec = lib.mkOverride 90 "1m";
RestartSec = lib.mkOverride 90 "100ms";
RestartSteps = lib.mkOverride 90 9;
};
after = [
"docker-network-setup.service"
"docker-volume-prowlarr-config.service"
];
requires = [
"docker-network-setup.service"
"docker-volume-prowlarr-config.service"
];
partOf = [
"docker-compose-prowlarr-root.target"
];
wantedBy = [
"docker-compose-prowlarr-root.target"
];
};
systemd.services."docker-volume-prowlarr-config" = {
path = [ pkgs.docker ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
};
script = ''
docker volume inspect vol_prowlarr-config || docker volume create vol_prowlarr-config --driver=local
'';
partOf = [ "docker-compose-prowlarr-root.target" ];
wantedBy = [ "docker-compose-prowlarr-root.target" ];
};
systemd.targets."docker-compose-prowlarr-root" = {
wantedBy = [ "multi-user.target" ];
};
};
};
}

View File

@@ -0,0 +1,97 @@
{ self, ... }: {
flake.nixosModules.qbittorrent = { config, lib, pkgs, ... }: let
subdomain = "qbittorrent";
name = "qbittorrent";
in {
imports = [
self.nixosModules.docker
];
config = {
virtualisation.oci-containers.containers.qbittorrent = {
image = "hotio/qbittorrent:latest";
# unstable, waiting for 26.05
#pull = "newer";
hostname = "${subdomain}.esotericbytes.com";
networks = [
"docker-main"
];
labels = {
"traefik.enable" = "true";
"traefik.http.routers.${name}.entrypoints" = "localsecure";
"traefik.http.routers.${name}.rule" = "Host(`${subdomain}.esotericbytes.com`)";
"traefik.http.routers.${name}.service" = "${name}";
"traefik.http.routers.${name}.tls.certResolver" = "cloudflare";
#"traefik.http.services.${name}.loadbalancer.server.url" = "http://192.168.100.10:${builtins.toString hostPort}";
"traefik.http.services.${name}.loadbalancer.server.port" = "8989";
};
ports = [
];
extraOptions = [
"--ip=192.168.101.10"
];
volumes = [
"vol_qbittorrent-config:/config"
"/ssd1/Jellyfin/data:/data"
];
};
systemd.services."docker-qbittorrent" = {
serviceConfig = {
Restart = lib.mkOverride 90 "always";
RestartMaxDelaySec = lib.mkOverride 90 "1m";
RestartSec = lib.mkOverride 90 "100ms";
RestartSteps = lib.mkOverride 90 9;
};
after = [
"docker-network-setup.service"
"docker-volume-qbittorrent-config.service"
];
requires = [
"docker-network-setup.service"
"docker-volume-qbittorrent-config.service"
];
partOf = [
"docker-compose-qbittorrent-root.target"
];
wantedBy = [
"docker-compose-qbittorrent-root.target"
];
};
systemd.services."docker-volume-qbittorrent-config" = {
path = [ pkgs.docker ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
};
script = ''
docker volume inspect vol_qbittorrent-config || docker volume create vol_qbittorrent-config --driver=local
'';
partOf = [ "docker-compose-qbittorrent-root.target" ];
wantedBy = [ "docker-compose-qbittorrent-root.target" ];
};
systemd.targets."docker-compose-qbittorrent-root" = {
wantedBy = [ "multi-user.target" ];
};
};
};
}

View File

@@ -0,0 +1,97 @@
{ self, ... }: {
flake.nixosModules.radarr = { config, lib, pkgs, ... }: let
subdomain = "radarr";
name = "radarr";
in {
imports = [
self.nixosModules.docker
];
config = {
virtualisation.oci-containers.containers.radarr = {
image = "lscr.io/linuxserver/radarr:latest";
# unstable, waiting for 26.05
#pull = "newer";
hostname = "${subdomain}.esotericbytes.com";
networks = [
"docker-main"
];
labels = {
"traefik.enable" = "true";
"traefik.http.routers.${name}.entrypoints" = "localsecure";
"traefik.http.routers.${name}.rule" = "Host(`${subdomain}.esotericbytes.com`)";
"traefik.http.routers.${name}.service" = "${name}";
"traefik.http.routers.${name}.tls.certResolver" = "cloudflare";
#"traefik.http.services.${name}.loadbalancer.server.url" = "http://192.168.100.10:${builtins.toString hostPort}";
"traefik.http.services.${name}.loadbalancer.server.port" = "8989";
};
ports = [
];
extraOptions = [
"--ip=192.168.101.10"
];
volumes = [
"vol_radarr-config:/config"
"/ssd1/Jellyfin/data:/data"
];
};
systemd.services."docker-radarr" = {
serviceConfig = {
Restart = lib.mkOverride 90 "always";
RestartMaxDelaySec = lib.mkOverride 90 "1m";
RestartSec = lib.mkOverride 90 "100ms";
RestartSteps = lib.mkOverride 90 9;
};
after = [
"docker-network-setup.service"
"docker-volume-radarr-config.service"
];
requires = [
"docker-network-setup.service"
"docker-volume-radarr-config.service"
];
partOf = [
"docker-compose-radarr-root.target"
];
wantedBy = [
"docker-compose-radarr-root.target"
];
};
systemd.services."docker-volume-radarr-config" = {
path = [ pkgs.docker ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
};
script = ''
docker volume inspect vol_radarr-config || docker volume create vol_radarr-config --driver=local
'';
partOf = [ "docker-compose-radarr-root.target" ];
wantedBy = [ "docker-compose-radarr-root.target" ];
};
systemd.targets."docker-compose-radarr-root" = {
wantedBy = [ "multi-user.target" ];
};
};
};
}

View File

@@ -0,0 +1,96 @@
{ self, ... }: {
flake.nixosModules.sonarr = { config, lib, pkgs, ... }: let
subdomain = "sonarr";
name = "sonarr";
in {
imports = [
self.nixosModules.docker
];
config = {
virtualisation.oci-containers.containers.sonarr = {
image = "lscr.io/linuxserver/sonarr:latest";
# unstable, waiting for 26.05
#pull = "newer";
hostname = "${subdomain}.esotericbytes.com";
networks = [
"docker-main"
];
labels = {
"traefik.enable" = "true";
"traefik.http.routers.${name}.entrypoints" = "localsecure";
"traefik.http.routers.${name}.rule" = "Host(`${subdomain}.esotericbytes.com`)";
"traefik.http.routers.${name}.service" = "${name}";
"traefik.http.routers.${name}.tls.certResolver" = "cloudflare";
#"traefik.http.services.${name}.loadbalancer.server.url" = "http://192.168.100.10:${builtins.toString hostPort}";
"traefik.http.services.${name}.loadbalancer.server.port" = "8989";
};
ports = [
];
extraOptions = [
"--ip=192.168.101.10"
];
volumes = [
"vol_sonarr-config:/config"
"/ssd1/Jellyfin/data:/data"
];
};
systemd.services."docker-sonarr" = {
serviceConfig = {
Restart = lib.mkOverride 90 "always";
RestartMaxDelaySec = lib.mkOverride 90 "1m";
RestartSec = lib.mkOverride 90 "100ms";
RestartSteps = lib.mkOverride 90 9;
};
after = [
"docker-network-setup.service"
"docker-volume-sonarr-config.service"
];
requires = [
"docker-network-setup.service"
"docker-volume-sonarr-config.service"
];
partOf = [
"docker-compose-sonarr-root.target"
];
wantedBy = [
"docker-compose-sonarr-root.target"
];
};
systemd.services."docker-volume-sonarr-config" = {
path = [ pkgs.docker ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
};
script = ''
docker volume inspect vol_sonarr-config || docker volume create vol_sonarr-config --driver=local
'';
partOf = [ "docker-compose-sonarr-root.target" ];
wantedBy = [ "docker-compose-sonarr-root.target" ];
};
systemd.targets."docker-compose-sonarr-root" = {
wantedBy = [ "multi-user.target" ];
};
};
};
}