home-lab/modules/network
Geir Okkenhaug Jerstad e976b14d19 refactor: Move network configurations to machine directories
- 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.
2025-06-06 18:08:45 +02:00
..
common.nix refactor: Move network configurations to machine directories 2025-06-06 18:08:45 +02:00
README.md feat: Complete sleeper-service systemd-networkd configuration 2025-06-05 15:44:07 +02:00

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

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

  1. Create network-<new-machine>.nix in this directory
  2. Import ./common.nix for shared settings
  3. Add machine-specific configuration (hostname, hostId, ports)
  4. 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.