bare-bones uefi install
[guix-configs.git] / machines / tweety.scm
blob08b4929194e6024e8c3a50ebd87b87b587df4425
1 ;; This is an operating system configuration template
2 ;; for a "bare bones" setup, with no X11 display server.
4 (use-modules (gnu)
5              (guix store) ;for %default-substitue-urls
6              (gnu services base)) ;for %default-authorized-guix-keys
7 (use-service-modules networking ssh)
8 (use-package-modules admin bootloaders)
10 (operating-system
11   (host-name "tweety")
12   (timezone "EST5EDT")
13   (locale "en_US.UTF-8")
15   ;; Assuming /dev/sdX is the target hard disk, and "my-root" is
16   ;; the label of the target root file system.
17   (bootloader (grub-configuration (grub grub-efi)
18                                   (device "/dev/sda")))
19   (file-systems (cons* (file-system
20                         (device "root")
21                         (title 'label)
22                         (mount-point "/")
23                         (type "ext4"))
24                        (file-system
25                         (device "/dev/sda1")
26                         (mount-point "/boot/efi")
27                         (type "vfat"))
28                       %base-file-systems))
29   (swap-devices '("/dev/sda3"))
30   ;; This is where user accounts are specified.  The "root"
31   ;; account is implicit, and is initially created with the
32   ;; empty password.
33   (users (cons (user-account
34                 (name "james")
35                 (comment "James Richardson")
36                 (group "users")
38                 ;; Adding the account to the "wheel" group
39                 ;; makes it a sudoer.  Adding it to "audio"
40                 ;; and "video" allows the user to play sound
41                 ;; and access the webcam.
42                 (supplementary-groups '("wheel"
43                                         "audio" "video"))
44                 (home-directory "/home/james"))
45                %base-user-accounts))
47   ;; Globally-installed packages.
48   (packages %base-packages)
50   ;; Add services to the baseline: a DHCP client and
51   ;; an SSH server.
52   (services (cons*
53              (dhcp-client-service)
54              (service openssh-service-type (openssh-configuration))
55              ;; add thor server to the list of substite-urls.
56              (modify-services %base-services
57                               (guix-service-type config =>
58                                                  (guix-configuration
59                                                   (inherit config)
60                                                   (substitute-urls
61                                                    (cons* "https://thor.jamestechnotes.com";
62                                                           %default-substitute-urls))
63                                                   (authorized-keys
64                                                    (cons* (plain-file "thor.lab01.jamestechnotes.com"
65                                                                       (string-append "(public-key 
66                                                                         (ecc 
67                                                                          (curve Ed25519)
68                                                                          (q #3BDE6B5500DD300D267F8187BA8B30BDCF326BD882491F8A31DC7A2B88D9475B#)))"))
69                                                           %default-authorized-guix-keys))))))))