Merge branch 'refactor'

This commit is contained in:
William 2025-10-17 07:26:14 -03:00
commit ee1ed3b88e
8 changed files with 91 additions and 38 deletions

View file

@ -1,11 +1,14 @@
{ inputs, ... }: { inputs, ... }:
let let
utils = import ./utils.nix { inherit inputs; }; lib = inputs.nixpkgs.lib;
inherit (utils) mkHome; utils = import ./utils.nix { inherit inputs lib; };
inherit (utils) mkUser;
in in
{ {
flake.homeConfigurations = { flake.homeConfigurations = {
"user@rotterdam" = mkHome { "user@rotterdam" = mkUser {
username = "user"; username = "user";
tags = [ tags = [
"btop" "btop"
@ -20,7 +23,7 @@ in
]; ];
}; };
"user@io" = mkHome { "user@io" = mkUser {
username = "user"; username = "user";
tags = [ tags = [
"btop" "btop"

View file

@ -1,5 +1,13 @@
{ ... }: {
config,
lib,
inputs,
...
}:
let
utils = import ../../utils.nix { inherit inputs lib; };
inherit (utils) mkNginxVHosts;
in
{ {
services.forgejo = { services.forgejo = {
enable = true; enable = true;
@ -18,4 +26,10 @@
actions.ENABLED = false; actions.ENABLED = false;
}; };
}; };
services.nginx.virtualHosts = mkNginxVHosts {
acmeHost = "baduhai.dev";
domains."git.baduhai.dev".locations."/".proxyPass =
"http://unix:${config.services.forgejo.settings.server.HTTP_ADDR}:/";
};
} }

View file

@ -1,8 +1,16 @@
{ ... }: { lib, inputs, ... }:
let
utils = import ../../utils.nix { inherit inputs lib; };
inherit (utils) mkNginxVHosts;
in
{ {
services.jellyfin = { services.jellyfin = {
enable = true; enable = true;
openFirewall = true; openFirewall = true;
}; };
services.nginx.virtualHosts = mkNginxVHosts {
acmeHost = "baduhai.dev";
domains."jellyfin.baduhai.dev".locations."/".proxyPass = "http://127.0.0.1:8096/";
};
} }

View file

@ -1,5 +1,8 @@
{ ... }: { lib, inputs, ... }:
let
utils = import ../../utils.nix { inherit inputs lib; };
inherit (utils) mkNginxVHosts;
in
{ {
virtualisation.oci-containers.containers."librespeed" = { virtualisation.oci-containers.containers."librespeed" = {
image = "lscr.io/linuxserver/librespeed:latest"; image = "lscr.io/linuxserver/librespeed:latest";
@ -11,4 +14,9 @@
"--label=io.containers.autoupdate=registry" "--label=io.containers.autoupdate=registry"
]; ];
}; };
services.nginx.virtualHosts = mkNginxVHosts {
acmeHost = "baduhai.dev";
domains."speedtest.baduhai.dev".locations."/".proxyPass = "http://librespeed:80/";
};
} }

View file

@ -1,5 +1,13 @@
{ config, lib, ... }: {
config,
lib,
inputs,
...
}:
let
utils = import ../../utils.nix { inherit inputs lib; };
inherit (utils) mkNginxVHosts;
in
{ {
security.acme = { security.acme = {
acceptTerms = true; acceptTerms = true;
@ -26,28 +34,10 @@
recommendedOptimisation = true; recommendedOptimisation = true;
recommendedProxySettings = true; recommendedProxySettings = true;
recommendedTlsSettings = true; recommendedTlsSettings = true;
virtualHosts = virtualHosts = mkNginxVHosts {
let acmeHost = "baduhai.dev";
commonVHostConfig = { domains."_".locations."/".return = "444";
useACMEHost = "baduhai.dev"; };
forceSSL = true;
kTLS = true;
};
in
lib.mapAttrs (_: lib.recursiveUpdate commonVHostConfig) {
"_".locations."/".return = "444";
"cloud.baduhai.dev" = { };
"git.baduhai.dev".locations."/".proxyPass =
"http://unix:${config.services.forgejo.settings.server.HTTP_ADDR}:/";
"jellyfin.baduhai.dev".locations."/".proxyPass = "http://127.0.0.1:8096/";
"office.baduhai.dev".locations."/" = {
proxyPass = "http://unix:/run/coolwsd/coolwsd.sock";
proxyWebsockets = true;
};
"pass.baduhai.dev".locations."/".proxyPass =
"http://unix:${config.services.vaultwarden.config.ROCKET_ADDRESS}:/";
"speedtest.baduhai.dev".locations."/".proxyPass = "http://librespeed:80/";
};
}; };
users.users.nginx.extraGroups = [ "acme" ]; users.users.nginx.extraGroups = [ "acme" ];

View file

@ -1,5 +1,13 @@
{ ... }: {
config,
lib,
inputs,
...
}:
let
utils = import ../../utils.nix { inherit inputs lib; };
inherit (utils) mkNginxVHosts;
in
{ {
services.vaultwarden = { services.vaultwarden = {
enable = true; enable = true;
@ -9,4 +17,10 @@
ROCKET_ADDRESS = "/run/vaultwarden/vaultwarden.sock"; ROCKET_ADDRESS = "/run/vaultwarden/vaultwarden.sock";
}; };
}; };
services.nginx.virtualHosts = mkNginxVHosts {
acmeHost = "baduhai.dev";
domains."pass.baduhai.dev".locations."/".proxyPass =
"http://unix:${config.services.vaultwarden.config.ROCKET_ADDRESS}:/";
};
} }

View file

@ -1,6 +1,7 @@
{ inputs, ... }: { inputs, ... }:
let let
utils = import ./utils.nix { inherit inputs; }; lib = inputs.nixpkgs.lib;
utils = import ./utils.nix { inherit inputs lib; };
inherit (utils) mkHost; inherit (utils) mkHost;
in in
{ {

View file

@ -1,4 +1,4 @@
{ inputs }: { inputs, lib }:
let let
inherit (inputs) inherit (inputs)
self self
@ -172,4 +172,19 @@ in
} }
]; ];
}; };
# Nginx virtual host utilities
mkNginxVHosts =
{
acmeHost,
domains,
}:
let
commonVHostConfig = {
useACMEHost = acmeHost;
forceSSL = true;
kTLS = true;
};
in
lib.mapAttrs (_: lib.recursiveUpdate commonVHostConfig) domains;
} }