refactor: move host-specific settings to hosts directory

- Move defaultNameServers from network/dns.nix to hosts/servers/default.nix and hosts/workstations/default.nix
- Move SMTP configuration from network/smtp.nix to hosts/servers/default.nix and hosts/workstations/default.nix
- Move proxy configuration from network/proxy.nix to hosts/servers/default.nix and hosts/workstations/default.nix
- Move NTP servers from network/time.nix to hosts/default.nix
- Remove network/proxy.nix and network/smtp.nix (host-specific settings don't belong in network/)
- Update network/default.nix to only import dns.nix and time.nix

This refactoring separates environment-specific network parameters (domain, timezone)
from host-specific settings (DNS servers, SMTP, proxy, NTP servers), making the
configuration more logical and maintainable.
This commit is contained in:
2026-05-11 14:46:33 +02:00
parent 8e22e05d2b
commit d07661561b
8 changed files with 65 additions and 58 deletions
+16 -3
View File
@@ -1,14 +1,27 @@
{ config, pkgs, lib, ... }:
{
let
# Import environment-specific network parameters
env = import ../../network { };
in {
# Common settings for all hosts in the sample environment
# This file is imported by all host configurations (servers and workstations)
# TODO: Move common settings here later
# NTP servers for this environment
services.ntp.servers = [
"10.10.128.1" # IPv4 gateway
"fd00::1" # IPv6 gateway
];
# Time settings from network configuration
time.timeZone = env.time.timeZone;
time.hardwareClock = env.time.hardwareClock;
# TODO: Move other common settings here later
# Examples:
# - Common users/groups
# - Common packages
# - Common services
# - Common security policies
# - Common monitoring/alerting
}
}
+21 -3
View File
@@ -1,10 +1,28 @@
{ config, pkgs, lib, ... }:
{
let
# Import environment-specific network parameters
env = import ../../../network { };
in {
# Common settings for all servers in the sample environment
# This file is imported by all server configurations
# TODO: Move common server settings here later
# Default DNS servers for this environment
networking.nameServers = [ "10.40.128.10" ];
# SMTP relay configuration
services.postfix = {
enable = true;
relayHost = "smtp.lagraula.fr";
relayPort = 587;
useTLS = true;
fromAddress = "noreply@sample.lagraula.fr";
};
# Proxy configuration for servers (none for now)
environment.systemPackages = with pkgs; [ ];
# TODO: Move other common server settings here later
# Examples:
# - Server-specific users/groups
# - Server-specific packages
@@ -12,4 +30,4 @@
# - Server-specific security policies
# - Server-specific monitoring/alerting
# - Locale: en_US.UTF-8 (for servers)
}
}
@@ -1,15 +1,35 @@
{ config, pkgs, lib, ... }:
{
let
# Import environment-specific network parameters
env = import ../../../network { };
in {
# Common settings for all workstations in the sample environment
# This file is imported by all workstation configurations
# TODO: Move common workstation settings here later
# Default DNS servers for this environment
networking.nameServers = [ "10.40.128.10" ];
# SMTP relay configuration
services.postfix = {
enable = true;
relayHost = "smtp.lagraula.fr";
relayPort = 587;
useTLS = true;
fromAddress = "noreply@sample.lagraula.fr";
};
# Proxy configuration for workstations (none for now)
environment.systemPackages = with pkgs; [ ];
# Locale for workstations (French)
i18n.defaultLocale = "fr_FR.UTF-8";
# TODO: Move other common workstation settings here later
# Examples:
# - Workstation-specific users/groups
# - Workstation-specific packages
# - Workstation-specific services
# - Workstation-specific security policies
# - Workstation-specific monitoring/alerting
# - Locale: fr_FR.UTF-8 (for workstations)
}
}
+1 -3
View File
@@ -11,6 +11,4 @@
{
dns = import ./dns.nix;
time = import ./time.nix;
proxy = import ./proxy.nix;
smtp = import ./smtp.nix;
}
}
+1 -7
View File
@@ -4,9 +4,6 @@
# Sample DNS configuration for the sample environment
domain = "sample.lagraula.fr";
# Default DNS servers for this environment
defaultNameServers = [ "10.40.128.10" ];
# Forwarders for this environment
forwarders = [ "1.1.1.1" "8.8.8.8" ];
@@ -15,7 +12,4 @@
# Recursion policy
recursion = "AllowOnlyForPrivateNetworks";
# Email for Let's Encrypt
letsEncryptEmail = "xavier@lagraula.fr";
}
}
-18
View File
@@ -1,18 +0,0 @@
{ config, pkgs, lib, ... }:
{
# Proxy configuration for this environment
# Currently no proxy is used — direct access for all hosts
workstations = {
httpProxy = "";
httpsProxy = "";
noProxy = "";
};
servers = {
httpProxy = "";
httpsProxy = "";
noProxy = "";
};
}
-12
View File
@@ -1,12 +0,0 @@
{ config, pkgs, lib, ... }:
{
# SMTP relay configuration for this environment
relayHost = "smtp.lagraula.fr";
relayPort = 587;
useTLS = true;
useSTARTTLS = true;
fromAddress = "noreply@sample.lagraula.fr";
}
+2 -8
View File
@@ -1,15 +1,9 @@
{ config, pkgs, lib, ... }:
{
# NTP servers for this environment
ntpServers = [
"10.10.128.1" # IPv4 gateway
"fd00::1" # IPv6 gateway
];
# Time zone
# Time zone for this environment
timeZone = "Europe/Paris";
# Hardware clock setting
hardwareClock = "UTC";
}
}