summaryrefslogtreecommitdiff
path: root/guix/uranus.scm
blob: 966280ce621e3b1834d7a476b6639081877d26b7 (about) (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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
(define-module (server)
  #:use-module (gnu)
  #:use-module (gnu services)
  #:use-module (gnu services web)
  #:use-module (gnu services dbus)
  #:use-module (gnu services docker)
  #:use-module (gnu services version-control)
  #:use-module (gnu services cgit))

(use-service-modules cups desktop networking ssh docker xorg)

(operating-system
  (locale "en_US.utf8")
  (timezone "Europe/Athens")
  (keyboard-layout (keyboard-layout "us"))
  (host-name "uranus")

  ;; The list of user accounts ('root' is implicit).
  (users (cons* (user-account
                  (name "thanos")
                  (comment "Thanos Apollo")
                  (group "users")
                  (home-directory "/home/thanos")
                  (supplementary-groups '("wheel" "netdev" "audio" "video" "docker")))
                %base-user-accounts))

  ;; Below is the list of system services.  To search for available
  ;; services, run 'guix system search KEYWORD' in a terminal.
  (packages
   (append (map specification->package '("docker" "dbus" "docker-cli")) %base-packages))
  (services
   (append (list
            ;; To configure OpenSSH, pass an 'openssh-configuration'
            ;; record as a second argument to 'service' below.
            (service openssh-service-type
		      (openssh-configuration
		       (permit-root-login 'prohibit-password)))

	    (service nginx-service-type
                     (nginx-configuration
                      (server-blocks
                       (list (nginx-server-configuration
                              (server-name '("thanosapollo.org"))
                              (root "/srv/http/thanosapollo.org")
			      (listen '("*:8000"))
			      (ssl-certificate #f)
			      (ssl-certificate-key #f))))))
	
	    (service cgit-service-type
		     (cgit-configuration
		      (root-desc "Freely you have received; freely give. | Mathew 10:8")
		      (project-list '("dotfiles" "gnosis" "yeetube"
				      "hecate" "pcmpl-emerge" "pcmpl-rc"
				      "pcmpl-tailscale"))
		      (repository-directory "/srv/git")
		      (root-title "Thanos Apollo | Git server")
		      ;; (root-readme "/srv/git/README")
		      (clone-prefix '("https://git.thanosapollo.org"))))
	
	    (service gitolite-service-type
		     (gitolite-configuration
		      (admin-pubkey (plain-file
				     "thanosapollo.pub"
				     "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDWbBxe1gu9IQEKSIu22Xz7n/w/kCHWl/+7jgDd2YBeqcnIZ3d/s6TGIFDlrZQpSjwkFHke78jk6OW2/LzGn7MH0mYldqdUlbBrAWK1INeQPsdE6bPysKjufLt/E18as1E+gEd1H4lcw63SU2jr+hm/XMU/pK7sCFEbu1n2kAv5qedg6ik0+Ts9y3U9W11DzShATg1TaotgcXvkO+Iaup7wsaPYfUp6MkNBEE9dXg3hrUrtjozlr9bIfcpLwwkG/ZpQJdSPcB/6X9dBg3Crop6iK272vlyvmGohBrvkvuC8EpDVZu+i5xfwr1VAv/kWKdQQyovlJLHC6+S5gGLIE9RC8J5rHSrUkuOcQOhwvEVXThLbtwiXA3ozsyM6Mh/5jVIKc8erqvLrC9+dGh98mAajme4TGFw/agZ5uo/uKehNFGwBEqjXQHFJfjmW0OhjAtNLg2/4E7TuTV+0qtvvxPLEOKiuHDWsVC06OFj5UbLpvMR790j1WhODHVcVlKskop8= thanos@zeus"))
		      (rc-file (gitolite-rc-file
				(umask #o0077)))))
	
	    (service elogind-service-type
		     (elogind-configuration
		      (handle-lid-switch 'ignore)))
	
            (service dhcp-client-service-type)
            (service ntp-service-type)
            (service cups-service-type)

	    (service containerd-service-type)
	    (service docker-service-type))
           ;; This is the default list of services we
           ;; are appending to.
           %base-services))

  (bootloader (bootloader-configuration
                (bootloader grub-efi-bootloader)
                (targets (list "/boot/efi"))
                (keyboard-layout keyboard-layout)))
  (swap-devices (list (swap-space
                        (target (uuid
                                 "cc0005c6-0cae-4a38-ae3c-ae32009c7788")))))

  ;; The list of file systems that get "mounted".  The unique
  ;; file system identifiers there ("UUIDs") can be obtained
  ;; by running 'blkid' in a terminal.
  (file-systems (cons* (file-system
                         (mount-point "/boot/efi")
                         (device (uuid "54F2-0DFC"
                                       'fat32))
                         (type "vfat"))
                       (file-system
                         (mount-point "/")
                         (device (uuid
                                  "3575b20f-398d-4f67-9f7e-bd793a0ca332"
                                  'ext4))
                         (type "ext4")) %base-file-systems)))