Compare commits
1 Commits
91727dd2df
...
router/kee
| Author | SHA1 | Date | |
|---|---|---|---|
|
b06982a443
|
30
flake.lock
generated
30
flake.lock
generated
@@ -7,11 +7,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764034279,
|
"lastModified": 1749178927,
|
||||||
"narHash": "sha256-hZH6EHQYFifVg0bmSBYT8Art5BWhXBXE307uPLnexY0=",
|
"narHash": "sha256-bXcEx1aZUNm5hMLVJeuofcOrZyOiapzvQ7K36HYK3YQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "381f4f8a3a5f773cb80d2b7eb8f8d733b8861434",
|
"rev": "91287a0e9d42570754487b7e38c6697e15a9aab2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -43,11 +43,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751903740,
|
"lastModified": 1747663185,
|
||||||
"narHash": "sha256-PeSkNMvkpEvts+9DjFiop1iT2JuBpyknmBUs0Un0a4I=",
|
"narHash": "sha256-Obh50J+O9jhUM/FgXtI3he/QRNiV9+J53+l+RlKSaAk=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixos-generators",
|
"repo": "nixos-generators",
|
||||||
"rev": "032decf9db65efed428afd2fa39d80f7089085eb",
|
"rev": "ee07ba0d36c38e9915c55d2ac5a8fb0f05f2afcc",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -58,11 +58,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1763835633,
|
"lastModified": 1748929857,
|
||||||
"narHash": "sha256-HzxeGVID5MChuCPESuC0dlQL1/scDKu+MmzoVBJxulM=",
|
"narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "050e09e091117c3d7328c7b2b7b577492c43c134",
|
"rev": "c2a03962b8e24e669fb37b7df10e7c79531ff1a4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -82,11 +82,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1763909441,
|
"lastModified": 1748196248,
|
||||||
"narHash": "sha256-56LwV51TX/FhgX+5LCG6akQ5KrOWuKgcJa+eUsRMxsc=",
|
"narHash": "sha256-1iHjsH6/5UOerJEoZKE+Gx1BgAoge/YcnUsOA4wQ/BU=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "plasma-manager",
|
"repo": "plasma-manager",
|
||||||
"rev": "b24ed4b272256dfc1cc2291f89a9821d5f9e14b4",
|
"rev": "b7697abe89967839b273a863a3805345ea54ab56",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -111,11 +111,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1763929380,
|
"lastModified": 1746643487,
|
||||||
"narHash": "sha256-Yc7gZME/lcHoJH6bMPCG7CyjKWhOLJPqLI8MXtyKPHo=",
|
"narHash": "sha256-dcB/DArJObCvqE/ZEdQSDW2BZMeDyF83Se5KPfJvz60=",
|
||||||
"owner": "Platonic-Systems",
|
"owner": "Platonic-Systems",
|
||||||
"repo": "secrix",
|
"repo": "secrix",
|
||||||
"rev": "c6e3ca7af47c329dcf442a3d017ae171eee5612f",
|
"rev": "4c64203fa5b377953b1fb6d5388187df8b60c6d5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.sharedModules = [ plasma-manager.homeModules.plasma-manager ];
|
home-manager.sharedModules = [ plasma-manager.homeManagerModules.plasma-manager ];
|
||||||
|
|
||||||
home-manager.users.cazzzer = import file;
|
home-manager.users.cazzzer = import file;
|
||||||
# Optionally, use home-manager.extraSpecialArgs to pass
|
# Optionally, use home-manager.extraSpecialArgs to pass
|
||||||
|
|||||||
@@ -7,24 +7,22 @@ in
|
|||||||
{
|
{
|
||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
|
userName = name;
|
||||||
|
userEmail = email;
|
||||||
|
|
||||||
signing = {
|
signing = {
|
||||||
key = signingKey;
|
key = signingKey;
|
||||||
signByDefault = true;
|
signByDefault = true;
|
||||||
format = "ssh";
|
format = "ssh";
|
||||||
};
|
};
|
||||||
|
|
||||||
settings = {
|
aliases = {
|
||||||
user = {
|
co = "checkout";
|
||||||
name = name;
|
s = "switch";
|
||||||
email = email;
|
};
|
||||||
};
|
|
||||||
|
extraConfig = {
|
||||||
alias = {
|
|
||||||
co = "checkout";
|
|
||||||
s = "switch";
|
|
||||||
};
|
|
||||||
|
|
||||||
url = {
|
url = {
|
||||||
"https://gitea.cazzzer.com/" = {
|
"https://gitea.cazzzer.com/" = {
|
||||||
insteadOf = "caztea:";
|
insteadOf = "caztea:";
|
||||||
|
|||||||
@@ -55,8 +55,6 @@
|
|||||||
activities-icons."809dc779-bf5b-49e6-8e3f-cbe283cb05b6" = "keyboard";
|
activities-icons."809dc779-bf5b-49e6-8e3f-cbe283cb05b6" = "keyboard";
|
||||||
activities-icons."b34a506d-ac4f-4797-8c08-6ef45bc49341" = "preferences-desktop-gaming";
|
activities-icons."b34a506d-ac4f-4797-8c08-6ef45bc49341" = "preferences-desktop-gaming";
|
||||||
};
|
};
|
||||||
baloofilerc.General."exclude folders".persistent = true;
|
|
||||||
systemsettingsrc.systemsettings_sidebar_mode.HighlightNonDefaultSettings=true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -18,11 +18,6 @@
|
|||||||
fsType = "zfs";
|
fsType = "zfs";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/nix" =
|
|
||||||
{ device = "zroot/data/nix";
|
|
||||||
fsType = "zfs";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" =
|
||||||
{ device = "/dev/disk/by-uuid/970C-6A15";
|
{ device = "/dev/disk/by-uuid/970C-6A15";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
|
|||||||
@@ -15,8 +15,6 @@
|
|||||||
networking.hostId = "8425e349"; # Required for ZFS.
|
networking.hostId = "8425e349"; # Required for ZFS.
|
||||||
|
|
||||||
services.fprintd.enable = true;
|
services.fprintd.enable = true;
|
||||||
security.pam.services.login.fprintAuth = false;
|
|
||||||
|
|
||||||
|
|
||||||
# Install firefox.
|
# Install firefox.
|
||||||
programs.firefox.enable = true;
|
programs.firefox.enable = true;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
"sysrq_always_enabled=1"
|
"sysrq_always_enabled=1"
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.kernelPackages = pkgs.linuxKernel.packages.linux_6_17;
|
boot.kernelPackages = pkgs.linuxKernel.packages.linux_6_14;
|
||||||
boot.loader = {
|
boot.loader = {
|
||||||
efi.canTouchEfiVariables = true;
|
efi.canTouchEfiVariables = true;
|
||||||
timeout = 3;
|
timeout = 3;
|
||||||
@@ -24,9 +24,6 @@
|
|||||||
|
|
||||||
# Enable networking
|
# Enable networking
|
||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
networking.networkmanager.plugins = [
|
|
||||||
pkgs.networkmanager-openvpn
|
|
||||||
];
|
|
||||||
|
|
||||||
# Enable the X11 windowing system.
|
# Enable the X11 windowing system.
|
||||||
# You can disable this if you're only using the Wayland session.
|
# You can disable this if you're only using the Wayland session.
|
||||||
@@ -61,7 +58,7 @@
|
|||||||
programs.git.enable = true;
|
programs.git.enable = true;
|
||||||
programs.git.lfs.enable = true;
|
programs.git.lfs.enable = true;
|
||||||
# https://nixos.wiki/wiki/Git
|
# https://nixos.wiki/wiki/Git
|
||||||
programs.git.package = pkgs.git.override { withLibsecret = true; doInstallCheck = false; };
|
programs.git.package = pkgs.git.override { withLibsecret = true; };
|
||||||
programs.lazygit.enable = true;
|
programs.lazygit.enable = true;
|
||||||
programs.neovim.enable = true;
|
programs.neovim.enable = true;
|
||||||
programs.wireshark.enable = true;
|
programs.wireshark.enable = true;
|
||||||
@@ -82,7 +79,7 @@
|
|||||||
fantasque-sans-mono
|
fantasque-sans-mono
|
||||||
nerd-fonts.fantasque-sans-mono
|
nerd-fonts.fantasque-sans-mono
|
||||||
noto-fonts
|
noto-fonts
|
||||||
noto-fonts-color-emoji
|
noto-fonts-emoji
|
||||||
noto-fonts-cjk-sans
|
noto-fonts-cjk-sans
|
||||||
noto-fonts-cjk-serif
|
noto-fonts-cjk-serif
|
||||||
jetbrains-mono
|
jetbrains-mono
|
||||||
@@ -110,7 +107,6 @@
|
|||||||
jq
|
jq
|
||||||
ldns
|
ldns
|
||||||
mediainfo
|
mediainfo
|
||||||
powertop
|
|
||||||
rbw
|
rbw
|
||||||
restic
|
restic
|
||||||
resticprofile
|
resticprofile
|
||||||
@@ -124,20 +120,14 @@
|
|||||||
bitwarden-desktop
|
bitwarden-desktop
|
||||||
darkman
|
darkman
|
||||||
host-spawn # for flatpaks
|
host-spawn # for flatpaks
|
||||||
jellyfin-mpv-shim
|
|
||||||
kdePackages.filelight
|
kdePackages.filelight
|
||||||
kdePackages.flatpak-kcm
|
kdePackages.flatpak-kcm
|
||||||
kdePackages.kate
|
kdePackages.kate
|
||||||
kdePackages.yakuake
|
kdePackages.yakuake
|
||||||
(mpv.override {
|
mpv
|
||||||
scripts = with pkgs.mpvScripts; [
|
|
||||||
mpris
|
|
||||||
videoclip
|
|
||||||
];
|
|
||||||
})
|
|
||||||
nextcloud-client
|
nextcloud-client
|
||||||
lxqt.pavucontrol-qt
|
lxqt.pavucontrol-qt
|
||||||
pinentry-all
|
pinentry
|
||||||
tela-circle-icon-theme
|
tela-circle-icon-theme
|
||||||
virt-viewer
|
virt-viewer
|
||||||
waypipe
|
waypipe
|
||||||
@@ -151,12 +141,7 @@
|
|||||||
android-studio
|
android-studio
|
||||||
rustup
|
rustup
|
||||||
zed-editor
|
zed-editor
|
||||||
package-version-server # for zed
|
|
||||||
] ++ [
|
] ++ [
|
||||||
# C
|
|
||||||
gcc
|
|
||||||
valgrind
|
|
||||||
|
|
||||||
# Python
|
# Python
|
||||||
python3
|
python3
|
||||||
poetry
|
poetry
|
||||||
@@ -178,11 +163,5 @@
|
|||||||
# Gleam
|
# Gleam
|
||||||
gleam
|
gleam
|
||||||
beamMinimal26Packages.erlang
|
beamMinimal26Packages.erlang
|
||||||
|
|
||||||
# Racket
|
|
||||||
racket
|
|
||||||
|
|
||||||
# Ruby
|
|
||||||
ruby
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ in {
|
|||||||
enable = true;
|
enable = true;
|
||||||
type = "fcitx5";
|
type = "fcitx5";
|
||||||
fcitx5.waylandFrontend = true;
|
fcitx5.waylandFrontend = true;
|
||||||
# fcitx5.plasma6Support = true;
|
fcitx5.plasma6Support = true;
|
||||||
fcitx5.addons = [ pkgs.fcitx5-mozc ];
|
fcitx5.addons = [ pkgs.fcitx5-mozc ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ in
|
|||||||
./kea.nix
|
./kea.nix
|
||||||
./glance.nix
|
./glance.nix
|
||||||
./services.nix
|
./services.nix
|
||||||
|
./keepalived.nix
|
||||||
];
|
];
|
||||||
# Secrix for secrets management
|
# Secrix for secrets management
|
||||||
secrix.hostPubKey = vars.pubkey;
|
secrix.hostPubKey = vars.pubkey;
|
||||||
@@ -76,7 +77,6 @@ in
|
|||||||
starship
|
starship
|
||||||
tealdeer
|
tealdeer
|
||||||
transcrypt
|
transcrypt
|
||||||
wakeonlan
|
|
||||||
waypipe
|
waypipe
|
||||||
whois
|
whois
|
||||||
wireguard-tools
|
wireguard-tools
|
||||||
|
|||||||
@@ -28,8 +28,6 @@ let
|
|||||||
"|woodpecker."
|
"|woodpecker."
|
||||||
"||pgrok."
|
"||pgrok."
|
||||||
"|sync."
|
"|sync."
|
||||||
"|minecruft."
|
|
||||||
"|n8n."
|
|
||||||
];
|
];
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
@@ -82,14 +80,11 @@ in
|
|||||||
"|etappi.${sysdomain}^$dnsrewrite=${ifs.lan.p4}.12"
|
"|etappi.${sysdomain}^$dnsrewrite=${ifs.lan.p4}.12"
|
||||||
"|etappi.${sysdomain}^$dnsrewrite=${ifs.lan.ulaPrefix}::12:1"
|
"|etappi.${sysdomain}^$dnsrewrite=${ifs.lan.ulaPrefix}::12:1"
|
||||||
|
|
||||||
"|hass.${domain}^$dnsrewrite=${ifs.lan.ulaAddr}"
|
|
||||||
|
|
||||||
# Lab DNS rewrites
|
# Lab DNS rewrites
|
||||||
"||lab.${domain}^$dnsrewrite=etappi.${sysdomain}"
|
"||lab.${domain}^$dnsrewrite=etappi.${sysdomain}"
|
||||||
|
|
||||||
# Allowed exceptions
|
# Allowed exceptions
|
||||||
"@@||googleads.g.doubleclick.net"
|
"@@||googleads.g.doubleclick.net"
|
||||||
"@@||stats.grafana.org"
|
|
||||||
]
|
]
|
||||||
# Alpina DNS rewrites
|
# Alpina DNS rewrites
|
||||||
++ map (host: "${host}${domain}^$dnsrewrite=debbi.${sysdomain}") alpinaDomains;
|
++ map (host: "${host}${domain}^$dnsrewrite=debbi.${sysdomain}") alpinaDomains;
|
||||||
|
|||||||
@@ -56,12 +56,6 @@ in
|
|||||||
udp . 45608 : ${vars.extra.opnsense.addr4} . 45608,
|
udp . 45608 : ${vars.extra.opnsense.addr4} . 45608,
|
||||||
udp . 35848 : ${vars.extra.opnsense.addr4} . 35848,
|
udp . 35848 : ${vars.extra.opnsense.addr4} . 35848,
|
||||||
udp . 48425 : ${vars.extra.opnsense.addr4} . 48425,
|
udp . 48425 : ${vars.extra.opnsense.addr4} . 48425,
|
||||||
# Amnezia VPN server
|
|
||||||
udp . 37138 : ${vars.extra.amnezia.addr4} . 37138,
|
|
||||||
# Minecruft server
|
|
||||||
tcp . 25565 : ${vars.extra.minecruft.addr4} . 25565,
|
|
||||||
udp . 25565 : ${vars.extra.minecruft.addr4} . 25565,
|
|
||||||
udp . 24454 : ${vars.extra.minecruft.addr4} . 24454,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
10
modules/router/keepalived.nix
Normal file
10
modules/router/keepalived.nix
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
let
|
||||||
|
vaks = import ./vaks.nix config;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
services.keepalived = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
Binary file not shown.
@@ -58,36 +58,27 @@ in
|
|||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.caddy.withPlugins {
|
package = pkgs.caddy.withPlugins {
|
||||||
plugins = [ "github.com/caddy-dns/cloudflare@v0.2.1" ];
|
plugins = [ "github.com/caddy-dns/cloudflare@v0.2.1" ];
|
||||||
hash = "sha256-aRMg7R0dBAy+LJeGCMPg6HKppM6NPX2NPwtc0CeSQLg=";
|
hash = "sha256-Gsuo+ripJSgKSYOM9/yl6Kt/6BFCA6BuTDvPdteinAI=";
|
||||||
};
|
};
|
||||||
virtualHosts."*.${domain}".extraConfig = ''
|
virtualHosts."grouter.${domain}".extraConfig = ''
|
||||||
encode
|
encode
|
||||||
tls {
|
tls {
|
||||||
dns cloudflare {env.CF_API_KEY}
|
dns cloudflare {env.CF_API_KEY}
|
||||||
resolvers 1.1.1.1
|
resolvers 1.1.1.1
|
||||||
}
|
}
|
||||||
|
@grafana path /grafana /grafana/*
|
||||||
@grouter host grouter.${domain}
|
handle @grafana {
|
||||||
handle @grouter {
|
reverse_proxy localhost:${toString config.services.grafana.settings.server.http_port}
|
||||||
@grafana path /grafana /grafana/*
|
}
|
||||||
handle @grafana {
|
redir /adghome /adghome/
|
||||||
reverse_proxy localhost:${toString config.services.grafana.settings.server.http_port}
|
handle_path /adghome/* {
|
||||||
}
|
reverse_proxy localhost:${toString config.services.adguardhome.port}
|
||||||
redir /adghome /adghome/
|
basic_auth {
|
||||||
handle_path /adghome/* {
|
Bob $2a$14$HsWmmzQTN68K3vwiRAfiUuqIjKoXEXaj9TOLUtG2mO1vFpdovmyBy
|
||||||
reverse_proxy localhost:${toString config.services.adguardhome.port}
|
|
||||||
basic_auth {
|
|
||||||
Bob $2a$14$HsWmmzQTN68K3vwiRAfiUuqIjKoXEXaj9TOLUtG2mO1vFpdovmyBy
|
|
||||||
}
|
|
||||||
}
|
|
||||||
handle /* {
|
|
||||||
reverse_proxy localhost:${toString config.services.glance.settings.server.port}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
handle /* {
|
||||||
@hass host hass.${domain}
|
reverse_proxy localhost:${toString config.services.glance.settings.server.port}
|
||||||
handle @hass {
|
|
||||||
reverse_proxy homeassistant.4.lab.l.cazzzer.com:8123
|
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -135,7 +135,5 @@ rec {
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
amnezia.addr4 = "${ifs.lan10.p4}.31";
|
|
||||||
minecruft.addr4 = "${ifs.lan.p4}.11";
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ in {
|
|||||||
inherit
|
inherit
|
||||||
(pkgs)
|
(pkgs)
|
||||||
noto-fonts
|
noto-fonts
|
||||||
noto-fonts-color-emoji
|
noto-fonts-emoji
|
||||||
noto-fonts-cjk-sans
|
noto-fonts-cjk-sans
|
||||||
noto-fonts-cjk-serif
|
noto-fonts-cjk-serif
|
||||||
;
|
;
|
||||||
|
|||||||
Reference in New Issue
Block a user