homelab tinkering 3
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
{
|
{
|
||||||
server = {
|
server = {
|
||||||
|
email = "adam@cnst.dev";
|
||||||
|
domain = "cnst.dev";
|
||||||
caddy = {
|
caddy = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -119,6 +119,7 @@
|
|||||||
};
|
};
|
||||||
server = {
|
server = {
|
||||||
imports = [
|
imports = [
|
||||||
|
./server
|
||||||
./server/caddy
|
./server/caddy
|
||||||
./server/vaultwarden
|
./server/vaultwarden
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
20
modules/server/default.nix
Normal file
20
modules/server/default.nix
Normal 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
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user