pull out some extra modules

This commit is contained in:
2026-09-21 10:58:46 -04:00
parent f8e9d1ab30
commit 5771befa30
17 changed files with 197 additions and 194 deletions
+8 -27
View File
@@ -1,26 +1,17 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
{ {
imports = [ ./hardware-configuration.nix ../../modules/ssh.nix ]; imports = [
./hardware-configuration.nix
../../modules/backup-server.nix
../../modules/ssh.nix
../../lilac.nix
];
networking.hostName = "backup"; networking.hostName = "backup";
users.users.lilac = {
isNormalUser = true;
group = "lilac";
extraGroups = [ "wheel" ];
};
users.groups.lilac = {};
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users.lilac = import ../../home/lilac.nix;
};
programs.zsh.enable = true;
users.users.lilac.shell = pkgs.zsh;
security.sudo.wheelNeedsPassword = false;
time.timeZone = "America/Winnipeg"; time.timeZone = "America/Winnipeg";
systemd.sleep.settings.Sleep = { systemd.sleep.settings.Sleep = {
@@ -95,15 +86,5 @@ networking = {
nix.settings.experimental-features = [ "nix-command" "flakes" ]; nix.settings.experimental-features = [ "nix-command" "flakes" ];
system.stateVersion = "26.05"; system.stateVersion = "26.05";
services.restic.server = {
enable = true;
listenAddress = "10.0.0.4:8000";
dataDir = "/var/lib/restic";
appendOnly = true;
extraFlags = [ "--no-auth" ];
};
networking.firewall.interfaces.wg0.allowedTCPPorts = [ 8000 ]; networking.firewall.interfaces.wg0.allowedTCPPorts = [ 8000 ];
} }
+9 -32
View File
@@ -4,34 +4,20 @@
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
../../modules/site/blog.nix ../../modules/backup.nix
../../modules/site/code.nix ../../modules/blog.nix
../../modules/site/mail.nix ../../modules/code.nix
../../modules/site/music.nix ../../modules/mail.nix
../../modules/site/photo.nix ../../modules/music.nix
../../modules/site/vault.nix ../../modules/photo.nix
../../modules/ssh.nix
../../modules/vault.nix
../../modules/ssh.nix ../../lilac.nix
]; ];
networking.hostName = "desktop"; networking.hostName = "desktop";
users.users.lilac = {
isNormalUser = true;
group = "lilac";
extraGroups = [ "wheel" "render" "video" "input" "uinput" ];
};
users.groups.lilac = {};
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users.lilac = import ../../home/lilac.nix;
};
programs.zsh.enable = true;
users.users.lilac.shell = pkgs.zsh;
security.sudo.wheelNeedsPassword = false;
time.timeZone = "America/Toronto"; time.timeZone = "America/Toronto";
i18n.defaultLocale = "en_US.UTF-8"; i18n.defaultLocale = "en_US.UTF-8";
@@ -132,13 +118,4 @@
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
nix.settings.experimental-features = [ "nix-command" "flakes" ]; nix.settings.experimental-features = [ "nix-command" "flakes" ];
system.stateVersion = "26.05"; system.stateVersion = "26.05";
services.restic.backups.backup = {
repository = "rest:http://10.0.0.4:8000/backup";
initialize = true;
passwordFile = "/home/lilac/test-password";
paths = [ "/var/lib/immich" "/var/lib/music" "/var/lib/gitea" "/var/lib/vault-backup" ];
timerConfig.OnCalendar = "03:30";
pruneOpts = [ "--keep-daily 7" "--keep-weekly 4" "--keep-monthly 12" ];
};
} }
+14 -20
View File
@@ -1,10 +1,11 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
imports = imports = [
[ ./hardware-configuration.nix
./hardware-configuration.nix
]; ../../lilac.nix
];
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
@@ -44,25 +45,18 @@
alsa.support32Bit = true; alsa.support32Bit = true;
pulse.enable = true; pulse.enable = true;
}; };
users.users.lilac = {
isNormalUser = true;
group = "lilac";
extraGroups = [ "networkmanager" "wheel" "render" "video" "input" "uinput" ];
};
users.groups.lilac = {};
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users.lilac = import ../../home/lilac.nix; hardware.graphics.enable = true;
}; hardware.graphics.enable32Bit = true;
programs.zsh.enable = true; hardware.enableRedistributableFirmware = true;
users.users.lilac.shell = pkgs.zsh;
security.sudo.wheelNeedsPassword = false;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
vim mullvad-browser
tor-browser signal-desktop
discord
protonmail-desktop
steam
obsidian
]; ];
networking = { networking = {
+2 -15
View File
@@ -5,25 +5,12 @@
./hardware-configuration.nix ./hardware-configuration.nix
../../modules/ssh.nix ../../modules/ssh.nix
../../lilac.nix
]; ];
networking.hostName = "vps"; networking.hostName = "vps";
users.users.lilac = {
isNormalUser = true;
group = "lilac";
extraGroups = [ "wheel" ];
};
users.groups.lilac = {};
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users.lilac = import ../../home/lilac.nix;
};
programs.zsh.enable = true;
users.users.lilac.shell = pkgs.zsh;
security.sudo.wheelNeedsPassword = false;
# forwarding inbound network traffic over wireguard # forwarding inbound network traffic over wireguard
networking = { networking = {
firewall = { firewall = {
+86
View File
@@ -0,0 +1,86 @@
{ config, lib, pkgs, ... }:
{
users.users.lilac = {
isNormalUser = true;
group = "lilac";
extraGroups = [ "wheel" "networkmanager" "render" "video" "input" "uinput" ];
};
users.groups.lilac = {};
programs.zsh.enable = true;
users.users.lilac.shell = pkgs.zsh;
security.sudo.wheelNeedsPassword = false;
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users.lilac = {
home.username = "lilac";
home.homeDirectory = "/home/lilac";
home.packages = with pkgs; [
git
zsh
helix
];
programs.git = {
enable = true;
settings = {
user.name = "Lilac";
user.email = "lilac@grasswren.net";
core.editor = "hx";
init.defaultBranch = "main";
};
};
programs.ssh = {
enable = true;
settings = {
"desktop" = {
hostname = "10.0.0.2";
user = "lilac";
};
"vps" = {
hostname = "10.0.0.3";
user = "lilac";
};
"backup" = {
hostname = "10.0.0.4";
user = "lilac";
};
"gitea" = {
hostname = "10.0.0.2";
user = "gitea";
identityFile = "~/.ssh/gitea";
};
};
};
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
shellAliases = {
ls = "ls -A";
};
};
programs.helix = {
enable = true;
};
home.sessionVariables = {
EDITOR = "hx";
};
programs.home-manager.enable = true;
home.stateVersion = "26.05";
};
};
}
+11
View File
@@ -0,0 +1,11 @@
{ config, lib, pkgs, ... }:
{
services.restic.server = {
enable = true;
listenAddress = "10.0.0.4:8000";
dataDir = "/var/lib/restic";
appendOnly = true;
extraFlags = [ "--no-auth" ];
};
}
+12
View File
@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
{
services.restic.backups.backup = {
repository = "rest:http://10.0.0.4:8000/backup";
initialize = true;
passwordFile = "/home/lilac/test-password";
paths = [ "/var/lib/immich" "/var/lib/music" "/var/lib/gitea" "/var/lib/vault-backup" ];
timerConfig.OnCalendar = "03:30";
pruneOpts = [ "--keep-daily 7" "--keep-weekly 4" "--keep-monthly 12" ];
};
}
+4 -5
View File
@@ -19,14 +19,13 @@
name = "gitea"; name = "gitea";
user = "gitea"; user = "gitea";
}; };
settings.service.DISABLE_REGISTRATION = true;
settings.service.DISABLE_REGISTRATION = true;
}; };
services.caddy = { services.caddy = {
enable = true; enable = true;
virtualHosts."code.grasswren.net".extraConfig = '' virtualHosts."code.grasswren.net".extraConfig = ''
reverse_proxy localhost:3000 reverse_proxy localhost:3000
''; '';
}; };
} }
+3 -3
View File
@@ -3,13 +3,13 @@
{ {
services.navidrome = { services.navidrome = {
enable = true; enable = true;
settings.MusicFolder = "/var/lib/music"; settings.MusicFolder = "/var/lib/music";
}; };
services.caddy = { services.caddy = {
enable = true; enable = true;
virtualHosts."music.grasswren.net".extraConfig = '' virtualHosts."music.grasswren.net".extraConfig = ''
reverse_proxy localhost:4533 reverse_proxy localhost:4533
''; '';
}; };
} }
+5 -5
View File
@@ -3,15 +3,15 @@
{ {
services.immich = { services.immich = {
enable = true; enable = true;
host = "127.0.0.1"; host = "127.0.0.1";
port = 2283; port = 2283;
mediaLocation = "/var/lib/immich"; mediaLocation = "/var/lib/immich";
}; };
services.caddy = { services.caddy = {
enable = true; enable = true;
virtualHosts."photo.grasswren.net".extraConfig = '' virtualHosts."photo.grasswren.net".extraConfig = ''
reverse_proxy localhost:2283 reverse_proxy localhost:2283
''; '';
}; };
} }
-44
View File
@@ -1,44 +0,0 @@
{ config, lib, pkgs, ... }:
{
home.packages = with pkgs; [
whipper
beets
];
programs.beets = {
enable = true;
settings = {
directory = "/var/lib/music";
library = "/var/lib/music/library.db";
plugins = [
"musicbrainz"
"fetchart"
"embedart"
"scrub"
"chroma"
];
per_disc_numbering = true;
import = {
move = true;
copy = false;
write = true;
timid = true;
incremental = false;
resume = "ask";
};
paths = {
default = "$albumartist/$album%aunique{}/$track - $title";
};
fetchart.auto = true;
embedart.auto = true;
scrub.auto = true;
};
};
}
-31
View File
@@ -1,31 +0,0 @@
{ config, lib, pkgs, ... }:
{
services.headscale = {
enable = true;
settings = {
server_url = "https://vpn.grasswren.net";
listen_addr = "127.0.0.1:8080";
database.type = "sqlite";
ip_prefixes = [
"100.64.0.0/10"
"fd7a:115c:a1e0::/48"
];
dns = {
magic_domain = true;
base_domain = "vpn.grasswren.net";
nameservers.global = [ "1.1.1.1" ];
};
};
};
services.caddy = {
enable = true;
virtualHosts."vpn.grasswren.net".extraConfig = ''
reverse_proxy localhost:8080
'';
};
}
+9 -8
View File
@@ -3,19 +3,20 @@
{ {
networking.firewall = { networking.firewall = {
enable = true; enable = true;
interfaces.wg0.allowedTCPPorts = [ 22 ]; interfaces.wg0.allowedTCPPorts = [ 22 ];
}; };
services.openssh = { services.openssh = {
enable = true; enable = true;
settings = { settings = {
PermitRootLogin = "prohibit-password"; PermitRootLogin = "prohibit-password";
PasswordAuthentication = false; PasswordAuthentication = false;
KbdInteractiveAuthentication = false; KbdInteractiveAuthentication = false;
}; };
listenAddresses = [{ listenAddresses = [{
addr = "0.0.0.0"; addr = "0.0.0.0";
port = 22; port = 22;
}]; }];
}; };
users.users.lilac.openssh.authorizedKeys.keys = [ users.users.lilac.openssh.authorizedKeys.keys = [
+4 -4
View File
@@ -3,7 +3,7 @@
{ {
services.vaultwarden = { services.vaultwarden = {
enable = true; enable = true;
backupDir = "/var/lib/vault-backup"; backupDir = "/var/lib/vault-backup";
config = { config = {
DOMAIN = "https://vault.example.com"; DOMAIN = "https://vault.example.com";
SIGNUPS_ALLOWED = false; SIGNUPS_ALLOWED = false;
@@ -14,8 +14,8 @@
services.caddy = { services.caddy = {
enable = true; enable = true;
virtualHosts."vault.grasswren.net".extraConfig = '' virtualHosts."vault.grasswren.net".extraConfig = ''
reverse_proxy localhost:8222 reverse_proxy localhost:8222
''; '';
}; };
} }
+30
View File
@@ -0,0 +1,30 @@
{ config, lib, pkgs, ... }:
{
services.headscale = {
enable = true;
settings = {
server_url = "https://vpn.grasswren.net";
listen_addr = "127.0.0.1:8080";
database.type = "sqlite";
ip_prefixes = [
"100.64.0.0/10"
"fd7a:115c:a1e0::/48"
];
dns = {
magic_domain = true;
base_domain = "vpn.grasswren.net";
nameservers.global = [ "1.1.1.1" ];
};
};
};
services.caddy = {
enable = true;
virtualHosts."vpn.grasswren.net".extraConfig = ''
reverse_proxy localhost:8080
'';
};
}