aboutsummaryrefslogtreecommitdiff
path: root/gn/deploy/machines/myserver.scm
blob: 8661bc27fd05cd5f98622cb644b07f756a126116 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
;; This is an operating system configuration template
;; for a "bare bones" setup, with no X11 display server.
(define-module (gn deploy machines myserver))

(use-modules (gnu)
             (gnu packages web))
(use-service-modules networking ssh web)
(use-package-modules screen ruby)

(operating-system
  (host-name "komputilo")
  (timezone "Europe/Amsterdam")
  (locale "en_US.utf8")

  ;; Boot in "legacy" BIOS mode, assuming /dev/sdX is the
  ;; target hard disk, and "my-root" is the label of the target
  ;; root file system.
  (bootloader (bootloader-configuration
                (bootloader grub-bootloader)
                (target "/dev/sdX")))
  (file-systems (cons (file-system
                        (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 "pjotr")
                (password "$6$EoLVFsCpLywbQmy1$aJJ3dIrgIH4UtiTVynIZ0MiC667w4C5ybygGisUnUfusPrgxZ7ncz.Cjv67EJPA6VW3EPFbOaiadQzxFn2sLb.")
                (comment "Pjotr")
                (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")))
               %base-user-accounts))

  ;; Globally-installed packages.
  ; (packages (cons screen %base-packages))

  (packages (append (list
                     screen nginx)
                    %base-packages))


  ;; Add services to the baseline: a DHCP client and
  ;; an SSH server with nginx
  (services (append (list (service dhcp-client-service-type)
                          (service openssh-service-type
                                   (openssh-configuration
                                    ; (authorized-keys
                                    ;  `(("pjotr" ,(local-file "/home/pjotr/.ssh/authorized_keys"))))
                                    (password-authentication? #t)
                                    (port-number 2222)))
                          (service nginx-service-type
                                   (nginx-configuration
                                    (server-blocks
                                     (list (nginx-server-configuration
                                            (listen '("8080")))))))
                                   )
                    %base-services)))