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, ... }:
{
imports = [ ./hardware-configuration.nix ../../modules/ssh.nix ];
imports = [
./hardware-configuration.nix
../../modules/backup-server.nix
../../modules/ssh.nix
../../lilac.nix
];
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";
systemd.sleep.settings.Sleep = {
@@ -95,15 +86,5 @@ networking = {
nix.settings.experimental-features = [ "nix-command" "flakes" ];
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 ];
}
+9 -32
View File
@@ -4,34 +4,20 @@
imports = [
./hardware-configuration.nix
../../modules/site/blog.nix
../../modules/site/code.nix
../../modules/site/mail.nix
../../modules/site/music.nix
../../modules/site/photo.nix
../../modules/site/vault.nix
../../modules/backup.nix
../../modules/blog.nix
../../modules/code.nix
../../modules/mail.nix
../../modules/music.nix
../../modules/photo.nix
../../modules/ssh.nix
../../modules/vault.nix
../../modules/ssh.nix
../../lilac.nix
];
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";
i18n.defaultLocale = "en_US.UTF-8";
@@ -132,13 +118,4 @@
nixpkgs.config.allowUnfree = true;
nix.settings.experimental-features = [ "nix-command" "flakes" ];
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, ... }:
{
imports =
[
./hardware-configuration.nix
];
imports = [
./hardware-configuration.nix
../../lilac.nix
];
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
@@ -44,25 +45,18 @@
alsa.support32Bit = 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;
};
programs.zsh.enable = true;
users.users.lilac.shell = pkgs.zsh;
security.sudo.wheelNeedsPassword = false;
hardware.graphics.enable = true;
hardware.graphics.enable32Bit = true;
hardware.enableRedistributableFirmware = true;
environment.systemPackages = with pkgs; [
vim
tor-browser
mullvad-browser
signal-desktop
discord
protonmail-desktop
steam
obsidian
];
networking = {
+2 -15
View File
@@ -5,25 +5,12 @@
./hardware-configuration.nix
../../modules/ssh.nix
../../lilac.nix
];
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
networking = {
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";
user = "gitea";
};
settings.service.DISABLE_REGISTRATION = true;
settings.service.DISABLE_REGISTRATION = true;
};
services.caddy = {
enable = true;
virtualHosts."code.grasswren.net".extraConfig = ''
reverse_proxy localhost:3000
'';
virtualHosts."code.grasswren.net".extraConfig = ''
reverse_proxy localhost:3000
'';
};
}
+3 -3
View File
@@ -3,13 +3,13 @@
{
services.navidrome = {
enable = true;
settings.MusicFolder = "/var/lib/music";
settings.MusicFolder = "/var/lib/music";
};
services.caddy = {
enable = true;
virtualHosts."music.grasswren.net".extraConfig = ''
virtualHosts."music.grasswren.net".extraConfig = ''
reverse_proxy localhost:4533
'';
'';
};
}
+5 -5
View File
@@ -3,15 +3,15 @@
{
services.immich = {
enable = true;
host = "127.0.0.1";
port = 2283;
mediaLocation = "/var/lib/immich";
host = "127.0.0.1";
port = 2283;
mediaLocation = "/var/lib/immich";
};
services.caddy = {
enable = true;
virtualHosts."photo.grasswren.net".extraConfig = ''
virtualHosts."photo.grasswren.net".extraConfig = ''
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 = {
enable = true;
interfaces.wg0.allowedTCPPorts = [ 22 ];
interfaces.wg0.allowedTCPPorts = [ 22 ];
};
services.openssh = {
enable = true;
settings = {
settings = {
PermitRootLogin = "prohibit-password";
PasswordAuthentication = false;
KbdInteractiveAuthentication = false;
};
listenAddresses = [{
PasswordAuthentication = false;
KbdInteractiveAuthentication = false;
};
listenAddresses = [{
addr = "0.0.0.0";
port = 22;
}];
port = 22;
}];
};
users.users.lilac.openssh.authorizedKeys.keys = [
+4 -4
View File
@@ -3,7 +3,7 @@
{
services.vaultwarden = {
enable = true;
backupDir = "/var/lib/vault-backup";
backupDir = "/var/lib/vault-backup";
config = {
DOMAIN = "https://vault.example.com";
SIGNUPS_ALLOWED = false;
@@ -14,8 +14,8 @@
services.caddy = {
enable = true;
virtualHosts."vault.grasswren.net".extraConfig = ''
reverse_proxy localhost:8222
'';
virtualHosts."vault.grasswren.net".extraConfig = ''
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
'';
};
}