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/ssh.nix
../../modules/vault.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" ];
};
} }
+12 -18
View File
@@ -1,9 +1,10 @@
{ 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;
@@ -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" ];
};
}
@@ -19,7 +19,6 @@
name = "gitea"; name = "gitea";
user = "gitea"; user = "gitea";
}; };
settings.service.DISABLE_REGISTRATION = true; settings.service.DISABLE_REGISTRATION = true;
}; };
-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
'';
};
}
+1
View File
@@ -5,6 +5,7 @@
enable = true; enable = true;
interfaces.wg0.allowedTCPPorts = [ 22 ]; interfaces.wg0.allowedTCPPorts = [ 22 ];
}; };
services.openssh = { services.openssh = {
enable = true; enable = true;
settings = { settings = {
+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
'';
};
}