homelab tinkering 3

This commit is contained in:
2025-07-16 06:59:29 +02:00
parent 5d81391bd8
commit 23e793b784
4 changed files with 43 additions and 5 deletions

View File

@@ -1,5 +1,7 @@
{ {
server = { server = {
email = "adam@cnst.dev";
domain = "cnst.dev";
caddy = { caddy = {
enable = true; enable = true;
}; };

View File

@@ -119,6 +119,7 @@
}; };
server = { server = {
imports = [ imports = [
./server
./server/caddy ./server/caddy
./server/vaultwarden ./server/vaultwarden
]; ];

View File

@@ -12,11 +12,11 @@ in {
server.caddy.enable = mkEnableOption "Enables caddy"; server.caddy.enable = mkEnableOption "Enables caddy";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
# age.secrets.cloudflare-env = { age.secrets.cloudflare-env = {
# file = "${self}/secrets/cloudflare-env.age"; file = "${self}/secrets/cloudflare-env.age";
# owner = "caddy"; owner = "caddy";
# mode = "400"; mode = "400";
# }; };
networking.firewall = let networking.firewall = let
ports = [80 443]; ports = [80 443];
in { in {
@@ -24,6 +24,21 @@ in {
allowedUDPPorts = ports; allowedUDPPorts = ports;
}; };
security.acme = {
acceptTerms = true;
defaults.email = config.server.email;
certs.${config.server.domain} = {
reloadServices = ["caddy.service"];
domain = "${config.server.domain}";
extraDomainNames = ["*.${config.server.domain}"];
dnsProvider = "cloudflare";
dnsResolver = "1.1.1.1:53";
dnsPropagationCheck = true;
group = config.services.caddy.group;
environmentFile = config.age.secrets.cloudflare-env.path;
};
};
services.caddy = { services.caddy = {
enable = true; enable = true;
# environmentFile = config.age.secrets.cloudflare-env.path; # environmentFile = config.age.secrets.cloudflare-env.path;

View File

@@ -0,0 +1,20 @@
{lib, ...}: let
inherit (lib) mkOption types;
in {
options.server = {
email = mkOption {
default = "";
type = types.str;
description = ''
Email name to be used to access the server services via Caddy reverse proxy
'';
};
domain = mkOption {
default = "";
type = types.str;
description = ''
Base domain name to be used to access the server services via Caddy reverse proxy
'';
};
};
}