;; This is an operating system configuration template ;; for a "bare bones" setup, with no X11 display server. (use-modules (gnu) (metznet aws) (metznet machines vpn) (metznet system base-system) (gnu packages vim) (gnu packages version-control) (gnu packages shells)) (operating-system (inherit vpn.metznet.ca) (bootloader (bootloader-configuration (bootloader grub-minimal-bootloader) (targets '("/dev/nvme0n1")))) (swap-devices (list (swap-space (target (file-system-label "vpn-guix-swap"))))) (file-systems (cons (file-system (device (file-system-label "vpn-guix-data")) (mount-point "/") (type "ext4")) %base-file-systems)) (groups (cons (user-group (system? #t) (name "aws")) %metznet-base-groups)) (users (cons (user-account (name "aws") (group "aws") (shell (file-append zsh "/bin/zsh"))) %metznet-base-user-accounts)) (sudoers-file (plain-file "sudoers" (string-join (list "root ALL=(ALL:ALL) NOPASSWD:ALL" "%aws ALL=(ALL:ALL) ALL" "%aws ALL=(root) NOPASSWD:/run/setuid-programs/passwd" "") "\n"))) (packages (cons* git neovim %metznet-base-packages)) (services (cons* (service aws-service-type) vpn-services)))