update nix flake, remote nix-anywhere, update readme
This commit is contained in:
parent
f5c4e6c9db
commit
9433abcaf4
110
README.md
110
README.md
@ -2,78 +2,54 @@
|
|||||||
|
|
||||||
This repository contains the configuration for multiple machines, as well as my home / IDE config (home-manager).
|
This repository contains the configuration for multiple machines, as well as my home / IDE config (home-manager).
|
||||||
|
|
||||||
### NixOS
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo nixos-rebuild switch --flake .#lin-va-mbp-personal
|
# Install NixOS
|
||||||
|
./bootstrap.sh install --name lin-va-nix-builder
|
||||||
|
|
||||||
|
# Remote Image Build (NixOS Builder)
|
||||||
|
./bootstrap.sh image --name lin-va-rke2 --remote
|
||||||
|
|
||||||
|
# Home Manager Install
|
||||||
|
home-manager switch --flake .#evanreichard@mac-va-mbp-personal
|
||||||
|
|
||||||
|
# Update Flake
|
||||||
|
nix flake update
|
||||||
```
|
```
|
||||||
|
|
||||||
### NixOS Generators
|
## Manual
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
# Install NixOS
|
||||||
|
sudo nixos-rebuild switch --flake .#lin-va-mbp-personal
|
||||||
|
|
||||||
|
# Install NixOS (Remote)
|
||||||
|
nix run github:nix-community/nixos-anywhere -- --flake .#lin-cloud-kube1 --target-host \<USER\>@\<IP\>
|
||||||
|
|
||||||
|
# Build Image
|
||||||
nix build .#vmwareConfigurations.lin-va-rke2
|
nix build .#vmwareConfigurations.lin-va-rke2
|
||||||
```
|
```
|
||||||
|
|
||||||
### NixOS Anywhere
|
## Nix Darwin
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
nix run github:nix-community/nixos-anywhere -- --flake .#lin-cloud-kube1 --target-host <USER>@<IP>
|
# Install Nix Without Determinate
|
||||||
|
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install
|
||||||
|
|
||||||
|
# Switch Nix Darwin
|
||||||
|
sudo nix run nix-darwin#darwin-rebuild -- switch --flake .#mac-va-mbp-personal
|
||||||
|
sudo darwin-rebuild switch --flake .#mac-va-mbp-personal
|
||||||
```
|
```
|
||||||
|
|
||||||
### Home Manager
|
## Clean Garbage
|
||||||
|
|
||||||
|
NOTE: This will remove previous generations
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
home-manager switch --flake .#evanreichard@mac-va-mbp-personal
|
sudo nix-collect-garbage --delete-old
|
||||||
|
nix-collect-garbage --delete-old
|
||||||
```
|
```
|
||||||
|
|
||||||
### NixOS Hosts
|
## Home Manager
|
||||||
|
|
||||||
#### Copy Config
|
|
||||||
|
|
||||||
```bash
|
|
||||||
rsync -av --exclude='.git' . root@HOST:/etc/nixos
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Partition Drives
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Validate Disk
|
|
||||||
ls -l /dev/disk/by-id
|
|
||||||
|
|
||||||
# Partition Disk
|
|
||||||
# WARNING: This will destroy all data on the disk(s)
|
|
||||||
sudo nix \
|
|
||||||
--experimental-features "nix-command flakes" \
|
|
||||||
run github:nix-community/disko -- \
|
|
||||||
--mode disko \
|
|
||||||
--flake /etc/nixos#HOST_CONFIG
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Install NixOS
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Install
|
|
||||||
sudo nixos-install --flake /etc/nixos#HOST_CONFIG
|
|
||||||
|
|
||||||
# Reboot
|
|
||||||
sudo reboot
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Copy Config Back to Host
|
|
||||||
|
|
||||||
```bash
|
|
||||||
rsync -av --exclude='.git' . root@HOST:/etc/nixos
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Rebuild NixOS
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo nixos-rebuild switch
|
|
||||||
```
|
|
||||||
|
|
||||||
# Nix Home Manager Configuration - macOS
|
|
||||||
|
|
||||||
## Upgrade
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Update System Channels
|
# Update System Channels
|
||||||
@ -91,16 +67,7 @@ ln -s /Users/evanreichard/Development/git/personal/nix/home-manager ~/.config/ho
|
|||||||
home-manager switch
|
home-manager switch
|
||||||
```
|
```
|
||||||
|
|
||||||
## Clean Garbage
|
### OS Update
|
||||||
|
|
||||||
NOTE: This will remove previous generations
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo nix-collect-garbage --delete-old
|
|
||||||
nix-collect-garbage --delete-old
|
|
||||||
```
|
|
||||||
|
|
||||||
## OS Update
|
|
||||||
|
|
||||||
`/etc/bashrc` may get overridden. To properly load Nix, prepend the following:
|
`/etc/bashrc` may get overridden. To properly load Nix, prepend the following:
|
||||||
|
|
||||||
@ -111,14 +78,3 @@ if [ -e '/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh' ]; then
|
|||||||
fi
|
fi
|
||||||
# End Nix
|
# End Nix
|
||||||
```
|
```
|
||||||
|
|
||||||
# Nix Darwin
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Install Nix Without Determinate
|
|
||||||
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install
|
|
||||||
|
|
||||||
# Switch Nix Darwin
|
|
||||||
sudo nix run nix-darwin#darwin-rebuild -- switch --flake .#mac-va-mbp-personal
|
|
||||||
sudo darwin-rebuild switch --flake .#mac-va-mbp-personal
|
|
||||||
```
|
|
||||||
|
40
bootstrap.sh
40
bootstrap.sh
@ -51,8 +51,9 @@ function cmd_image() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function cmd_install() {
|
function cmd_install() {
|
||||||
local usage="Usage: $0 install --name <system-name>"
|
local usage="Usage: $0 install --name <system-name> [--remote <user@remote-host>]"
|
||||||
local name=""
|
local name=""
|
||||||
|
local remote=""
|
||||||
|
|
||||||
while [[ $# -gt 0 ]]; do
|
while [[ $# -gt 0 ]]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
@ -60,6 +61,10 @@ function cmd_install() {
|
|||||||
name="$2"
|
name="$2"
|
||||||
shift 2
|
shift 2
|
||||||
;;
|
;;
|
||||||
|
--remote)
|
||||||
|
remote="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo "$usage"
|
echo "$usage"
|
||||||
exit 1
|
exit 1
|
||||||
@ -87,6 +92,18 @@ function cmd_install() {
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Remote or Local
|
||||||
|
if [ -n "$remote" ]; then
|
||||||
|
cmd_install_remote "$name" "$remote"
|
||||||
|
else
|
||||||
|
cmd_install_local "$name" "$disk_id"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function cmd_install_local(){
|
||||||
|
local name="$1"
|
||||||
|
local disk_id="$2"
|
||||||
|
|
||||||
# Validate Disk Exists
|
# Validate Disk Exists
|
||||||
if [ ! -e "$disk_id" ]; then
|
if [ ! -e "$disk_id" ]; then
|
||||||
echo "Error: Disk $disk_id not found on system"
|
echo "Error: Disk $disk_id not found on system"
|
||||||
@ -133,6 +150,27 @@ function cmd_install() {
|
|||||||
sudo reboot
|
sudo reboot
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function cmd_install_remote(){
|
||||||
|
local name="$1"
|
||||||
|
local remote="$2"
|
||||||
|
|
||||||
|
# Prompt Install
|
||||||
|
read -p "This will completely wipe and install NixOS on $remote with configuration $name. Continue? (y/n) " -n 1 -r
|
||||||
|
echo
|
||||||
|
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||||
|
echo "Operation Cancelled"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install NixOS
|
||||||
|
echo "Installing $name to remote host: $remote"
|
||||||
|
if ! nix run github:nix-community/nixos-anywhere -- --flake ".#$name" --target-host "$remote"; then
|
||||||
|
echo "Error: Remote NixOS installation failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "Successfully installed $name to remote host: $remote"
|
||||||
|
}
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
image)
|
image)
|
||||||
shift
|
shift
|
||||||
|
36
flake.lock
generated
36
flake.lock
generated
@ -49,11 +49,11 @@
|
|||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1753140376,
|
"lastModified": 1756733629,
|
||||||
"narHash": "sha256-7lrVrE0jSvZHrxEzvnfHFE/Wkk9DDqb+mYCodI5uuB8=",
|
"narHash": "sha256-dwWGlDhcO5SMIvMSTB4mjQ5Pvo2vtxvpIknhVnSz2I8=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "545aba02960caa78a31bd9a8709a0ad4b6320a5c",
|
"rev": "a5c4f2ab72e3d1ab43e3e65aa421c6f2bd2e12a1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -70,11 +70,11 @@
|
|||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"dir": "pkgs/firefox-addons",
|
"dir": "pkgs/firefox-addons",
|
||||||
"lastModified": 1753589020,
|
"lastModified": 1756699417,
|
||||||
"narHash": "sha256-rFZWFBjYRXNli1rZvRLOJVKLznk3Fj/eHJJdcWB0zWE=",
|
"narHash": "sha256-rpRy5ae5ijEGaK+Cr66NqCQJ6ZeUE5Zi8gUWgKhesto=",
|
||||||
"owner": "rycee",
|
"owner": "rycee",
|
||||||
"repo": "nur-expressions",
|
"repo": "nur-expressions",
|
||||||
"rev": "2988587ae70864239861389dbd84efdbfa9fa2c5",
|
"rev": "007b803d1eff595d25e7886e83054dbd038bf029",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -159,11 +159,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1753592768,
|
"lastModified": 1756679287,
|
||||||
"narHash": "sha256-oV695RvbAE4+R9pcsT9shmp6zE/+IZe6evHWX63f2Qg=",
|
"narHash": "sha256-Xd1vOeY9ccDf5VtVK12yM0FS6qqvfUop8UQlxEB+gTQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "fc3add429f21450359369af74c2375cb34a2d204",
|
"rev": "07fc025fe10487dd80f2ec694f1cd790e752d0e8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -227,11 +227,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1753429684,
|
"lastModified": 1756542300,
|
||||||
"narHash": "sha256-9h7+4/53cSfQ/uA3pSvCaBepmZaz/dLlLVJnbQ+SJjk=",
|
"narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "7fd36ee82c0275fb545775cc5e4d30542899511d",
|
"rev": "d7600c775f877cd87b4f5a831c28aa94137377aa",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -243,11 +243,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1753345091,
|
"lastModified": 1756617294,
|
||||||
"narHash": "sha256-CdX2Rtvp5I8HGu9swBmYuq+ILwRxpXdJwlpg8jvN4tU=",
|
"narHash": "sha256-aGnd4AHIYCWQKChAkHPpX+YYCt7pA6y2LFFA/s8q0wQ=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "3ff0e34b1383648053bba8ed03f201d3466f90c9",
|
"rev": "b4c2c57c31e68544982226d07e4719a2d86302a8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -316,11 +316,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752544651,
|
"lastModified": 1754988908,
|
||||||
"narHash": "sha256-GllP7cmQu7zLZTs9z0J2gIL42IZHa9CBEXwBY9szT0U=",
|
"narHash": "sha256-t+voe2961vCgrzPFtZxha0/kmFSHFobzF00sT8p9h0U=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "2c8def626f54708a9c38a5861866660395bb3461",
|
"rev": "3223c7a92724b5d804e9988c6b447a0d09017d48",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user