pull out some extra modules
This commit is contained in:
@@ -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 ];
|
||||
}
|
||||
|
||||
@@ -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
@@ -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
@@ -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 = {
|
||||
|
||||
@@ -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";
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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" ];
|
||||
};
|
||||
}
|
||||
@@ -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,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,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
|
||||
'';
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -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
|
||||
'';
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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
@@ -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 = [
|
||||
|
||||
@@ -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
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -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
|
||||
'';
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user