diff --git a/flake.nix b/flake.nix index 4882668..f10a29a 100644 --- a/flake.nix +++ b/flake.nix @@ -52,12 +52,7 @@ modules = [ ./hosts/${name}/configuration.nix sops-nix.nixosModules.sops - ( - _: - { - nixpkgs.overlays = overlays; - } - ) + (_: { nixpkgs.overlays = overlays; }) nixos-cosmic.nixosModules.default ]; }; diff --git a/hosts/miniserver/configuration.nix b/hosts/miniserver/configuration.nix index 87c482b..46d2502 100644 --- a/hosts/miniserver/configuration.nix +++ b/hosts/miniserver/configuration.nix @@ -41,6 +41,7 @@ enable = false; enableCron = false; enableProxy = true; + hostName = "server"; }; nextcloud = { enable = true; @@ -55,6 +56,7 @@ bazarr = { enable = false; enableProxy = true; + hostName = "server"; }; collabora = { enable = true; @@ -76,10 +78,12 @@ kavita = { enable = false; enableProxy = true; + hostName = "server"; }; lidarr = { enable = false; enableProxy = true; + hostName = "server"; }; maloja = { enable = true; @@ -106,12 +110,14 @@ prowlarr = { enable = false; enableProxy = true; + hostName = "server"; }; qbittorrent.enable = true; unpackerr.enable = false; radarr = { enable = false; enableProxy = true; + hostName = "server"; }; ryot = { enable = true; @@ -124,6 +130,7 @@ sonarr = { enable = false; enableProxy = true; + hostName = "server"; }; vaultwarden = { enable = true; diff --git a/modules/servers/homepage.nix b/modules/servers/homepage.nix index 3482138..d23d088 100644 --- a/modules/servers/homepage.nix +++ b/modules/servers/homepage.nix @@ -29,6 +29,10 @@ in style = "row"; columns = 4; }; + "Other" = { + style = "row"; + columns = 3; + }; }; background = "https://images.unsplash.com/photo-1502790671504-542ad42d5189?auto=format&fit=crop&w=2560&q=80"; }; @@ -75,6 +79,13 @@ in { inherit (services) "qbittorrent miniserver"; } ]; } + { + "Other" = [ + { inherit (services) mealie; } + { inherit (services) nextcloud; } + { inherit (services) paperless; } + ]; + } ]; }; nginx.virtualHosts."${cfg.host}" = lib.mkIf cfg.enableProxy ( diff --git a/modules/servers/homepage/services.nix b/modules/servers/homepage/services.nix index 7cb7204..c309b29 100644 --- a/modules/servers/homepage/services.nix +++ b/modules/servers/homepage/services.nix @@ -172,4 +172,57 @@ key = "{{HOMEPAGE_VAR_SABNZBD}}"; }; }; + mealie = + let + cfg = config.my.servers.mealie; + in + lib.mkIf (cfg.enable || cfg.enableProxy) { + icon = "${cfg.name}.png"; + href = cfg.url; + widget = { + inherit (cfg) url; + type = cfg.name; + key = "{{HOMEPAGE_VAR_MEALIE}}"; + version = 2; + }; + }; + nextcloud = + let + cfg = config.my.servers.nextcloud; + in + lib.mkIf (cfg.enable || cfg.enableProxy) { + icon = "${cfg.name}.png"; + href = cfg.url; + widget = { + inherit (cfg) url; + type = cfg.name; + username = "{{HOMEPAGE_VAR_NEXTCLOUD_USERNAME}}"; + password = "{{HOMEPAGE_VAR_NEXTCLOUD_PASSWORD}}"; + token = "{{HOMEPAGE_VAR_NEXTCLOUD_TOKEN}}"; + fields = [ + "memoryusage" + "activeusers" + "numfiles" + "numshares" + ]; + }; + }; + paperless = + let + name = "paperlessngx"; + url = "http://${config.my.ips.miniserver}:${toString config.services.paperless.port}"; + in + lib.mkIf config.my.servers.paperless.enable { + icon = "paperless.png"; + href = url; + widget = { + type = name; + key = "{{HOMEPAGE_VAR_PAPERLESS}}"; + inherit url; + fields = [ + "total" + "inbox" + ]; + }; + }; } diff --git a/modules/servers/sabnzbd.nix b/modules/servers/sabnzbd.nix index 44b0ee5..1c26c89 100644 --- a/modules/servers/sabnzbd.nix +++ b/modules/servers/sabnzbd.nix @@ -9,6 +9,7 @@ }; }; config = lib.mkIf config.my.servers.sabnzbd.enable { + networking.firewall.allowedTCPPorts = [ config.my.servers.sabnzbd.port ]; services.sabnzbd = { enable = true; group = "piracy"; diff --git a/secrets/env.yaml b/secrets/env.yaml index 6fc4077..1507c01 100644 --- a/secrets/env.yaml +++ b/secrets/env.yaml @@ -7,7 +7,7 @@ multi-scrobbler: ENC[AES256_GCM,data:v6j2bsn14gAifFKYk7A/mDxd+86PnYg1fvYGNtTQbo1 vaultwarden: ENC[AES256_GCM,data:BH+G8FmYylTbOhzZy6T+sW0q2myJC2zpd/SrtG5WC7N5fmV++X4h+6/tU5dFv4owIOLm/13oGrkT/KOWkF2wwQ7qeQQ8bsyloEigNBMW6d7/ihXZtdtYid1HQrvc6U+Sjl8CPjInHz5j9fy5ouMrmDCGVIYdNrDzFW8AYn7KFLIa3c7oCWMTBCOeGS5rD55GSwy5y4AvBx7Hj9xnZmGG2cnzt5CR9hr/fnZhBTcPxquUZw==,iv:CxDdtWC7zKJZ/Ikq5fV33AT6MYx+pbAGI0Cy6I1fcyo=,tag:q8w4maD3vXTdxCLZ7qbCjg==,type:str] dns: ENC[AES256_GCM,data:eQACe2GRS0ZHyszFkZDG1CeJJZDe/0eXNnurujdv5VR5QQJjYRAQuJVzC3XgelXoWeIQdtW4IfpXTv7xaGuhEzPgsPm4hAdEKosNs6h0ZGg8FG73NSdMWw==,iv:n3i4Ll24+a82aKiRIJgMWLko1B2Lk7bLnpmUevBoHGA=,tag:bnZzVfRUSpZFvF2T6pMtsQ==,type:str] cloudflare-api: ENC[AES256_GCM,data:iNUMlY8rz5yHVitpK4HGaFSK7j+c8Pm7rOQMOQGmSJ3a8ASyrtouPgLbcnoPY/jalsJYAj991dSiui+Vwqs=,iv:qWONG/KLd9/F4tqrWF5T25Zxst3bk+kOYaOFBFSBAAY=,tag:gRFxar8KS8gnX8oaCD156Q==,type:str] -homepage: ENC[AES256_GCM,data:Ls8p0wlli8LpEeU6Rusl0t9SqtzY9Nn75eVeHQgQ26rUmtkXI4rs4a8YPMyCzKouLtEk1lKWD3hvIeg+U+G32sYhtzsRODoaJUQiXvE/edqJA8njrZFPG+ScGeHFTCgXlQoAJYxm7vM6yR3XOgaHV8IRDLfVGvBF3XIKj/UlU1v6F7Z43MmyxU3OvPsCv/vE2ASod/RY/bB0A5zMluW4/Rqa8vfVFIePojWphdo92xkmr0dHRxJ0fwBV06XGUhYAldoGpz6ewa3a3bvN36Yg/h7yqtUWon8uRoJiDaOBGFxzI3TjfnDcNAOzln01TBh41cKOMCJX+zLeetenFhy6bPOim/ozYijHR4oFIYdTYBrjsnD+V/AJyfI7wB6AXLsQLpfMqh+fhYSFJPb4818jmJ5XXYHXqY7X3jTnTYIejur+MvqaLSGykkRGoGwstZ7rommVbmByKjGY/kdqkxeCVrz6L90gSM20tAm/xXxRq3ZpTlDskOBVAig4lYkw9OY0oiwJzOI0GKqueFk5Skbom3x16KwsOcxV8wWFmZw92fZ9F4VKYIoFg4f3dKkZRZKZ+Icav+r9GaGoaTcN4RpAsW0MX+5wUsfCmeJ4SHfTOKb57vSFso7RSRAo368PRAZ2Kb/Jzj9W9rlmKhQ47FMtOVlfK1I1ziWrVtNkf8KrjJfiYfymJ/rT5XlWInO5UkSkTEDFvFqh5G3ulRVWFDP3fsvXvyoEykzyV4pc0y+ap3Hy3OracteS6DCW2dO+J+Zw8yQh14M09plDyEjw6/Jr5UzTKIh2jA1mRNUJACkt5+3vlnuLNj5J2SisCsEKF4b9aJmMh8+620pLHbptRfcUv62RrMMmLNQNOj0+izbn5ZtiVeZssYn2DPUze1tQzxAVH7Dn77XOTULLfa5i49dAk4ied0ARLhUVO4ccCnwrcJ3z5tclQJ4dyyi6zj2jq1xaiuwoP89EuZj53HvyJ1vhtIZzufb8cm5tl3/FSsGG8aBACojTtXkxK6sZ5mXaHv2BkSsowxMF7OAn+r49eX3Aew1tfCHRTWs+kcYM8v8hjcUV7Sur4gHFoae8eVzpr54t1eJh1vUXXS1ka2W2RvU1v2piplr0KcfaHNys7A7ujelah+1Np03J1DadQXEiidkz3u+ud+PCohbHPfG80LEVXJW2qzDR87usTBwvQDxDYMToSKfqZG1AURQ+J1qMCh7tj72HtYuICFnKhANI12qsIkAK,iv:0c4rkpKLwxdaqCnOFFx1V/4loyN9Rz8stk46L+/vkPM=,tag:FvOX4gpVDJyG9y6LtH+EqQ==,type:str] +homepage: ENC[AES256_GCM,data:/HeCr0Sv9wVldUEMpkFV0XMOkET+kx3WW5g81T7t1RXnzygD3503BfN7an131oGN7ITwZSsQPEt5XF41PBII0xUa3NJmpym60ajwwpaBV9EhHX4RKab5cmBjyQXpyn5dAf46j7G84nVyR5yRt4JcUTo368IOR7xBGFpJnfK5Fa1gcTtV0l1vToyAYzB5mSG0v5P9SRK9F8yX4rCX77rkK4ah6BJ13gQxY+c5bohf78yxVm9IUQaVchi8rr/RuZQ9HfPkawweE/QYwvYpw1EdS9DLflTx1ih8FneOGXHJXrym/5ck0UVxmspr8Ue3SDeG8VAmmNOorlHclXjYS9JGI5Wq0W8GAPO4+T7gKiSMoLRX4ED8dJUYvmBSGJ5rVvQ2tciVUufrSTabaD+DQVEBcvMA1GxdbvhI5ERICMesF7L0SHCyWL6tmUzvtYj9ed/C1eFlf/SdMx0QZcWXsFMRKamvh/cACnjOmv487uqhrkEzZGI439KALbSXMaM5OGCBXWvNbcuFPZVxzS1K0Dt10YthURqJ64Z9CC2T6a+ug4WkNRtpsHJQ7V7WVpiwUyZ256rM6EFU30xpG9Npf/h24F2SqQk59rgiRsIdTvr+w5RYX7RsBZ8b1V5kZGwQj1FkWZKa1Sy4aW8/25jNh9Gh0/+pFQazawk2hDvF1Mq8+ypLzXN0OruTx+iDgk6gWaPNEZIq7CJF1pz0pEd8OVL7b8KYDUPo06pmgP6qIOCZPAJkuUn/QXBEIKdwkztaW5iXoCwnGml3jiRdrx6gOWdX4hp9MMJv9rJHBJRwokND/z2YvHFHXwyEoBl16bRRlob3w7fMfnQQk03H5ATKxl0r+cZp2OVBy+Jl9iAXQuTY8+lHpmLu5aYkACyz9Rnqk6N11VjG2QborwnI+yFSNlJ7jeb2dTl0yhnaYTIo81xReXzL+7xH2DOF2kXr4mpWXuMIHfRA/yxvnMu+9kszVfPZCNDexvuUI90qE0eHhjOdUAPjojUq0tf0fhUkKAo5dlxgfhNrZGJL9r7vUZ5iAEfFlwXzjdLCBgRo7velLnXl3gczqor6gkwrMs5G1KWemMCGaH5uiw9Pggcyi8wF38Xuujpzrn3b/4n/yJbAc8KUuN1lQDnn9JsctONZusnj4QhvxWkBvh2WmbKbcFKoVjFD6yd9gknW1Ohm1cOxPcVsiLDS57tTdtPCu+H4OGvIfRNXiqLA2xH5yBlNS/rR/nVXpv8mOpYaa+BO/PI3mvxFkK2mn2EllCfve/gEEJorLyxLmeU7LvsDreprQkxTQiItMwhtvWcL3D0wEf5oN/fo/wLsix6oGAISpJ0oj9GERqs7nzLbmDKbty9seqHM6hBbIYcNL1RGk4aWzA24avDf8kUaMjABmdr5cwGau3yMDQS6x85+NXNJUv2y5iJaB7uP4/BN7Y6kXG9p9lOV4ptvr4DgFGdyKQyv8bywoOqba+reOchqXT4u0z9ed5ac6IC2mbSHgf0Utk9DtZoPO00A6NZxWscENQRzVgmD3rNuqzF2XUyoNFvmj26mq6GwMEey83OnaZi1iPEn9izhVWXIIR89PHg6UfpbwgBFyUenMYxH/KkGqTwLJHL+KMiVsk3y9s0muh8PxOCzRotFznKnAD+miPipB+hWKbKE+KuY6/WYl8dG0pow5Tl/e2+fCrdBWia+tmdfOWS8Ie4zS8WaVOGV3c6nD/mpOjxZMKtk/kJO3bQtN63NUeQcAxF9/sEIuk6qMMjPLoiB9Mif4mub5cxTeakT8NGSSZ+QE3lZgSwiRR6Q2y5kmdGNgadF9K0agc4q3EQTdjGc6T9ddhuahd9C3Yl2eMuOt6DJTEHnzWbJLpZ4hQOphRBN/Lw9uSxXi6Ipg28=,iv:3uYfzQSSlHWPzY9hsw+gxfjDoi2RRzRNMzijWsT4hlg=,tag:wpK17BR103Xkotx7r23Kiw==,type:str] sops: kms: [] gcp_kms: [] @@ -50,8 +50,8 @@ sops: QXRUYWtGcWZCVW11U3VYRktuUjlCbDgKsTK4WhUza/JuoDTU3uATa6fq/8eYzxtb 9BUK1ddzx9Mghea9XBMS17YGtGmW800OsLBomb3SINnOFvejcnKf8Q== -----END AGE ENCRYPTED FILE----- - lastmodified: "2024-09-28T08:12:55Z" - mac: ENC[AES256_GCM,data:Q05BcO8it6kh2eghNFJL3XDqLg50hbVM6XktofMpxGxQUMGOIx+hgQBBYpctwn5DJ3/wOGeSH/DbCTWd+3nk6BwM1jrGdmf4WOEa82w/HSlDnMQNvlqiZTKlTXhn58XDsiF2ncCHv3Q3yuQdsfdwykhk6qo5rQUvA91FvtqfN4Y=,iv:ev80hlkXlQezuHTu5Ohn+0UISuaT6SNUWymxFzDQEwo=,tag:+i/6zX1rlpFOHOT/zOANcQ==,type:str] + lastmodified: "2024-09-29T06:05:56Z" + mac: ENC[AES256_GCM,data:FEWOtbQVjx49Bi0+z6NBz9t1bDHwI54tXehNy+6HRlsTJs+hhCG2nWmDq4EzwH2NI00leRy83gqCKKPeiyrtAAcn52EspaUYS6dca2luW6PA7R9n6+7AeK/qd++Ar/XkmOfdudlxkqk8hjEr075TTiXmKGUOIsc3+m1pZRRuOb4=,iv:XdtdFlxnQokGkR0K1nxEWPRRRX+8pZyQISNDjrPbK1U=,tag:+JLWkZOJaaE67j0HP0VJLg==,type:str] pgp: [] unencrypted_suffix: _unencrypted version: 3.8.1