No description
Find a file
padreug 4170340d28 Update Nix configuration to use git-based nixpkgs and adjust module imports
Modified krops.nix to switch to a git-based nixpkgs source, noting the initial download cost. Updated shared.nix to change module imports to absolute paths and enabled experimental Nix features. Adjusted configuration.nix to import shared configuration from an absolute path and updated the domain name for machine1. These changes enhance clarity, maintainability, and functionality in the NixOS setup.
2025-10-09 22:38:42 +02:00
config Update Nix configuration to use git-based nixpkgs and adjust module imports 2025-10-09 22:38:42 +02:00
.gitignore gitignore 2025-10-09 18:07:46 +02:00
DEPLOYMENT-GUIDE.md Update deployment guide and krops configuration for improved clarity and consistency 2025-10-08 18:00:28 +02:00
README.md Add krops multi-machine deployment configuration for nix-25.05 2025-09-30 11:05:52 +02:00

Krops Multi-Machine Deployment

This project deploys NixOS configurations to two machines using krops with nix-25.05.

Structure

.
├── krops.nix                      # Main deployment configuration
└── config/
    ├── machine1/
    │   └── configuration.nix      # Machine 1 NixOS config
    └── machine2/
        └── configuration.nix      # Machine 2 NixOS config

Setup

  1. Update target hostnames/IPs in krops.nix:

    • Change root@machine1.example.com to your machine1 address
    • Change root@machine2.example.com to your machine2 address
  2. Customize NixOS configurations in config/machine1/configuration.nix and config/machine2/configuration.nix

Usage

Deploy to a single machine:

nix-build ./krops.nix -A machine1 && ./result
nix-build ./krops.nix -A machine2 && ./result

Deploy to all machines:

nix-build ./krops.nix -A all && ./result

Requirements

  • SSH access to target machines as root
  • Target machines running NixOS
  • nix installed on the deployment machine