You've already forked guix-tribes
72 lines
3.0 KiB
Scheme
72 lines
3.0 KiB
Scheme
(define-module (nbde system installed-base)
|
|
#:use-module (gnu)
|
|
#:use-module (gnu services base)
|
|
#:use-module (gnu services desktop)
|
|
#:use-module (gnu services networking)
|
|
#:use-module (gnu services ssh)
|
|
#:use-module (guix gexp)
|
|
#:use-module (nbde system boot-store)
|
|
#:export (nbde-installed-operating-system))
|
|
|
|
(define %tribe-one-guix-substitute-url
|
|
"https://guix.tribe-one.org")
|
|
|
|
(define %tribe-one-guix-signing-key
|
|
(plain-file
|
|
"guix.tribe-one.org-signing-key.pub"
|
|
"(public-key \n (ecc \n (curve Ed25519)\n (q #7F0B2300CC4BDA2520DB462BCAD45107E7C874E0E09DC8EF429B145C8A52B306#)\n )\n )\n"))
|
|
|
|
(define* (nbde-installed-operating-system #:key
|
|
host-name
|
|
bootloader
|
|
(mapped-devices '())
|
|
file-systems
|
|
initrd
|
|
interface
|
|
authorized-keys-file
|
|
(timezone "Etc/UTC")
|
|
(locale "en_US.UTF-8")
|
|
(kernel-arguments
|
|
(list "console=tty0"
|
|
"console=ttyS0,115200n8"))
|
|
(initrd-modules
|
|
(append '("nvme" "sd_mod" "virtio_scsi")
|
|
%base-initrd-modules))
|
|
(extra-services '()))
|
|
"Return a base installed Guix system for the NBDE flow, parameterized by the
|
|
runtime-discovered boot and filesystem values from the installer."
|
|
(operating-system
|
|
(host-name host-name)
|
|
(timezone timezone)
|
|
(locale locale)
|
|
(keyboard-layout (keyboard-layout "us"))
|
|
(kernel-arguments kernel-arguments)
|
|
(initrd-modules initrd-modules)
|
|
(initrd initrd)
|
|
(bootloader bootloader)
|
|
(mapped-devices mapped-devices)
|
|
(file-systems file-systems)
|
|
(services
|
|
(append
|
|
extra-services
|
|
(list (service dhcpcd-service-type)
|
|
(boot-store-staging-service)
|
|
(service elogind-service-type)
|
|
(service agetty-service-type
|
|
(agetty-configuration
|
|
(tty "ttyS0")
|
|
(term "vt100")))
|
|
(service openssh-service-type
|
|
(openssh-configuration
|
|
(permit-root-login 'prohibit-password)
|
|
(authorized-keys
|
|
(list
|
|
(list "root" authorized-keys-file)))))
|
|
(simple-service
|
|
'tribe-one-guix-substitutes
|
|
guix-service-type
|
|
(guix-extension
|
|
(authorized-keys (list %tribe-one-guix-signing-key))
|
|
(substitute-urls (list %tribe-one-guix-substitute-url)))))
|
|
%base-services))))
|