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:
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,4 @@
|
||||
{
|
||||
dns = import ./dns.nix;
|
||||
time = import ./time.nix;
|
||||
proxy = import ./proxy.nix;
|
||||
smtp = import ./smtp.nix;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 = "";
|
||||
};
|
||||
}
|
||||
@@ -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";
|
||||
}
|
||||
@@ -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";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user