refactor
This commit is contained in:
@@ -67,11 +67,6 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
bin = {
|
||||
enable = true;
|
||||
subdomain = "bin";
|
||||
};
|
||||
|
||||
workout-tracker = {
|
||||
enable = true;
|
||||
subdomain = "fit";
|
||||
@@ -104,4 +99,12 @@ in
|
||||
|
||||
tailscale.enable = true;
|
||||
};
|
||||
|
||||
services = {
|
||||
hastebin = {
|
||||
enable = true;
|
||||
subdomain = "bin";
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
{ lib, config, inputs, ... }:
|
||||
let
|
||||
cfg = config.modules.services.bin;
|
||||
fqdn = "${cfg.subdomain}.${config.networking.domain}";
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
inputs.hastebin.nixosModules.default
|
||||
];
|
||||
|
||||
options.modules.services.bin = {
|
||||
enable = lib.mkEnableOption "Enable Rustypaste";
|
||||
subdomain = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
};
|
||||
port = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 3600;
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.hastebin = {
|
||||
enable = true;
|
||||
settings = {
|
||||
port = cfg.port;
|
||||
host = "::1";
|
||||
max_size = "1 GiB";
|
||||
mime_overrides = {
|
||||
"text/plain" = [
|
||||
"log"
|
||||
"txt"
|
||||
"diff"
|
||||
"sh"
|
||||
"rs"
|
||||
"toml"
|
||||
"cr"
|
||||
"nix"
|
||||
"rb"
|
||||
"ts"
|
||||
"tsx"
|
||||
"jsx"
|
||||
];
|
||||
};
|
||||
auth_tokens_file = "/var/secrets/hastebin-tokens";
|
||||
};
|
||||
};
|
||||
|
||||
modules.services.webserver = {
|
||||
enable = lib.mkDefault true;
|
||||
vHosts.${fqdn} = {
|
||||
proxyBuffering = false;
|
||||
locations."/" = {
|
||||
proxyPort = cfg.port;
|
||||
extraConfig = ''
|
||||
client_max_body_size 0;
|
||||
proxy_send_timeout 300;
|
||||
proxy_read_timeout 300;
|
||||
send_timeout 300;
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -12,7 +12,7 @@
|
||||
./tailscale.nix
|
||||
./workout-tracker.nix
|
||||
./gotosocial.nix
|
||||
./bin.nix
|
||||
./hastebin.nix
|
||||
./workout-sync.nix
|
||||
];
|
||||
}
|
||||
|
||||
55
modules/services/hastebin.nix
Normal file
55
modules/services/hastebin.nix
Normal file
@@ -0,0 +1,55 @@
|
||||
{ lib, config, inputs, ... }:
|
||||
let
|
||||
cfg = config.services.hastebin;
|
||||
fqdn = "${cfg.subdomain}.${config.networking.domain}";
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
inputs.hastebin.nixosModules.default
|
||||
];
|
||||
|
||||
options.services.hastebin.subdomain = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.hastebin.settings = lib.mkDefault {
|
||||
max_size = "1 GiB";
|
||||
host = "::1";
|
||||
port = 3600;
|
||||
mime_overrides = {
|
||||
"text/plain" = [
|
||||
"log"
|
||||
"txt"
|
||||
"diff"
|
||||
"sh"
|
||||
"rs"
|
||||
"toml"
|
||||
"cr"
|
||||
"nix"
|
||||
"rb"
|
||||
"ts"
|
||||
"tsx"
|
||||
"jsx"
|
||||
];
|
||||
};
|
||||
auth_tokens_file = "/var/secrets/hastebin-tokens";
|
||||
};
|
||||
|
||||
modules.services.webserver = {
|
||||
enable = lib.mkDefault true;
|
||||
vHosts.${fqdn} = {
|
||||
proxyBuffering = false;
|
||||
locations."/" = {
|
||||
proxyPort = cfg.settings.port;
|
||||
extraConfig = ''
|
||||
client_max_body_size 0;
|
||||
proxy_send_timeout 300;
|
||||
proxy_read_timeout 300;
|
||||
send_timeout 300;
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user