![]() - Move network-congenital-optimist.nix to machines/congenital-optimist/ - Move network-sleeper-service.nix to machines/sleeper-service/ - Update import paths in machine configurations - Clean up modules/network/common.nix to remove SSH duplication - Consolidate SSH configuration in modules/security/ssh-keys.nix - Remove machine-specific networking from shared common module This improves dependency tracking by co-locating machine-specific network configurations with their respective machines. |
||
---|---|---|
.. | ||
common.nix | ||
README.md |
Network Configuration Modules
This directory contains networking configurations for all machines in the Home Lab.
Structure
-
common.nix
- Shared networking settings used by all machines- nftables firewall enabled
- SSH access with secure defaults
- Tailscale VPN for remote access
- Basic firewall rules (SSH port 22)
-
network-<machine-name>.nix
- Machine-specific networking configurations- Import
common.nix
for shared settings - Override or extend with machine-specific requirements
- Define hostname, hostId, and additional firewall ports
- Import
Current Machines
network-congenital-optimist.nix
- AMD Threadripper workstation
- ZFS hostId configuration (8425e349)
- Ready for additional service ports as needed
network-sleeper-service.nix
- Xeon file server
- Headless server configuration
- Ready for additional file sharing service ports
Usage
Each machine configuration imports its specific network module:
# In machines/<machine-name>/configuration.nix
imports = [
../../modules/network/network-<machine-name>.nix
# ... other imports
];
Adding New Machines
- Create
network-<new-machine>.nix
in this directory - Import
./common.nix
for shared settings - Add machine-specific configuration (hostname, hostId, ports)
- Import the new file in the machine's
configuration.nix
Future Refactoring
The common.nix
file can be extended to include more shared networking patterns as they emerge across machines. Consider moving repeated patterns here to reduce duplication.