pull out some extra modules
This commit is contained in:
@@ -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 ];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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 = {
|
||||||
|
|||||||
@@ -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,7 +19,6 @@
|
|||||||
name = "gitea";
|
name = "gitea";
|
||||||
user = "gitea";
|
user = "gitea";
|
||||||
};
|
};
|
||||||
|
|
||||||
settings.service.DISABLE_REGISTRATION = true;
|
settings.service.DISABLE_REGISTRATION = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -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
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -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 = {
|
||||||
|
|||||||
@@ -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