;; This is an operating system configuration template ;; for a "bare bones" setup, with no X11 display server. (use-modules (gnu) (guix packages) (guix build-system trivial)) (use-service-modules databases networking ssh) (use-package-modules databases geo screen ssh) (operating-system (host-name "komputilo") (timezone "Europe/Berlin") (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 "alice") (comment "Bob's sister") (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")) (home-directory "/home/alice")) %base-user-accounts)) ;; Globally-installed packages. (packages (cons* screen openssh postgresql %base-packages)) ;; Add services to the baseline: a DHCP client and ;; an SSH server. (services (cons* (dhcp-client-service) (postgresql-service #:postgresql (package (name "postgresql") (version (package-version postgresql)) (source #f) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) #:builder (begin (use-modules (guix build utils) (srfi srfi-26)) (let* ((postgresql (assoc-ref %build-inputs "postgresql")) (postgis (assoc-ref %build-inputs "postgis")) (out (assoc-ref %outputs "out"))) (with-directory-excursion postgresql (for-each (lambda (file) (mkdir-p (string-append out "/" (dirname file))) (symlink (string-append postgresql "/" file) (string-append out "/" file))) (find-files "." ".*"))) (with-directory-excursion postgis (for-each (lambda (file) (mkdir-p (string-append out "/" (dirname file))) (symlink (string-append postgis "/" file) (string-append out "/" file))) (find-files "." ".*"))))))) (inputs `(("postgresql" ,postgresql) ("postgis" ,postgis))) (home-page "") (synopsis "") (description "") (license (package-license postgresql)))) (service openssh-service-type (openssh-configuration (port-number 2222))) %base-services)))