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).
|
||||
|
||||
### NixOS
|
||||
|
||||
```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
|
||||
# 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
|
||||
```
|
||||
|
||||
### NixOS Anywhere
|
||||
## Nix Darwin
|
||||
|
||||
```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
|
||||
home-manager switch --flake .#evanreichard@mac-va-mbp-personal
|
||||
sudo nix-collect-garbage --delete-old
|
||||
nix-collect-garbage --delete-old
|
||||
```
|
||||
|
||||
### NixOS Hosts
|
||||
|
||||
#### 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
|
||||
## Home Manager
|
||||
|
||||
```bash
|
||||
# Update System Channels
|
||||
@ -91,16 +67,7 @@ ln -s /Users/evanreichard/Development/git/personal/nix/home-manager ~/.config/ho
|
||||
home-manager switch
|
||||
```
|
||||
|
||||
## Clean Garbage
|
||||
|
||||
NOTE: This will remove previous generations
|
||||
|
||||
```bash
|
||||
sudo nix-collect-garbage --delete-old
|
||||
nix-collect-garbage --delete-old
|
||||
```
|
||||
|
||||
## OS Update
|
||||
### OS Update
|
||||
|
||||
`/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
|
||||
# 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() {
|
||||
local usage="Usage: $0 install --name <system-name>"
|
||||
local usage="Usage: $0 install --name <system-name> [--remote <user@remote-host>]"
|
||||
local name=""
|
||||
local remote=""
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
@ -60,6 +61,10 @@ function cmd_install() {
|
||||
name="$2"
|
||||
shift 2
|
||||
;;
|
||||
--remote)
|
||||
remote="$2"
|
||||
shift 2
|
||||
;;
|
||||
*)
|
||||
echo "$usage"
|
||||
exit 1
|
||||
@ -87,6 +92,18 @@ function cmd_install() {
|
||||
exit 1
|
||||
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
|
||||
if [ ! -e "$disk_id" ]; then
|
||||
echo "Error: Disk $disk_id not found on system"
|
||||
@ -133,6 +150,27 @@ function cmd_install() {
|
||||
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
|
||||
image)
|
||||
shift
|
||||
|
36
flake.lock
generated
36
flake.lock
generated
@ -49,11 +49,11 @@
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753140376,
|
||||
"narHash": "sha256-7lrVrE0jSvZHrxEzvnfHFE/Wkk9DDqb+mYCodI5uuB8=",
|
||||
"lastModified": 1756733629,
|
||||
"narHash": "sha256-dwWGlDhcO5SMIvMSTB4mjQ5Pvo2vtxvpIknhVnSz2I8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "545aba02960caa78a31bd9a8709a0ad4b6320a5c",
|
||||
"rev": "a5c4f2ab72e3d1ab43e3e65aa421c6f2bd2e12a1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -70,11 +70,11 @@
|
||||
},
|
||||
"locked": {
|
||||
"dir": "pkgs/firefox-addons",
|
||||
"lastModified": 1753589020,
|
||||
"narHash": "sha256-rFZWFBjYRXNli1rZvRLOJVKLznk3Fj/eHJJdcWB0zWE=",
|
||||
"lastModified": 1756699417,
|
||||
"narHash": "sha256-rpRy5ae5ijEGaK+Cr66NqCQJ6ZeUE5Zi8gUWgKhesto=",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"rev": "2988587ae70864239861389dbd84efdbfa9fa2c5",
|
||||
"rev": "007b803d1eff595d25e7886e83054dbd038bf029",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
@ -159,11 +159,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753592768,
|
||||
"narHash": "sha256-oV695RvbAE4+R9pcsT9shmp6zE/+IZe6evHWX63f2Qg=",
|
||||
"lastModified": 1756679287,
|
||||
"narHash": "sha256-Xd1vOeY9ccDf5VtVK12yM0FS6qqvfUop8UQlxEB+gTQ=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "fc3add429f21450359369af74c2375cb34a2d204",
|
||||
"rev": "07fc025fe10487dd80f2ec694f1cd790e752d0e8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -227,11 +227,11 @@
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1753429684,
|
||||
"narHash": "sha256-9h7+4/53cSfQ/uA3pSvCaBepmZaz/dLlLVJnbQ+SJjk=",
|
||||
"lastModified": 1756542300,
|
||||
"narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "7fd36ee82c0275fb545775cc5e4d30542899511d",
|
||||
"rev": "d7600c775f877cd87b4f5a831c28aa94137377aa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -243,11 +243,11 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1753345091,
|
||||
"narHash": "sha256-CdX2Rtvp5I8HGu9swBmYuq+ILwRxpXdJwlpg8jvN4tU=",
|
||||
"lastModified": 1756617294,
|
||||
"narHash": "sha256-aGnd4AHIYCWQKChAkHPpX+YYCt7pA6y2LFFA/s8q0wQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "3ff0e34b1383648053bba8ed03f201d3466f90c9",
|
||||
"rev": "b4c2c57c31e68544982226d07e4719a2d86302a8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -316,11 +316,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752544651,
|
||||
"narHash": "sha256-GllP7cmQu7zLZTs9z0J2gIL42IZHa9CBEXwBY9szT0U=",
|
||||
"lastModified": 1754988908,
|
||||
"narHash": "sha256-t+voe2961vCgrzPFtZxha0/kmFSHFobzF00sT8p9h0U=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "2c8def626f54708a9c38a5861866660395bb3461",
|
||||
"rev": "3223c7a92724b5d804e9988c6b447a0d09017d48",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
Loading…
x
Reference in New Issue
Block a user