feat: [nix-topology](https://github.com/oddlama/nix-topology) setup
This commit is contained in:
parent
bd3f6996d6
commit
35701a3219
226
flake.lock
226
flake.lock
|
@ -202,6 +202,28 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"devshell_6": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_6",
|
||||
"nixpkgs": [
|
||||
"nix-topology",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1713532798,
|
||||
"narHash": "sha256-wtBhsdMJA3Wa32Wtm1eeo84GejtI43pMrFrmwLXrsEc=",
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"rev": "12e914740a25ea1891ec619bb53cf5e6ca922e40",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"dream2nix": {
|
||||
"inputs": {
|
||||
"all-cabal-json": "all-cabal-json",
|
||||
|
@ -455,6 +477,22 @@
|
|||
}
|
||||
},
|
||||
"flake-compat_7": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_8": {
|
||||
"locked": {
|
||||
"lastModified": 1717312683,
|
||||
"narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=",
|
||||
|
@ -469,7 +507,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_8": {
|
||||
"flake-compat_9": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
|
@ -736,6 +774,42 @@
|
|||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701680307,
|
||||
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_7": {
|
||||
"inputs": {
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_8": {
|
||||
"inputs": {
|
||||
"systems": "systems_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1705309234,
|
||||
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
|
||||
|
@ -750,9 +824,9 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_7": {
|
||||
"flake-utils_9": {
|
||||
"inputs": {
|
||||
"systems": "systems_3"
|
||||
"systems": "systems_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
|
@ -845,6 +919,28 @@
|
|||
}
|
||||
},
|
||||
"gitignore_3": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nix-topology",
|
||||
"pre-commit-hooks",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709087332,
|
||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore_4": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nix-wallpaper",
|
||||
|
@ -866,7 +962,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore_4": {
|
||||
"gitignore_5": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"pre-commit-hooks-nix",
|
||||
|
@ -1165,7 +1261,7 @@
|
|||
},
|
||||
"lib-aggregate": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_7",
|
||||
"flake-utils": "flake-utils_9",
|
||||
"nixpkgs-lib": "nixpkgs-lib_4"
|
||||
},
|
||||
"locked": {
|
||||
|
@ -1378,14 +1474,37 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-wallpaper": {
|
||||
"nix-topology": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_6",
|
||||
"devshell": "devshell_6",
|
||||
"flake-utils": "flake-utils_7",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"pre-commit-hooks": "pre-commit-hooks_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1722338736,
|
||||
"narHash": "sha256-bSnWgJ7eXgHZ/pwL7+NTDGfOzsbOiw899BV3k7TawWE=",
|
||||
"owner": "oddlama",
|
||||
"repo": "nix-topology",
|
||||
"rev": "870dcc9074077a327220b36597098c295944a47d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "oddlama",
|
||||
"repo": "nix-topology",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-wallpaper": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_8",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"pre-commit-hooks": "pre-commit-hooks_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1708554876,
|
||||
"narHash": "sha256-gaL/q2OtucwPrh/nVm1kvtLSvGdcem0E87WZ+rozBYc=",
|
||||
|
@ -1543,6 +1662,22 @@
|
|||
}
|
||||
},
|
||||
"nixpkgs-stable_3": {
|
||||
"locked": {
|
||||
"lastModified": 1710695816,
|
||||
"narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "614b4613980a522ba49f0d194531beddbb7220d3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-23.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable_4": {
|
||||
"locked": {
|
||||
"lastModified": 1704874635,
|
||||
"narHash": "sha256-YWuCrtsty5vVZvu+7BchAxmcYzTMfolSPP5io8+WYCg=",
|
||||
|
@ -1558,7 +1693,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable_4": {
|
||||
"nixpkgs-stable_5": {
|
||||
"locked": {
|
||||
"lastModified": 1720386169,
|
||||
"narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=",
|
||||
|
@ -1574,7 +1709,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable_5": {
|
||||
"nixpkgs-stable_6": {
|
||||
"locked": {
|
||||
"lastModified": 1721524707,
|
||||
"narHash": "sha256-5NctRsoE54N86nWd0psae70YSLfrOek3Kv1e8KoXe/0=",
|
||||
|
@ -1592,7 +1727,7 @@
|
|||
},
|
||||
"nixpkgs-wayland": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_7",
|
||||
"flake-compat": "flake-compat_8",
|
||||
"lib-aggregate": "lib-aggregate",
|
||||
"nix-eval-jobs": "nix-eval-jobs",
|
||||
"nixpkgs": "nixpkgs_13"
|
||||
|
@ -1969,10 +2104,10 @@
|
|||
},
|
||||
"pre-commit-hooks-nix_3": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_8",
|
||||
"gitignore": "gitignore_4",
|
||||
"flake-compat": "flake-compat_9",
|
||||
"gitignore": "gitignore_5",
|
||||
"nixpkgs": "nixpkgs_14",
|
||||
"nixpkgs-stable": "nixpkgs-stable_4"
|
||||
"nixpkgs-stable": "nixpkgs-stable_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1722857853,
|
||||
|
@ -2055,16 +2190,44 @@
|
|||
"inputs": {
|
||||
"flake-compat": "flake-compat_6",
|
||||
"flake-utils": [
|
||||
"nix-wallpaper",
|
||||
"nix-topology",
|
||||
"flake-utils"
|
||||
],
|
||||
"gitignore": "gitignore_3",
|
||||
"nixpkgs": [
|
||||
"nix-wallpaper",
|
||||
"nix-topology",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1714478972,
|
||||
"narHash": "sha256-q//cgb52vv81uOuwz1LaXElp3XAe1TqrABXODAEF6Sk=",
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"rev": "2849da033884f54822af194400f8dff435ada242",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"pre-commit-hooks_5": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_7",
|
||||
"flake-utils": [
|
||||
"nix-wallpaper",
|
||||
"flake-utils"
|
||||
],
|
||||
"gitignore": "gitignore_4",
|
||||
"nixpkgs": [
|
||||
"nix-wallpaper",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1708018599,
|
||||
"narHash": "sha256-M+Ng6+SePmA8g06CmUZWi1AjG2tFBX9WCXElBHEKnyM=",
|
||||
|
@ -2141,6 +2304,7 @@
|
|||
"hyprland-contrib": "hyprland-contrib",
|
||||
"jovian-nixos": "jovian-nixos",
|
||||
"mensa": "mensa",
|
||||
"nix-topology": "nix-topology",
|
||||
"nix-wallpaper": "nix-wallpaper",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs_11",
|
||||
|
@ -2156,7 +2320,7 @@
|
|||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable_5"
|
||||
"nixpkgs-stable": "nixpkgs-stable_6"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1722897572,
|
||||
|
@ -2217,6 +2381,36 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_4": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_5": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_5"
|
||||
|
|
15
flake.nix
15
flake.nix
|
@ -56,6 +56,11 @@
|
|||
url = "github:qmk/qmk_firmware";
|
||||
flake = false;
|
||||
};
|
||||
|
||||
nix-topology = {
|
||||
url = "github:oddlama/nix-topology";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
nixConfig = {
|
||||
|
@ -84,6 +89,7 @@
|
|||
modulesSharedByAllSystems = [
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
inputs.nix-topology.nixosModules.default
|
||||
./modules/base-system.nix
|
||||
];
|
||||
# The list of all hosts known to me
|
||||
|
@ -98,6 +104,7 @@
|
|||
inputs.devshell.flakeModule
|
||||
inputs.treefmt-nix.flakeModule
|
||||
inputs.pre-commit-hooks-nix.flakeModule
|
||||
inputs.nix-topology.flakeModule
|
||||
];
|
||||
# Available systems, only x86 for now
|
||||
systems = ["x86_64-linux"];
|
||||
|
@ -105,8 +112,14 @@
|
|||
pkgs,
|
||||
self',
|
||||
config,
|
||||
system,
|
||||
...
|
||||
}: {
|
||||
_module.args.pkgs = import inputs.nixpkgs {
|
||||
inherit system;
|
||||
overlays = [inputs.nix-topology.overlays.default];
|
||||
};
|
||||
|
||||
# Configure treefmt
|
||||
treefmt.projectRootFile = "flake.nix";
|
||||
treefmt.programs = {
|
||||
|
@ -146,6 +159,8 @@
|
|||
self'.packages.test-config
|
||||
];
|
||||
};
|
||||
|
||||
topology.modules = [./topology.nix {_module.args.inputs = inputs;}];
|
||||
};
|
||||
# Useful modules and all those from ./modules
|
||||
flake.nixosModules =
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{pkgs, ...}: {
|
||||
imports = [
|
||||
../../hardware/intel-nuc.nix
|
||||
./topology.nix
|
||||
];
|
||||
config = {
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
|
|
36
hosts/cerithium-telescopium/topology.nix
Normal file
36
hosts/cerithium-telescopium/topology.nix
Normal file
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
topology.self = {
|
||||
hardware.info = "Intel NUC";
|
||||
|
||||
interfaces.looking-glas = {
|
||||
icon = "interfaces.tun";
|
||||
network = "tailnet";
|
||||
virtual = true;
|
||||
addresses = [
|
||||
"100.102.99.37"
|
||||
"fd7a:115c:a1e0:ab12:4843:cd96:6266:6325"
|
||||
];
|
||||
physicalConnections = [
|
||||
{
|
||||
node = "tailnet";
|
||||
interface = "*";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
interfaces.eno1 = {
|
||||
icon = "interfaces.ethernet";
|
||||
network = "home";
|
||||
physicalConnections = [
|
||||
{
|
||||
node = "den-den-mushi";
|
||||
interface = "lan3";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
interfaces.wlp2s0 = {
|
||||
icon = "interfaces.wifi";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -9,6 +9,7 @@
|
|||
in {
|
||||
imports = [
|
||||
inputs.nixos-hardware.nixosModules.common-cpu-intel #-cpu-only
|
||||
./topology.nix
|
||||
../../modules/nginx-reverse-proxy.nix
|
||||
../../hardware/asrock-z370-i3-black-box.nix
|
||||
./modules/calibre.nix
|
||||
|
|
38
hosts/faunus-ater/topology.nix
Normal file
38
hosts/faunus-ater/topology.nix
Normal file
|
@ -0,0 +1,38 @@
|
|||
{lib, ...}: {
|
||||
topology.self = {
|
||||
hardware.info = "Home Server";
|
||||
|
||||
interfaces.looking-glas = {
|
||||
icon = "interfaces.tun";
|
||||
network = "tailnet";
|
||||
virtual = true;
|
||||
addresses = [
|
||||
"100.108.135.4"
|
||||
"fd7a:115c:a1e0:ab12:4843:cd96:626c:8704"
|
||||
];
|
||||
physicalConnections = [
|
||||
{
|
||||
node = "tailnet";
|
||||
interface = "*";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
interfaces.eno1 = {
|
||||
icon = "interfaces.ethernet";
|
||||
network = "home";
|
||||
addresses = [
|
||||
"192.168.1.169"
|
||||
"2003:c7:cf11:4200::451"
|
||||
"fd3b:de86:922c::451"
|
||||
];
|
||||
mac = lib.mkForce "70:85:c2:77:94:ed";
|
||||
physicalConnections = [
|
||||
{
|
||||
node = "den-den-mushi";
|
||||
interface = "lan2";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -14,6 +14,7 @@ in {
|
|||
../../hardware/netcup-vps-200-g10.nix
|
||||
../../modules/nginx-reverse-proxy.nix
|
||||
./modules/murmur.nix
|
||||
./topology.nix
|
||||
];
|
||||
config = {
|
||||
boot.loader.grub.enable = true;
|
||||
|
|
31
hosts/granodomus-lima/topology.nix
Normal file
31
hosts/granodomus-lima/topology.nix
Normal file
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
topology.self = {
|
||||
hardware.info = "Netcup VPS";
|
||||
|
||||
interfaces.looking-glas = {
|
||||
icon = "interfaces.tun";
|
||||
network = "tailnet";
|
||||
virtual = true;
|
||||
addresses = [
|
||||
"100.66.69.111"
|
||||
"fd7a:115c:a1e0:ab12:4843:cd96:6242:456f"
|
||||
];
|
||||
physicalConnections = [
|
||||
{
|
||||
node = "tailnet";
|
||||
interface = "*";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
interfaces.ens3 = {
|
||||
icon = "interfaces.ethernet";
|
||||
physicalConnections = [
|
||||
{
|
||||
node = "internet";
|
||||
interface = "*";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -13,6 +13,7 @@
|
|||
inputs.custom-udev-rules.nixosModule
|
||||
../../hardware/thinkpad-p1-gen3.nix
|
||||
../../modules/light-actkbd.nix
|
||||
./topology.nix
|
||||
];
|
||||
|
||||
config = {
|
||||
|
|
33
hosts/helix-texta/topology.nix
Normal file
33
hosts/helix-texta/topology.nix
Normal file
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
topology.self = {
|
||||
hardware.info = "Thinkpad P1 Gen3";
|
||||
deviceIcon = "devices.laptop";
|
||||
|
||||
interfaces.looking-glas = {
|
||||
icon = "interfaces.tun";
|
||||
network = "tailnet";
|
||||
virtual = true;
|
||||
addresses = [
|
||||
"100.77.45.59"
|
||||
"fd7a:115c:a1e0:ab12:4843:cd96:624d:2d3b"
|
||||
];
|
||||
physicalConnections = [
|
||||
{
|
||||
node = "tailnet";
|
||||
interface = "*";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
interfaces.wlp0s20f3 = {
|
||||
icon = "interfaces.wifi";
|
||||
network = "home";
|
||||
physicalConnections = [
|
||||
{
|
||||
node = "home-ap";
|
||||
interface = "wifi";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -11,6 +11,7 @@
|
|||
inputs.self.nixosModules.homeManagerConfig
|
||||
inputs.custom-udev-rules.nixosModule
|
||||
../../hardware/aorus.nix
|
||||
./topology.nix
|
||||
];
|
||||
|
||||
config = {
|
||||
|
@ -33,7 +34,6 @@
|
|||
|
||||
settings.minimalGnome.enable = true;
|
||||
|
||||
sound.enable = true;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
|
@ -77,7 +77,6 @@
|
|||
hardware = {
|
||||
opengl = {
|
||||
enable = true;
|
||||
driSupport = true;
|
||||
driSupport32Bit = true;
|
||||
extraPackages = with pkgs; [amdvlk];
|
||||
extraPackages32 = with pkgs; [driversi686Linux.amdvlk];
|
||||
|
|
41
hosts/murex-pecten/topology.nix
Normal file
41
hosts/murex-pecten/topology.nix
Normal file
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
topology.self = {
|
||||
hardware.info = "PC";
|
||||
deviceIcon = "devices.desktop";
|
||||
|
||||
interfaces.looking-glas = {
|
||||
icon = "interfaces.tun";
|
||||
network = "tailnet";
|
||||
virtual = true;
|
||||
addresses = [
|
||||
"100.120.38.101"
|
||||
"fd7a:115c:a1e0:ab12:4843:cd96:6278:2665"
|
||||
];
|
||||
physicalConnections = [
|
||||
{
|
||||
node = "tailnet";
|
||||
interface = "*";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
interfaces.eno1 = {
|
||||
mac = "18:c0:4d:8e:42:f7";
|
||||
};
|
||||
|
||||
interfaces.wlp8s0 = {
|
||||
icon = "interfaces.wifi";
|
||||
network = "home";
|
||||
addresses = [
|
||||
"192.168.1.133"
|
||||
];
|
||||
mac = "e8:84:a5:0d:3f:40";
|
||||
physicalConnections = [
|
||||
{
|
||||
node = "home-ap";
|
||||
interface = "wifi";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -9,6 +9,7 @@
|
|||
inputs.jovian-nixos.nixosModules.default
|
||||
../../hardware/steam-deck.nix
|
||||
../../modules/steam.nix
|
||||
./topology.nix
|
||||
];
|
||||
config = {
|
||||
boot.loader.systemd-boot = {
|
||||
|
@ -48,7 +49,8 @@
|
|||
|
||||
services.xserver.enable = true;
|
||||
services.xserver.desktopManager.plasma5.enable = true;
|
||||
services.xserver.displayManager = {
|
||||
|
||||
services.displayManager = {
|
||||
autoLogin = {
|
||||
enable = true;
|
||||
user = "deck";
|
||||
|
|
26
hosts/polymita-picta/topology.nix
Normal file
26
hosts/polymita-picta/topology.nix
Normal file
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
topology.self = {
|
||||
hardware.info = "Steam Deck";
|
||||
|
||||
interfaces.looking-glas = {
|
||||
icon = "interfaces.tun";
|
||||
network = "tailnet";
|
||||
virtual = true;
|
||||
addresses = [
|
||||
"100.92.166.136"
|
||||
"fd7a:115c:a1e0:ab12:4843:cd96:625c:a688"
|
||||
];
|
||||
physicalConnections = [
|
||||
{
|
||||
node = "tailnet";
|
||||
interface = "*";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
interfaces.wlo1 = {
|
||||
icon = "interfaces.wifi";
|
||||
network = "home";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -173,6 +173,7 @@ in {
|
|||
enable = true;
|
||||
interfaceName = "looking-glas";
|
||||
};
|
||||
networking.interfaces.looking-glas = {};
|
||||
networking.firewall.allowedUDPPorts = [config.services.tailscale.port];
|
||||
|
||||
# Regularly clear the store
|
||||
|
|
82
topology.nix
Normal file
82
topology.nix
Normal file
|
@ -0,0 +1,82 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
nodes.internet = config.lib.topology.mkInternet {};
|
||||
|
||||
nodes.tailnet = {
|
||||
name = "tailnet";
|
||||
hardware.info = "Tailscale Private Network";
|
||||
deviceType = "internet";
|
||||
hardware.image = config.nodes.internet.hardware.image;
|
||||
interfaces."*" = {};
|
||||
};
|
||||
|
||||
nodes.den-den-mushi = {
|
||||
deviceType = "router";
|
||||
hardware.info = "AVM FRITZ!Box 7530";
|
||||
interfaces = {
|
||||
dsl0 = {
|
||||
icon = "interfaces.ethernet";
|
||||
mac = "AC:9A:96:11:22:33";
|
||||
physicalConnections = [
|
||||
{
|
||||
node = "internet";
|
||||
interface = "*";
|
||||
}
|
||||
];
|
||||
};
|
||||
lan1 = {
|
||||
mac = "DC:39:6F:19:9B:84";
|
||||
network = "home";
|
||||
};
|
||||
lan2 = {
|
||||
mac = "DC:39:6F:19:9B:84";
|
||||
network = "home";
|
||||
};
|
||||
lan3 = {
|
||||
mac = "DC:39:6F:19:9B:84";
|
||||
network = "home";
|
||||
};
|
||||
lan4 = {
|
||||
mac = "DC:39:6F:19:9B:84";
|
||||
network = "home";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nodes.home-ap = {
|
||||
deviceType = "switch";
|
||||
hardware.info = "Ubiquiti AP Unifi U6+";
|
||||
interfaces = {
|
||||
wifi = {
|
||||
icon = "interfaces.wifi";
|
||||
};
|
||||
lan1 = {
|
||||
physicalConnections = [
|
||||
{
|
||||
node = "den-den-mushi";
|
||||
interface = "lan1";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nixosConfigurations = let
|
||||
filterFn = name: _: !(builtins.elem name ["radix-balthica" "trochulus-hispidus"]);
|
||||
in
|
||||
lib.mkForce (lib.filterAttrs filterFn inputs.self.nixosConfigurations);
|
||||
|
||||
networks.home = {
|
||||
name = "Home Network";
|
||||
cidrv4 = "192.168.1.0/24";
|
||||
cidrv6 = "2003:c7:cf11:4200::1/60";
|
||||
};
|
||||
networks.tailnet = {
|
||||
name = "Tailscale Network";
|
||||
cidrv4 = "100.0.0.0/8";
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue