more rearchitecting folders

This commit is contained in:
Noah Masur
2025-02-14 15:36:54 -05:00
parent c7f20e958b
commit 798bac75e8
37 changed files with 164 additions and 42 deletions

View File

@ -1,11 +1,11 @@
{ config, ... }:
{ config, lib, ... }:
let
cfg = config.nmasur.profiles.aws;
in
{
options.nmasur.profiles.nmasur.aws.enable = lib.mkEnableOption "AWS EC2";
options.nmasur.profiles.aws.enable = lib.mkEnableOption "AWS EC2";
config = lib.mkIf cfg.enable {

View File

@ -0,0 +1,43 @@
{
config,
lib,
...
}:
let
cfg = config.nmasur.profiles.communications;
in
{
options.nmasur.profiles.communications.enable =
lib.mkEnableOption "communications server configuration";
config = lib.mkIf cfg.enable {
nmasur.presets = {
programs = {
msmtp.enable = lib.mkDefault true;
};
services = {
actualbudget.enable = lib.mkDefault true;
caddy.enable = lib.mkDefault true;
cloudflare.enable = lib.mkDefault true;
cloudflared.enable = lib.mkDefault true;
gitea.enable = lib.mkDefault true;
grafana.enable = lib.mkDefault true;
influxdb2.enable = lib.mkDefault true;
minecraft-server.enable = lib.mkDefault true;
n8n.enable = lib.mkDefault true;
nix-autoupgrade.enable = lib.mkDefault true; # On by default for communications
ntfy-sh.enable = lib.mkDefault true;
postgresql.enable = lib.mkDefault true;
thelounge.enable = lib.mkDefault true;
uptime-kuma.enable = lib.mkDefault true;
vaultwarden.enable = lib.mkDefault true;
victoriametrics.enable = lib.mkDefault true;
};
};
};
}

View File

@ -18,5 +18,7 @@ in
# Use latest released Linux kernel by default
boot.kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
nmasur.presets.services.nix-autoupgrade.enable = lib.mkDefault true;
};
}

View File

@ -0,0 +1,42 @@
{
config,
lib,
...
}:
let
cfg = config.nmasur.profiles.nas;
in
{
options.nmasur.profiles.nas.enable = lib.mkEnableOption "NAS (storage device) configuration";
config = lib.mkIf cfg.enable {
nmasur.presets = {
zfs.enable = lib.mkDefault true;
programs = {
msmtp.enable = lib.mkDefault true;
};
services = {
arr.enable = lib.mkDefault true;
audiobookshelf.enable = lib.mkDefault true;
bind.enable = lib.mkDefault true;
caddy.enable = lib.mkDefault true;
calibre-web.enable = lib.mkDefault true;
cloudflare.enable = lib.mkDefault true;
cloudflared.enable = lib.mkDefault true;
filebrowser.enable = lib.mkDefault true;
immich.enable = lib.mkDefault true;
jellyfin.enable = lib.mkDefault true;
nextcloud.enable = lib.mkDefault true;
nix-autoupgrade.enable = lib.mkDefault false; # Off by default for NAS
paperless.enable = lib.mkDefault true;
samba.enable = lib.mkDefault true;
postgresql.enable = lib.mkDefault true;
};
};
};
}

View File

@ -16,6 +16,8 @@ in
networking.firewall.allowPing = lib.mkDefault true;
nmasur.presets.services.openssh.enable = lib.mkDefault true;
# Implement a simple fail2ban service for sshd
services.sshguard.enable = lib.mkDefault true;