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,10 +1,23 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
{
|
let
|
||||||
|
# Import environment-specific network parameters
|
||||||
|
env = import ../../network { };
|
||||||
|
in {
|
||||||
# Common settings for all hosts in the sample environment
|
# Common settings for all hosts in the sample environment
|
||||||
# This file is imported by all host configurations (servers and workstations)
|
# 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:
|
# Examples:
|
||||||
# - Common users/groups
|
# - Common users/groups
|
||||||
# - Common packages
|
# - Common packages
|
||||||
|
|||||||
@@ -1,10 +1,28 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
{
|
let
|
||||||
|
# Import environment-specific network parameters
|
||||||
|
env = import ../../../network { };
|
||||||
|
in {
|
||||||
# Common settings for all servers in the sample environment
|
# Common settings for all servers in the sample environment
|
||||||
# This file is imported by all server configurations
|
# 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:
|
# Examples:
|
||||||
# - Server-specific users/groups
|
# - Server-specific users/groups
|
||||||
# - Server-specific packages
|
# - Server-specific packages
|
||||||
|
|||||||
@@ -1,15 +1,35 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
{
|
let
|
||||||
|
# Import environment-specific network parameters
|
||||||
|
env = import ../../../network { };
|
||||||
|
in {
|
||||||
# Common settings for all workstations in the sample environment
|
# Common settings for all workstations in the sample environment
|
||||||
# This file is imported by all workstation configurations
|
# 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:
|
# Examples:
|
||||||
# - Workstation-specific users/groups
|
# - Workstation-specific users/groups
|
||||||
# - Workstation-specific packages
|
# - Workstation-specific packages
|
||||||
# - Workstation-specific services
|
# - Workstation-specific services
|
||||||
# - Workstation-specific security policies
|
# - Workstation-specific security policies
|
||||||
# - Workstation-specific monitoring/alerting
|
# - Workstation-specific monitoring/alerting
|
||||||
# - Locale: fr_FR.UTF-8 (for workstations)
|
|
||||||
}
|
}
|
||||||
@@ -11,6 +11,4 @@
|
|||||||
{
|
{
|
||||||
dns = import ./dns.nix;
|
dns = import ./dns.nix;
|
||||||
time = import ./time.nix;
|
time = import ./time.nix;
|
||||||
proxy = import ./proxy.nix;
|
|
||||||
smtp = import ./smtp.nix;
|
|
||||||
}
|
}
|
||||||
@@ -4,9 +4,6 @@
|
|||||||
# Sample DNS configuration for the sample environment
|
# Sample DNS configuration for the sample environment
|
||||||
domain = "sample.lagraula.fr";
|
domain = "sample.lagraula.fr";
|
||||||
|
|
||||||
# Default DNS servers for this environment
|
|
||||||
defaultNameServers = [ "10.40.128.10" ];
|
|
||||||
|
|
||||||
# Forwarders for this environment
|
# Forwarders for this environment
|
||||||
forwarders = [ "1.1.1.1" "8.8.8.8" ];
|
forwarders = [ "1.1.1.1" "8.8.8.8" ];
|
||||||
|
|
||||||
@@ -15,7 +12,4 @@
|
|||||||
|
|
||||||
# Recursion policy
|
# Recursion policy
|
||||||
recursion = "AllowOnlyForPrivateNetworks";
|
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,13 +1,7 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
# NTP servers for this environment
|
# Time zone for this environment
|
||||||
ntpServers = [
|
|
||||||
"10.10.128.1" # IPv4 gateway
|
|
||||||
"fd00::1" # IPv6 gateway
|
|
||||||
];
|
|
||||||
|
|
||||||
# Time zone
|
|
||||||
timeZone = "Europe/Paris";
|
timeZone = "Europe/Paris";
|
||||||
|
|
||||||
# Hardware clock setting
|
# Hardware clock setting
|
||||||
|
|||||||
Reference in New Issue
Block a user