mirror of
https://github.com/nmasur/dotfiles
synced 2025-07-05 22:00:14 +00:00
more rearchitecting folders
This commit is contained in:
@ -1,18 +0,0 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.nmasur.presets.programs.;
|
||||
in
|
||||
|
||||
{
|
||||
|
||||
options.nmasur.presets.programs..enable = lib.mkEnableOption "";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
};
|
||||
}
|
@ -35,7 +35,7 @@ in
|
||||
|
||||
# Normally I block all requests not coming from Cloudflare, so I have to also
|
||||
# allow my local network.
|
||||
config.nmasur.presets.services.caddy.cidrAllowlist = [ "192.168.0.0/16" ];
|
||||
nmasur.presets.services.caddy.cidrAllowlist = [ "192.168.0.0/16" ];
|
||||
|
||||
services.bind = {
|
||||
|
||||
|
@ -63,7 +63,7 @@ in
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
# Forces Caddy to error if coming from a non-Cloudflare IP
|
||||
config.nmasur.presets.services.caddy.cidrAllowlist = cloudflareIpRanges;
|
||||
nmasur.presets.services.caddy.cidrAllowlist = cloudflareIpRanges;
|
||||
|
||||
# Tell Caddy to use Cloudflare DNS for ACME challenge validation
|
||||
services.caddy.package = pkgs.caddy.withPlugins {
|
||||
|
@ -26,7 +26,7 @@ in
|
||||
maxUploadSize = "50G";
|
||||
config = {
|
||||
adminpassFile = config.secrets.nextcloud.dest;
|
||||
dbtype = "pgsql";
|
||||
dbtype = "pgsql"; # Enables postgresql
|
||||
};
|
||||
settings = {
|
||||
default_phone_region = "US";
|
||||
|
@ -6,12 +6,12 @@
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.nmasur.presets.services.zfs;
|
||||
cfg = config.nmasur.presets.zfs;
|
||||
in
|
||||
|
||||
{
|
||||
|
||||
options.nmasur.presets.services.zfs.enable = lib.mkEnableOption "ZFS file system";
|
||||
options.nmasur.presets.zfs.enable = lib.mkEnableOption "ZFS file system";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
@ -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 {
|
||||
|
||||
|
43
platforms/nixos/modules/nmasur/profiles/communications.nix
Normal file
43
platforms/nixos/modules/nmasur/profiles/communications.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
}
|
@ -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;
|
||||
|
||||
};
|
||||
}
|
||||
|
42
platforms/nixos/modules/nmasur/profiles/nas.nix
Normal file
42
platforms/nixos/modules/nmasur/profiles/nas.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
}
|
@ -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;
|
||||
|
||||
|
Reference in New Issue
Block a user