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

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

View File

@@ -12,11 +12,11 @@ in {
server.caddy.enable = mkEnableOption "Enables caddy";
};
config = mkIf cfg.enable {
# age.secrets.cloudflare-env = {
# file = "${self}/secrets/cloudflare-env.age";
# owner = "caddy";
# mode = "400";
# };
age.secrets.cloudflare-env = {
file = "${self}/secrets/cloudflare-env.age";
owner = "caddy";
mode = "400";
};
networking.firewall = let
ports = [80 443];
in {
@@ -24,6 +24,21 @@ in {
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 = {
enable = true;
# 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
'';
};
};
}