No description
- Shell 69.4%
- Nix 29.6%
- Makefile 1%
The composer container reads its GitHub token from ~/.config/composer/auth.json, which was a hand-written, world-readable file. Keep the token in /mnt/data/.composer/github-token so it is covered by the PBS backup and stays out of the Nix store and this repository, and merge it into auth.json on activation. Other keys in auth.json are kept and the file is rewritten with mode 600. |
||
|---|---|---|
| nixos | ||
| scripts | ||
| .editorconfig | ||
| .gitignore | ||
| CLAUDE.md | ||
| install.sh | ||
| kvm.xml | ||
| Makefile | ||
| README.md | ||
NixOS
Playground (QEMU)
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
- Video: QXL
- If the HDD for the VM is too small:
qemu-img resize nixos.qcow2 +20G
Manuelle Installation (UEFI)
1. Root-Shell starten
sudo -i
# Use german keyboard layout
loadkeys de
# Short for all the stuff below !!! TAKE CARE OF THE USERDATA !!!
curl -L https://www.fischer.im/nixos/minimal-install --output install.sh
chmod 744 ./install.sh
./install.sh
reboot
If you don't use the installation script, you need to follow the steps 2-8
2. Partitionierung
The following schema creates four partitions on /dev/sda:
| Partition | Typ | Groesse | Mountpoint |
|---|---|---|---|
/dev/sda1 |
FAT32 (EFI) | 512 MB | /boot |
/dev/sda2 |
linux-swap | 8 GB | — |
/dev/sda3 |
ext4 (Root) | Rest minus Home | / |
/dev/sda4 |
ext4 (Home) | 50% des Rests | /home |
HINT: The sizes must be adapted to your hard drive. In the example it's assumed that a 100GB drive is in use.
# GPT-partition table
parted /dev/sda -- mklabel gpt
# EFI-partition (512 MB)
parted /dev/sda -- mkpart esp fat32 1MB 512MB
parted /dev/sda -- set 1 esp on
# Swap-partition (8 GB)
parted /dev/sda -- mkpart swap linux-swap 512MB 8626MB
# Root-partition (ca. 45 GB)
parted /dev/sda -- mkpart root ext4 8636MB 40000MB
# Home-partition (Rest)
parted /dev/sda -- mkpart home ext4 40000MB 100%
# Check result
parted /dev/sda -- print
3. Dateisysteme erstellen
# EFI-Partition formatieren
mkfs.fat -F 32 -n boot /dev/sda1
# Swap-Partition formatieren
mkswap -L swap /dev/sda2
# Root-Partition formatieren
mkfs.ext4 -L nixos /dev/sda3
# Home-Partition formatieren
mkfs.ext4 -L home /dev/sda4
4. Partitionen einhängen
Die Reihenfolge ist wichtig — zuerst Root, dann die Unterverzeichnisse:
# Root mounten
mount /dev/disk/by-label/nixos /mnt
# Boot-Verzeichnis erstellen und mounten
mkdir /mnt/boot
mount -o umask=077 /dev/disk/by-label/boot /mnt/boot
# Home-Verzeichnis erstellen und mounten
mkdir -p /mnt/home
mount /dev/disk/by-label/home /mnt/home
# Swap aktivieren
swapon /dev/disk/by-label/swap
6. Generate configuration
nixos-generate-config --root /mnt
This creates two files:
/mnt/etc/nixos/hardware-configuration.nix— detected hardware and mountpoints/mnt/etc/nixos/configuration.nix— Base configuration
7. Check the detected bootloader
Check in /mnt/etc/nixos/configuration.nix, that the bootloader is configured like this:
{
boot.loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
}
8. Install system
nixos-install
# After the installation the script sets your root password. (Test1)
reboot
9. After the first reboot
curl --output release.tar.gz https://gitea.fischer.im/sebastian/nixos-cesium/archive/[0.0.2].tar.gz
tar xzf release.tar.gz
chmod 744 nixos-cesium/script/post-install.sh
./nixos-cesium/script/post-install.sh
If you don't use the post-installation script, follow the next step
cp -r ~/nixos-cesium/config/* /etc/nixos/
# Remember to activate vm-guest.nix or vm-host.nix in configuration.nix
nix-channel --add https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz home-manager
nix-channel --add https://nixos.org/channels/nixos-unstable nixos-unstable
nix-channel --update
# Konfiguration anwenden
nixos-rebuild switch --option experimental-features "nix-command flakes"
reboot
10. Post Installation
Generate SMB-credentials (if network mounts are used)
sudo /etc/nixos/setup-smb-credentials.sh
Wartung
Optimise Nix Store and remove old generations
sudo nix-store --optimise && sudo nix-collect-garbage -d