summaryrefslogtreecommitdiff
path: root/doc/snippets/how-to-set-up-cgit.scm
blob: 8bb1975ac1d935d5d480e7d4cdb8d03bc2b4d689 (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
(use-modules (gnu)
             ((gnu packages admin) #:select (shepherd))
             (forge acme)
             (forge cgit)
             (forge nginx)
             (forge socket))

(operating-system
  (host-name "forge")
  (timezone "UTC")
  (locale "en_US.utf8")
  (bootloader (bootloader-configuration
               (bootloader grub-bootloader)
               (targets (list "/dev/sdX"))))
  (file-systems %base-file-systems)
  (sudoers-file
   (mixed-text-file "sudoers"
                    "@include " %sudoers-specification
                    ;; Permit the acme user to restart nginx.
                    "\nacme ALL = NOPASSWD: "
                    (file-append shepherd "/bin/herd")
                    " restart nginx\n"))
  (services (cons* (service cgit-service-type
                            (cgit-configuration
                             (server-name "git.example.org")
                             (repository-directory "/srv/git")))
                   (service forge-nginx-service-type
                            (forge-nginx-configuration
                             (http-listen (forge-ip-socket
                                           (ip "0.0.0.0")
                                           (port 8080)))
                             (https-listen (forge-ip-socket
                                            (ip "0.0.0.0")
                                            (port 4443)))))
                   (service acme-service-type
                            (acme-configuration
                             (email "foo@example.org")))
                   %base-services)))