;; This is an operating system configuration template ;; for a "bare bones VM" setup, with no X11 display server ;; and working HTTPS. (use-modules (gnu)) (use-service-modules networking ssh) (use-package-modules screen ssh certs) (operating-system (host-name "komputilo") (timezone "Europe/Berlin") (locale "en_US.utf8") ;; Boot in "legacy" BIOS mode, assuming /dev/vdX is the ;; target hard disk specified in the VM, and "my-root" ;; is the label of the target root file system. (bootloader (bootloader-configuration (bootloader grub-bootloader) (target "/dev/vda") (terminal-outputs '(console)))) (file-systems (cons (file-system ;; Hint: set label with the "e2label" command. (device (file-system-label "my-root")) (mount-point "/") (type "ext4")) %base-file-systems)) ;; This is where user accounts are specified. The "root" ;; account is implicit, and is initially created with the ;; empty password. (users (cons (user-account (name "sdb") (comment "Bob's sister") (group "users") ;; Adding the account to the "wheel" group ;; makes it a sudoer. Adding it to "audio" ;; and "video" allows the user to play sound ;; and access the webcam. (supplementary-groups '("wheel" "audio" "video")) (home-directory "/home/sdb")) %base-user-accounts)) ;; Globally-installed packages. (packages (cons* screen openssh ; For SSH daemon nss-certs ; Needed for HTTPS to work %base-packages)) ;; Add services to the baseline: a DHCP client and ;; an SSH server. (services (cons* (dhcp-client-service) ; Aquire IP via DHCP from Qemu on boot (service openssh-service-type ; SSH server started on boot (openssh-configuration (port-number 22))) (modify-services %base-services ; Add berlin as first priority substitute server (guix-service-type config => (guix-configuration (inherit config) (substitute-urls '("https://berlin.guixsd.org https://mirror.hydra.gnu.org"))))))))