Files
nixos-infra/nixos-infra
xavier a00c981ecd refactor: centralize production environment configuration
- Add network/dns.nix, network/time.nix, network/proxy.nix, network/smtp.nix
- Update network/default.nix to import new files
- Update dns01, dns02, rp01 to use centralized DNS parameters
- Update gaia workstation to use centralized time parameters
- Servers use en_US.UTF-8 (set in host configs), workstations use fr_FR.UTF-8

This centralizes environment-specific settings while keeping host-type-specific
settings (like locale) in the host configurations.
2026-05-11 11:47:24 +02:00
..

nixos-infra — Private environments

This repository contains environment-specific declarations (hosts, network layout, secrets, users) for the NixOS fleet. Reusable technical components (modules, lib, pkgs, scripts) live in the public framework repository:

nixos-infra-framework (ssh://git@gitea.prod.lagraula.fr:2222/xavier/nixos-infra-framework.git)

Structure

nixos-infra/
├── environments/
│   └── production/          # Production infrastructure
│       ├── configuration.nix  # Environment entry point
│       ├── hosts/
│       │   ├── servers/       # Server configurations (LXC, hypervisors)
│       │   └── workstations/  # Workstation configurations
│       ├── network/           # VLANs, subnets, host IPs
│       ├── secrets/           # agenix-encrypted secrets
│       └── users/             # User configurations
├── scripts/                 # Environment-specific script wrappers
└── README.md

Adding a New Environment

  1. Create environments/<name>/ with the same sub-structure as production/.
  2. Set up its own network/, secrets/, and users/.
  3. Deploy with:
    deploy.sh --environment <name>
    

Deployment

deploy.sh --environment production

See the framework repo for the deploy script and reusable modules.