14 Commits

Author SHA1 Message Date
github-actions[bot]
85f09b1126 flake.lock: Update
Flake lock file updates:

• Updated input 'helix':
    'github:helix-editor/helix/bfcbef10c513108c7b43317569416c2eefc4ed44' (2025-09-30)
  → 'github:helix-editor/helix/5b0563419eeeaf0595c848865c46be4abad246a7' (2025-10-07)
• Updated input 'helix/rust-overlay':
    'github:oxalica/rust-overlay/d342e8b5fd88421ff982f383c853f0fc78a847ab' (2025-02-27)
  → 'github:oxalica/rust-overlay/1d7cbdaad90f8a5255a89a6eddd8af24dc89cafe' (2025-10-05)
• Updated input 'home-manager':
    'github:nix-community/home-manager/edafd6da1936426708f1be0b1a4288007f16639a' (2025-10-04)
  → 'github:nix-community/home-manager/d305eece827a3fe317a2d70138f53feccaf890a1' (2025-10-10)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/7df7ff7d8e00218376575f0acdcc5d66741351ee' (2025-10-02)
  → 'github:nixos/nixpkgs/0b4defa2584313f3b781240b29d61f6f9f7e0df3' (2025-10-09)
• Updated input 'nur':
    'github:nix-community/nur/d127643d50ec16f47ca67c9695b0200ea8b7cfd1' (2025-10-04)
  → 'github:nix-community/nur/886a5646695563cbae3c1e10369c6070c7645e73' (2025-10-11)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/d96dda76c1f1827634ddf28d386feabd2d135d21' (2025-10-01)
  → 'github:nix-community/NixOS-WSL/7c0c0f4c3a51761434f18209fa9499b8579ff730' (2025-10-07)
2025-10-11 03:51:41 +00:00
github-actions[bot]
29c7a27135 flake.lock: Update
Flake lock file updates:

• Updated input 'helix':
    'github:helix-editor/helix/109c812233e442addccf1739dec4406248bd3244' (2025-09-25)
  → 'github:helix-editor/helix/bfcbef10c513108c7b43317569416c2eefc4ed44' (2025-09-30)
• Updated input 'home-manager':
    'github:nix-community/home-manager/bc2afee55bc5d3b825287829d6592b9cc1405aad' (2025-09-26)
  → 'github:nix-community/home-manager/edafd6da1936426708f1be0b1a4288007f16639a' (2025-10-04)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/e643668fd71b949c53f8626614b21ff71a07379d' (2025-09-24)
  → 'github:nixos/nixpkgs/7df7ff7d8e00218376575f0acdcc5d66741351ee' (2025-10-02)
• Updated input 'nur':
    'github:nix-community/nur/c898a1ed2da0164bc6f395f44aad52edb84c84d4' (2025-09-27)
  → 'github:nix-community/nur/d127643d50ec16f47ca67c9695b0200ea8b7cfd1' (2025-10-04)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/1bfb978f2f6261b6086e04af17f9418e1fe36d70' (2025-09-25)
  → 'github:nix-community/NixOS-WSL/d96dda76c1f1827634ddf28d386feabd2d135d21' (2025-10-01)
2025-10-04 03:49:26 +00:00
github-actions[bot]
3523f20665 flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/8df64f819698c1fee0c2969696f54a843b2231e8' (2025-08-22)
  → 'github:lnl7/nix-darwin/c48e963a5558eb1c3827d59d21c5193622a1477c' (2025-09-25)
• Updated input 'disko':
    'github:nix-community/disko/bafad29f89e83b2d861b493aa23034ea16595560' (2025-08-25)
  → 'github:nix-community/disko/67ff9807dd148e704baadbd4fd783b54282ca627' (2025-09-19)
• Updated input 'helix':
    'github:helix-editor/helix/77ff51caa440b1066e0a1920007ab5e148dd4856' (2025-08-29)
  → 'github:helix-editor/helix/109c812233e442addccf1739dec4406248bd3244' (2025-09-25)
• Updated input 'home-manager':
    'github:nix-community/home-manager/77a71380c38fb2a440b4b5881bbc839f6230e1cb' (2025-08-29)
  → 'github:nix-community/home-manager/bc2afee55bc5d3b825287829d6592b9cc1405aad' (2025-09-26)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/dfb2f12e899db4876308eba6d93455ab7da304cd' (2025-08-28)
  → 'github:nixos/nixpkgs/e643668fd71b949c53f8626614b21ff71a07379d' (2025-09-24)
• Updated input 'nur':
    'github:nix-community/nur/e82a8b0095f54edb6bbbb1d862f3da502dca1396' (2025-08-30)
  → 'github:nix-community/nur/c898a1ed2da0164bc6f395f44aad52edb84c84d4' (2025-09-27)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/203a7b463f307c60026136dd1191d9001c43457f' (2025-08-15)
  → 'github:nix-community/NixOS-WSL/1bfb978f2f6261b6086e04af17f9418e1fe36d70' (2025-09-25)
2025-09-27 03:51:21 +00:00
Noah Masur
774773c748 fix: ghostty keybinds invalid after update 2025-09-23 15:40:01 -04:00
Noah Masur
c85d292d1a comment out flake check for neovim to try to fix gh actions 2025-09-20 11:28:26 -04:00
Noah Masur
78cc3559f6 fix: renamed settings for logind 2025-09-20 11:27:55 -04:00
Noah Masur
a35e758c2f python language server 2025-09-20 09:57:20 -04:00
Noah Masur
72f30cbab1 add chawan web browser 2025-09-20 09:57:20 -04:00
Noah Masur
17b30de163 fix ghostty on darwin 2025-09-20 09:57:20 -04:00
Noah Masur
8b3ab57b34 enable stalwart-mail for contacts 2025-09-17 03:35:20 +00:00
Noah Masur
483833cdcb fix: must update stateversion to fix meilisearch out of date 2025-09-17 02:45:46 +00:00
Noah Masur
57e593aabc fix: only sync gitea repos to backups 2025-09-16 11:47:46 +00:00
Noah Masur
b119256ba6 update cloudflare caddy 2025-09-16 11:45:03 +00:00
Noah Masur
54948353dd enable paperless email processing to pdf 2025-09-16 11:44:56 +00:00
16 changed files with 127 additions and 61 deletions

48
flake.lock generated
View File

@@ -22,11 +22,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1757430124, "lastModified": 1758805352,
"narHash": "sha256-MhDltfXesGH8VkGv3hmJ1QEKl1ChTIj9wmGAFfWj/Wk=", "narHash": "sha256-BHdc43Lkayd+72W/NXRKHzX5AZ+28F3xaUs3a88/Uew=",
"owner": "lnl7", "owner": "lnl7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "830b3f0b50045cf0bcfd4dab65fad05bf882e196", "rev": "c48e963a5558eb1c3827d59d21c5193622a1477c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -43,11 +43,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1757508292, "lastModified": 1758287904,
"narHash": "sha256-7lVWL5bC6xBIMWWDal41LlGAG+9u2zUorqo3QCUL4p4=", "narHash": "sha256-IGmaEf3Do8o5Cwp1kXBN1wQmZwQN3NLfq5t4nHtVtcU=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "146f45bee02b8bd88812cfce6ffc0f933788875a", "rev": "67ff9807dd148e704baadbd4fd783b54282ca627",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -156,11 +156,11 @@
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
"lastModified": 1757688164, "lastModified": 1759850138,
"narHash": "sha256-IfSIZM7/4MwzxF769jVSBeB8JF4fHjYqaoan58HHw1E=", "narHash": "sha256-fYHIxjTvVIAEDWzenUROuzDPxy1rBCXZNPgh4b1dfgo=",
"owner": "helix-editor", "owner": "helix-editor",
"repo": "helix", "repo": "helix",
"rev": "c531b7a4faffe727adf78e1d3c2a54c0d85d0c0c", "rev": "5b0563419eeeaf0595c848865c46be4abad246a7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -176,11 +176,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1757698511, "lastModified": 1760130406,
"narHash": "sha256-UqHHGydF/q3jfYXCpvYLA0TWtvByOp1NwOKCUjhYmPs=", "narHash": "sha256-GKMwBaFRw/C1p1VtjDz4DyhyzjKUWyi1K50bh8lgA2E=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "a3fcc92180c7462082cd849498369591dfb20855", "rev": "d305eece827a3fe317a2d70138f53feccaf890a1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -306,11 +306,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1757487488, "lastModified": 1760038930,
"narHash": "sha256-zwE/e7CuPJUWKdvvTCB7iunV4E/+G0lKfv4kk/5Izdg=", "narHash": "sha256-Oncbh0UmHjSlxO7ErQDM3KM0A5/Znfofj2BSzlHLeVw=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "ab0f3607a6c7486ea22229b92ed2d355f1482ee0", "rev": "0b4defa2584313f3b781240b29d61f6f9f7e0df3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -344,11 +344,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1757733608, "lastModified": 1760150127,
"narHash": "sha256-k8k4VpFuMMiRGBKaut2YIUCJsu0DR/QDV9058C96/Xw=", "narHash": "sha256-McDmxx/bruodgHLD4sFIl0fKkEkNj5VE3DglImfslrk=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nur", "repo": "nur",
"rev": "8a93aa245ea5190634a6eaaa0e6a4faaba850f69", "rev": "886a5646695563cbae3c1e10369c6070c7645e73",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -382,11 +382,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1740623427, "lastModified": 1759631821,
"narHash": "sha256-3SdPQrZoa4odlScFDUHd4CUPQ/R1gtH4Mq9u8CBiK8M=", "narHash": "sha256-V8A1L0FaU/aSXZ1QNJScxC12uP4hANeRBgI4YdhHeRM=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "d342e8b5fd88421ff982f383c853f0fc78a847ab", "rev": "1d7cbdaad90f8a5255a89a6eddd8af24dc89cafe",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -484,11 +484,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1757671225, "lastModified": 1759833546,
"narHash": "sha256-ZzoQXe7GV7QX3B3Iw59BogmrtHSP5Ig7MAPPD0cOFW4=", "narHash": "sha256-rOfkgIiiZNPUbf61OqEym60wXEODeDG8XH+gV/SUoUc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NixOS-WSL", "repo": "NixOS-WSL",
"rev": "42666441c3ddf34a8583a77f07a2c7cae32513c3", "rev": "7c0c0f4c3a51761434f18209fa9499b8579ff730",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -114,6 +114,7 @@
bookmarks = "keep.${baseName}"; bookmarks = "keep.${baseName}";
books = "books.${baseName}"; books = "books.${baseName}";
budget = "money.${baseName}"; budget = "money.${baseName}";
contacts = "contacts.${baseName}";
content = "cloud.${baseName}"; content = "cloud.${baseName}";
download = "download.${baseName}"; download = "download.${baseName}";
files = "files.${baseName}"; files = "files.${baseName}";
@@ -246,30 +247,30 @@
default = lib.pkgsBySystem.${system}.nmasur.dotfiles-devshell; default = lib.pkgsBySystem.${system}.nmasur.dotfiles-devshell;
}); });
checks = lib.forAllSystems ( # checks = lib.forAllSystems (
system: # system:
let # let
pkgs = import nixpkgs { # pkgs = import nixpkgs {
inherit system; # inherit system;
overlays = lib.overlays; # overlays = lib.overlays;
}; # };
in # in
{ # {
neovim = # neovim =
pkgs.runCommand "neovim-check-health" { buildInputs = [ inputs.self.packages.${system}.neovim ]; } # pkgs.runCommand "neovim-check-health" { buildInputs = [ inputs.self.packages.${system}.neovim ]; }
'' # ''
mkdir -p $out # mkdir -p $out
export HOME=$TMPDIR # export HOME=$TMPDIR
nvim -c "checkhealth" -c "write $out/health.log" -c "quitall" # nvim -c "checkhealth" -c "write $out/health.log" -c "quitall"
# Check for errors inside the health log # # Check for errors inside the health log
if $(grep "ERROR" $out/health.log); then # if $(grep "ERROR" $out/health.log); then
cat $out/health.log # cat $out/health.log
exit 1 # exit 1
fi # fi
''; # '';
} # }
); # );
formatter = lib.forAllSystems ( formatter = lib.forAllSystems (
system: system:

View File

@@ -31,10 +31,10 @@ rec {
power-user.enable = true; power-user.enable = true;
}; };
nmasur.presets.programs.helix.enable = true; nmasur.presets.programs.helix.enable = true;
home.stateVersion = "23.05"; home.stateVersion = "25.05";
}; };
system.stateVersion = "23.05"; system.stateVersion = "25.05";
# File systems must be declared in order to boot # File systems must be declared in order to boot
# # This is the root filesystem containing NixOS # # This is the root filesystem containing NixOS

View File

@@ -21,7 +21,7 @@ in
programs.ghostty = { programs.ghostty = {
enable = true; enable = true;
package = if pkgs.stdenv.isDarwin then pkgs.nur.repos.DimitarNestorov.ghostty else pkgs.ghostty; package = if pkgs.stdenv.isDarwin then null else pkgs.ghostty;
enableFishIntegration = true; enableFishIntegration = true;
enableBashIntegration = true; enableBashIntegration = true;
@@ -37,8 +37,8 @@ in
fullscreen = if pkgs.stdenv.isDarwin then true else false; fullscreen = if pkgs.stdenv.isDarwin then true else false;
keybind = [ keybind = [
"super+t=unbind" # Pass super-t to underlying tool (e.g. zellij tabs) "super+t=unbind" # Pass super-t to underlying tool (e.g. zellij tabs)
"super+shift+]=unbind" "super+shift+bracket_right=unbind"
"super+shift+[=unbind" "super+shift+bracket_left=unbind"
"ctrl+tab=unbind" "ctrl+tab=unbind"
"ctrl+shift+tab=unbind" "ctrl+shift+tab=unbind"
"ctrl+tab=text:\\x1b[9;5u" "ctrl+tab=text:\\x1b[9;5u"

View File

@@ -46,6 +46,10 @@ in
command = "${pkgs.nixd}/bin/nixd"; command = "${pkgs.nixd}/bin/nixd";
}; };
language-server.ty = {
command = "${pkgs.ty}/bin/ty";
};
language-server.fish-lsp = { language-server.fish-lsp = {
command = "${pkgs.fish-lsp}/bin/fish-lsp"; command = "${pkgs.fish-lsp}/bin/fish-lsp";
}; };
@@ -59,7 +63,8 @@ in
}; };
language-server.terraform-ls = { language-server.terraform-ls = {
command = "${lib.getExe pkgs.terraform-ls} serve"; command = "${lib.getExe pkgs.terraform-ls}";
args = [ "serve" ];
}; };
language-server.bash-language-server = { language-server.bash-language-server = {

View File

@@ -57,7 +57,7 @@ function obj:init()
self.launcher:bind("ctrl", "space", function() end) self.launcher:bind("ctrl", "space", function() end)
self.launcher:bind("", "return", function() self.launcher:bind("", "return", function()
-- self:switch("@wezterm@") -- self:switch("@wezterm@")
self:switch("@ghostty@") self:switch("/Applications/Ghostty.app")
end) end)
self.launcher:bind("", "C", function() self.launcher:bind("", "C", function()
self:switch("Calendar.app") self:switch("Calendar.app")

View File

@@ -23,7 +23,6 @@ in
{ {
discord = "${pkgs.discord}/Applications/Discord.app"; discord = "${pkgs.discord}/Applications/Discord.app";
firefox = "${pkgs.firefox-unwrapped}/Applications/Firefox.app"; firefox = "${pkgs.firefox-unwrapped}/Applications/Firefox.app";
ghostty = "${config.programs.ghostty.package}/Applications/Ghostty.app";
obsidian = "${pkgs.obsidian}/Applications/Obsidian.app"; obsidian = "${pkgs.obsidian}/Applications/Obsidian.app";
slack = "${pkgs.slack}/Applications/Slack.app"; slack = "${pkgs.slack}/Applications/Slack.app";
wezterm = "${pkgs.wezterm}/Applications/WezTerm.app"; wezterm = "${pkgs.wezterm}/Applications/WezTerm.app";

View File

@@ -29,6 +29,8 @@ in
pkgs.charm # Manage account and filesystem pkgs.charm # Manage account and filesystem
pkgs.pop # Send emails from a TUI pkgs.pop # Send emails from a TUI
pkgs.chawan # Browser TUI
]; ];
programs.gh-dash.enable = lib.mkDefault true; programs.gh-dash.enable = lib.mkDefault true;

View File

@@ -6,7 +6,6 @@
}: }:
let let
inherit (config.nmasur.settings) username;
cfg = config.nmasur.presets.services.dock; cfg = config.nmasur.presets.services.dock;
in in
@@ -50,7 +49,7 @@ in
"/System/Applications/Messages.app" "/System/Applications/Messages.app"
"/System/Applications/Mail.app" "/System/Applications/Mail.app"
"/Applications/zoom.us.app" "/Applications/zoom.us.app"
"${config.home-manager.users.${username}.programs.ghostty.package}/Applications/Ghostty.app" "/Applications/Ghostty.app"
"${pkgs.discord}/Applications/Discord.app" "${pkgs.discord}/Applications/Discord.app"
"${pkgs.obsidian}/Applications/Obsidian.app" "${pkgs.obsidian}/Applications/Obsidian.app"
]; ];

View File

@@ -39,6 +39,7 @@ in
"scroll-reverser" # Different scroll style for mouse vs. trackpad "scroll-reverser" # Different scroll style for mouse vs. trackpad
"notunes" # Don't launch Apple Music with the play button "notunes" # Don't launch Apple Music with the play button
"topnotch" # Darkens the menu bar to complete black "topnotch" # Darkens the menu bar to complete black
"ghostty" # Terminal application (not buildable on Nix on macOS)
]; ];
}; };

View File

@@ -68,7 +68,7 @@ in
# Tell Caddy to use Cloudflare DNS for ACME challenge validation # Tell Caddy to use Cloudflare DNS for ACME challenge validation
services.caddy.package = pkgs.caddy.withPlugins { services.caddy.package = pkgs.caddy.withPlugins {
plugins = [ "github.com/caddy-dns/cloudflare@v0.2.1" ]; plugins = [ "github.com/caddy-dns/cloudflare@v0.2.1" ];
hash = "sha256-S1JN7brvH2KIu7DaDOH1zij3j8hWLLc0HdnUc+L89uU="; hash = "sha256-AcWko5513hO8I0lvbCLqVbM1eWegAhoM0J0qXoWL/vI=";
}; };
nmasur.presets.services.caddy.tlsPolicies = [ nmasur.presets.services.caddy.tlsPolicies = [
{ {

View File

@@ -158,7 +158,7 @@ in
}; };
script = '' script = ''
${pkgs.awscli2}/bin/aws s3 sync --exclude */gitea.db* \ ${pkgs.awscli2}/bin/aws s3 sync --exclude */gitea.db* \
${giteaPath}/ \ ${giteaPath}/repositories/ \
s3://${config.nmasur.presets.services.litestream.s3.bucket}/gitea-data/ \ s3://${config.nmasur.presets.services.litestream.s3.bucket}/gitea-data/ \
--endpoint-url=https://${config.nmasur.presets.services.litestream.s3.endpoint} --endpoint-url=https://${config.nmasur.presets.services.litestream.s3.endpoint}
''; '';

View File

@@ -10,8 +10,8 @@ in
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
# Use power button to sleep instead of poweroff # Use power button to sleep instead of poweroff
services.logind.powerKey = "suspend"; services.logind.settings.Login.HandlePowerKey = "suspend";
services.logind.powerKeyLongPress = "poweroff"; services.logind.settings.Login.HandlePowerKeyLongPress = "poweroff";
}; };

View File

@@ -17,9 +17,11 @@ in
enable = true; enable = true;
mediaDir = "/data/generic/paperless"; mediaDir = "/data/generic/paperless";
passwordFile = config.secrets.paperless.dest; passwordFile = config.secrets.paperless.dest;
configureTika = true; # Enable processing of emails
settings = { settings = {
PAPERLESS_OCR_USER_ARGS = builtins.toJSON { invalidate_digital_signatures = true; }; PAPERLESS_OCR_USER_ARGS = builtins.toJSON { invalidate_digital_signatures = true; };
PAPERLESS_URL = "https://${hostnames.paperless}"; PAPERLESS_URL = "https://${hostnames.paperless}";
PAPERLESS_DATE_ORDER = "MDY"; # Check document for US-formatted dates
# Enable if changing the path name in Caddy # Enable if changing the path name in Caddy
# PAPERLESS_FORCE_SCRIPT_NAME = "/paperless"; # PAPERLESS_FORCE_SCRIPT_NAME = "/paperless";

View File

@@ -0,0 +1,56 @@
# Stalwart is a self-hosted email service, but in my case I want to use it as a
# vCard contacts database server and ignore the email component.
{ config, lib, ... }:
let
inherit (config.nmasur.settings) hostnames;
cfg = config.nmasur.presets.services.stalwart-mail;
in
{
options.nmasur.presets.services.stalwart-mail = {
enable = lib.mkEnableOption "Stalwart mail and contacts server";
port = lib.mkOption {
type = lib.types.port;
description = "Port to use for the localhost";
default = 7982;
};
};
config = lib.mkIf cfg.enable {
services.stalwart-mail = {
enable = true;
settings = {
server.listener.http = {
bind = [ "127.0.0.1:${builtins.toString cfg.port}" ];
protocol = "http";
};
authentication.fallback-admin = {
user = "admin";
secret = "$6$W/zXJP0xtZSUQqIe$DedCz9ncAn8mtfQVCg8Fzguuz.x8u1dfVU/d7wKyc6ujLuY4WCdtY0OeYwpv8huJfKAgBKE3go2MTrT99ID7I1";
};
};
};
# Configure Cloudflare DNS to point to this machine
services.cloudflare-dyndns.domains = [ hostnames.contacts ];
# Allow web traffic to Caddy
nmasur.presets.services.caddy.routes = [
{
match = [ { host = [ hostnames.contacts ]; } ];
handle = [
{
handler = "reverse_proxy";
upstreams = [
{ dial = "localhost:${builtins.toString cfg.port}"; }
];
}
];
}
];
};
}

View File

@@ -36,6 +36,7 @@ in
ntfy-sh.enable = lib.mkDefault true; ntfy-sh.enable = lib.mkDefault true;
pgweb.enable = lib.mkDefault true; pgweb.enable = lib.mkDefault true;
postgresql.enable = lib.mkDefault true; postgresql.enable = lib.mkDefault true;
stalwart-mail.enable = lib.mkDefault true;
thelounge.enable = lib.mkDefault true; thelounge.enable = lib.mkDefault true;
uptime-kuma.enable = lib.mkDefault true; uptime-kuma.enable = lib.mkDefault true;
vaultwarden.enable = lib.mkDefault true; vaultwarden.enable = lib.mkDefault true;