1
0
Fork 0
Nix geht mehr!
Find a file
2025-05-20 11:47:25 +02:00
common stuff 2025-05-18 04:04:45 +02:00
hosts stuff 2025-05-20 11:47:25 +02:00
modules stuff 2025-05-20 11:47:25 +02:00
packages/disk stuff 2025-05-18 01:08:10 +02:00
profiles stuff 2025-05-18 01:08:10 +02:00
secrets stuff 2025-05-18 23:34:15 +02:00
.envrc whatever 2025-05-11 22:49:04 +02:00
.gitignore update 2024-12-21 18:45:55 +01:00
flake.lock stuff 2025-05-18 01:08:10 +02:00
flake.nix stuff 2025-05-18 01:08:10 +02:00
lib.nix stuff 2025-05-18 01:08:10 +02:00
LICENSE init 2024-02-04 21:51:11 +01:00
pubkeys.nix whatever 2025-05-11 22:49:04 +02:00
README.md stuff 2025-05-18 01:08:10 +02:00
treefmt.nix hooks 2024-12-01 16:43:53 +00:00

❄️ puter

This is my cobbled together NixOS configuration. There are many like it, but this one is mine. Copy at your own risk.

Structure

  • common: Sane defaults that make sense to use for every host.
  • modules: Regular NixOS modules.
  • profiles: Higher-level NixOS modules that conform to different roles that a host may have.
  • packages: Packages that I couldn't fit anywhere else.
  • secrets: Agenix secrets.
  • hosts: Hosts exposed in nixosConfigurations.
  • pubkeys.nix: Nix expression with all my SSH public keys, used for OpenSSH, Agenix and Restic.
  • lib.nix: Nixpkgs' lib with some extra functionality.

Ports

  • 80X0: Public HTTP services that are proxied through nginx
  • 40X0: Syncthing instances (4000 being the system instance, subsequent ones are for individual users)

Installation

nix run git+https://codeberg.org/helvetica/puter.git#disk /path/to/disk
# TODO: Configure additional disks
mkdir -p /mnt/etc/ssh
cat > /mnt/etc/ssh/ssh_host_ed25519_key
chmod 600 /mnt/etc/ssh/ssh_host_ed25519_key
ssh-keygen -f /mnt/etc/ssh/ssh_host_ed25519_key -y > /mnt/etc/ssh/ssh_host_ed25519_key.pub
nixos-install --no-root-password --flake git+https://codeberg.org/helvetica/puter.git#hostname

systemd-cryptenroll

systemd-cryptenroll /dev/sdX --tpm2-device=auto

Create tar for sbctl

sudo sbctl create-keys
sudo tar --create --directory /var/lib/sbctl . | agenix -e secure-boot/hostname.tar.age

TODO

  • Lanzaboote
  • Monitoring
  • Rom sync
  • insomniac backups
  • nginx websites