diff --git a/README.md b/README.md index 4c93de4..2b8489e 100644 --- a/README.md +++ b/README.md @@ -93,10 +93,14 @@ nixos-infra/ │ ├── modules/ # Autonomous modules │ ├── machine-types/ # Machine types -│ │ ├── hypervisor.nix # Module for hypervisors -│ │ ├── vm.nix # Module for VMs -│ │ ├── lxc.nix # Module for LXC containers -│ │ └── workstation.nix # Module for workstations +│ │ ├── hypervisor/ +│ │ │ └── default.nix # Module for hypervisors +│ │ ├── vm/ +│ │ │ └── default.nix # Module for VMs +│ │ ├── lxc/ +│ │ │ └── default.nix # Module for LXC containers +│ │ └── workstation/ +│ │ └── default.nix # Module for workstations │ │ │ ├── services/ # Services │ │ ├── dns/ @@ -147,10 +151,10 @@ nixos-infra/ ### **Machine Profiles** | Profile | Description | File | Usage | | --------------| --------------------------------------------------------------| ----------------------------------------| ---------------------------------------------| -| `hypervisor` | Common configuration for hypervisors (KVM, libvirtd, etc.). | `modules/machine-types/hypervisor.nix` | Proxmox hypervisors. | -| `vm` | Common configuration for virtual machines. | `modules/machine-types/vm.nix` | VMs under Proxmox. | -| `lxc` | Common configuration for LXC containers. | `modules/machine-types/lxc.nix` | LXC containers under Proxmox. | -| `workstation` | Common configuration for workstations. | `modules/machine-types/workstation.nix` | Development, audio production, office stations. | +| `hypervisor` | Common configuration for hypervisors (KVM, libvirtd, etc.). | `modules/machine-types/hypervisor/default.nix` | Proxmox hypervisors. | +| `vm` | Common configuration for virtual machines. | `modules/machine-types/vm/default.nix` | VMs under Proxmox. | +| `lxc` | Common configuration for LXC containers. | `modules/machine-types/lxc/default.nix` | LXC containers under Proxmox. | +| `workstation` | Common configuration for workstations. | `modules/machine-types/workstation/default.nix` | Development, audio production, office stations. | | Profile | Description | File | | ------------| --------------------------------------------------| --------------------------------------| diff --git a/nixos-infra/hosts/servers/dns01/configuration.nix b/nixos-infra/hosts/servers/dns01/configuration.nix index 01ce40d..573cf47 100644 --- a/nixos-infra/hosts/servers/dns01/configuration.nix +++ b/nixos-infra/hosts/servers/dns01/configuration.nix @@ -3,7 +3,7 @@ { imports = [ # Module for LXC containers - ../../../modules/machine-types/lxc.nix + ../../../modules/machine-types/lxc ]; # Explicitly enable LXC machine type diff --git a/nixos-infra/hosts/servers/dns02/configuration.nix b/nixos-infra/hosts/servers/dns02/configuration.nix index ca236f2..7943bfd 100644 --- a/nixos-infra/hosts/servers/dns02/configuration.nix +++ b/nixos-infra/hosts/servers/dns02/configuration.nix @@ -3,7 +3,7 @@ { imports = [ # Module for LXC containers - ../../../modules/machine-types/lxc.nix + ../../../modules/machine-types/lxc ]; # Explicitly enable LXC machine type diff --git a/nixos-infra/hosts/servers/git01/configuration.nix b/nixos-infra/hosts/servers/git01/configuration.nix index f450b65..23006c0 100644 --- a/nixos-infra/hosts/servers/git01/configuration.nix +++ b/nixos-infra/hosts/servers/git01/configuration.nix @@ -3,7 +3,7 @@ { imports = [ # Module for LXC containers - ../../../modules/machine-types/lxc.nix + ../../../modules/machine-types/lxc # Module for the git forge service ../../../modules/services/git-forge/default.nix ]; diff --git a/nixos-infra/hosts/servers/pass01/configuration.nix b/nixos-infra/hosts/servers/pass01/configuration.nix index 309550c..6c05404 100644 --- a/nixos-infra/hosts/servers/pass01/configuration.nix +++ b/nixos-infra/hosts/servers/pass01/configuration.nix @@ -3,7 +3,7 @@ { imports = [ # Module for LXC containers - ../../../modules/machine-types/lxc.nix + ../../../modules/machine-types/lxc # Module for password manager service ../../../modules/services/password-manager/default.nix ]; diff --git a/nixos-infra/hosts/servers/rp01/configuration.nix b/nixos-infra/hosts/servers/rp01/configuration.nix index 6ddcc29..4992905 100644 --- a/nixos-infra/hosts/servers/rp01/configuration.nix +++ b/nixos-infra/hosts/servers/rp01/configuration.nix @@ -3,7 +3,7 @@ { imports = [ # Module for LXC containers - ../../../modules/machine-types/lxc.nix + ../../../modules/machine-types/lxc # Module for the reverse proxy ../../../modules/services/reverse-proxy/default.nix ]; diff --git a/nixos-infra/modules/machine-types/hypervisor.nix b/nixos-infra/modules/machine-types/hypervisor.nix deleted file mode 100644 index e69de29..0000000 diff --git a/nixos-infra/modules/machine-types/hypervisor/default.nix b/nixos-infra/modules/machine-types/hypervisor/default.nix new file mode 100644 index 0000000..3e579ec --- /dev/null +++ b/nixos-infra/modules/machine-types/hypervisor/default.nix @@ -0,0 +1,4 @@ +{ config, pkgs, lib, ... }: +{ + # TODO: Add hypervisor-specific configuration +} \ No newline at end of file diff --git a/nixos-infra/modules/machine-types/lxc.nix b/nixos-infra/modules/machine-types/lxc/default.nix similarity index 99% rename from nixos-infra/modules/machine-types/lxc.nix rename to nixos-infra/modules/machine-types/lxc/default.nix index 3000a60..cb6076e 100644 --- a/nixos-infra/modules/machine-types/lxc.nix +++ b/nixos-infra/modules/machine-types/lxc/default.nix @@ -45,4 +45,4 @@ system.stateVersion = "25.11"; -} +} \ No newline at end of file diff --git a/nixos-infra/modules/machine-types/vm.nix b/nixos-infra/modules/machine-types/vm.nix deleted file mode 100644 index e69de29..0000000 diff --git a/nixos-infra/modules/machine-types/vm/default.nix b/nixos-infra/modules/machine-types/vm/default.nix new file mode 100644 index 0000000..d8c8687 --- /dev/null +++ b/nixos-infra/modules/machine-types/vm/default.nix @@ -0,0 +1,4 @@ +{ config, pkgs, lib, ... }: +{ + # TODO: Add VM-specific configuration +} \ No newline at end of file diff --git a/nixos-infra/modules/machine-types/workstation.nix b/nixos-infra/modules/machine-types/workstation.nix deleted file mode 100644 index e69de29..0000000 diff --git a/nixos-infra/modules/machine-types/workstation/default.nix b/nixos-infra/modules/machine-types/workstation/default.nix new file mode 100644 index 0000000..726ba3f --- /dev/null +++ b/nixos-infra/modules/machine-types/workstation/default.nix @@ -0,0 +1,4 @@ +{ config, pkgs, lib, ... }: +{ + # TODO: Add workstation-specific configuration +} \ No newline at end of file diff --git a/nixos-infra/scripts/README.md b/nixos-infra/scripts/README.md index 552d406..9bcb7e0 100644 --- a/nixos-infra/scripts/README.md +++ b/nixos-infra/scripts/README.md @@ -30,7 +30,7 @@ to apply the host-specific configuration. 1. `pct create` — create the container from the NixOS template 2. `pct start ` — start the container 3. Wait for the container to be ready (polling `pct exec`) -4. `pct push initial-configuration.nix` → `/etc/nixos/configuration.nix` +4. `pct push initial-lxc-configuration.nix` → `/etc/nixos/configuration.nix` 5. `pct push deploy.sh` → `/usr/local/bin/deploy-nixos` 6. `pct exec nixos-rebuild switch` — apply initial config (SSH, git, curl) 7. `pct exec deploy-nixos` — clone repo and apply host-specific config @@ -56,7 +56,7 @@ finds the corresponding configuration file, and applies it with 1. `hosts/servers//configuration.nix` 2. `hosts/workstations//configuration.nix` -### `initial-configuration.nix` — Bootstrap NixOS configuration +### `initial-lxc-configuration.nix` — Bootstrap NixOS configuration (LXC) Minimal NixOS configuration pushed to a new LXC container during the bootstrap phase. Installs SSH, git, and curl so the container can @@ -93,7 +93,7 @@ Updates `pkgs/nixpkgs.json` with the latest commit from nixpkgs stable. ``` create-lxc-nixos.sh # Step 1: Create + bootstrap └─ pct create - └─ pct push initial-configuration.nix + └─ pct push initial-lxc-configuration.nix └─ pct push deploy.sh └─ pct exec nixos-rebuild switch └─ pct exec deploy.sh # Step 2: Clone repo + apply config diff --git a/nixos-infra/scripts/create-lxc-nixos.sh b/nixos-infra/scripts/create-lxc-nixos.sh index 8048fe8..db3179b 100755 --- a/nixos-infra/scripts/create-lxc-nixos.sh +++ b/nixos-infra/scripts/create-lxc-nixos.sh @@ -38,7 +38,7 @@ Options: --pve-port PORT SSH port for Proxmox (default: 22). --pve-ssh-key KEY SSH key file for authentication. --initial-config FILE Initial NixOS configuration file to push - [default: ./initial-configuration.nix]. + [default: ./initial-lxc-configuration.nix]. --repo-url URL Git repository URL for deploy.sh [default: https://gitea.lagraula.fr/xavier/nixos-infra.git]. --branch BRANCH Git branch for deploy.sh [default: main]. @@ -77,7 +77,7 @@ TAGS="${TAGS:-}" SSH_PUBLIC_KEYS="${SSH_PUBLIC_KEYS:-}" # Bootstrap -INITIAL_CONFIG="${INITIAL_CONFIG:-./initial-configuration.nix}" +INITIAL_CONFIG="${INITIAL_CONFIG:-./initial-lxc-configuration.nix}" REPO_URL="${REPO_URL:-https://gitea.lagraula.fr/xavier/nixos-infra.git}" BRANCH="${BRANCH:-main}" SKIP_DEPLOY="${SKIP_DEPLOY:-false}" @@ -279,7 +279,7 @@ for i in $(seq 1 30); do sleep 2 done -# 3. Push initial-configuration.nix +# 3. Push initial-lxc-configuration.nix echo "📄 Pushing initial NixOS configuration..." run_proxmox "pct push $LXC_ID '$INITIAL_CONFIG' /etc/nixos/configuration.nix" || { echo "❌ Error: Failed to push initial configuration." >&2 diff --git a/nixos-infra/scripts/initial-configuration.nix b/nixos-infra/scripts/initial-lxc-configuration.nix similarity index 100% rename from nixos-infra/scripts/initial-configuration.nix rename to nixos-infra/scripts/initial-lxc-configuration.nix