For bootstrapping new machines

This commit is contained in:
madmin 2024-06-19 15:12:50 +02:00
parent 15fb0cfd17
commit 2cec4a09f1
2 changed files with 46 additions and 0 deletions

11
scripts/install-script.sh Normal file
View File

@ -0,0 +1,11 @@
#!/bin/bash
nix-shell shell.nix
sudo mkdir -p /tmp/config/etc/nixos/ && cd /tmp/config/etc/nixos/
git clone https://git.mattmor.in/Nix/nixos-config.git
sudo nix --experimental-features "nix-command flakes" flake lock
sudo nix --experimental-features "nix-command flakes" run 'github:nix-community/disko#disko-install' -- --write-efi-boot-entries --flake '/tmp/config/etc/nixos#mymachine' --disk main /dev/disk/by-id/nvme-eui.002538d211111953

35
shell.nix Normal file
View File

@ -0,0 +1,35 @@
#################### DevShell ####################
#
# Custom shell for bootstrapping on new hosts, modifying nix-config, and secrets management
{ pkgs ? # If pkgs is not defined, instantiate nixpkgs from locked commit
let
lock = (builtins.fromJSON (builtins.readFile ./flake.lock)).nodes.nixpkgs.locked;
nixpkgs = fetchTarball {
url = "https://github.com/nixos/nixpkgs/archive/${lock.rev}.tar.gz";
sha256 = lock.narHash;
};
in
import nixpkgs { overlays = [ ]; }
, ...
}: {
default = pkgs.mkShell {
NIX_CONFIG = "extra-experimental-features = nix-command flakes repl-flake";
nativeBuildInputs = builtins.attrValues {
inherit (pkgs)
# Required for pre-commit hook 'nixpkgs-fmt' only on Darwin
# REF: <https://discourse.nixos.org/t/nix-shell-rust-hello-world-ld-linkage-issue/17381/4>
libiconv
nix
home-manager
git
just
pre-commit
age
ssh-to-age
sops;
};
};
}