Compare commits

..

2 Commits

View File

@@ -169,25 +169,62 @@
fi
HOSTNAME=$1
FLAKE_DIR=$(pwd)
echo "🚀 Bootstrapping NixOS: $HOSTNAME"
# Check if on NixOS
if [ -f /etc/os-release ]; then
. /etc/os-release
if [ "$ID" = "nixos" ]; then
echo " Running on NixOS"
sudo nixos-rebuild switch --flake ".#$HOSTNAME"
echo " NixOS system configured"
else
echo " Not on NixOS - installing home-manager only"
home-manager switch --flake ".#youruser@linux"
echo " Home manager configured"
fi
else
echo " Cannot determine OS"
if [ ! -f /etc/os-release ]; then
echo "Cannot determine OS"
exit 1
fi
. /etc/os-release
if [ "$ID" != "nixos" ]; then
echo "Not on NixOS - installing home-manager only"
home-manager switch --flake "$FLAKE_DIR#youruser@linux"
echo "Home manager configured"
exit 0
fi
# Detect ISO/live environment: /nix/.rw-store is a tmpfs overlay
if grep -q "tmpfs /nix/.rw-store" /proc/mounts 2>/dev/null; then
echo "ISO environment detected - running full install for: $HOSTNAME"
# Step 1: Expand tmpfs and set up zram swap BEFORE downloading anything
echo "--- Step 1/4: Expanding tmpfs and enabling zram swap ---"
sudo mount -o remount,size=4G /nix/.rw-store
if sudo modprobe zram 2>/dev/null; then
echo 2G | sudo tee /sys/block/zram0/disksize > /dev/null
sudo mkswap /dev/zram0
sudo swapon /dev/zram0
echo "zram swap enabled"
else
echo "zram not available, continuing without it"
fi
# Step 2: Partition and format disk
echo "--- Step 2/4: Running disko ---"
sudo nix --extra-experimental-features "nix-command flakes" run \
github:nix-community/disko/latest -- \
--mode destroy,format,mount \
--flake "$FLAKE_DIR#$HOSTNAME"
# Step 3: Create swap file on installed root for nixos-install
echo "--- Step 3/4: Creating 2GB swap file on target disk ---"
sudo dd if=/dev/zero of=/mnt/swapfile bs=1M count=2048 status=progress
sudo chmod 600 /mnt/swapfile
sudo mkswap /mnt/swapfile
sudo swapon /mnt/swapfile
# Step 4: Install NixOS
echo "--- Step 4/4: Running nixos-install ---"
sudo nixos-install --flake "$FLAKE_DIR#$HOSTNAME"
echo "Installation complete! Remove the ISO and reboot."
else
echo "Installed NixOS detected - switching configuration"
sudo nixos-rebuild switch --flake "$FLAKE_DIR#$HOSTNAME"
echo "NixOS system configured"
fi
'');
};
in {