summaryrefslogtreecommitdiff
path: root/guix/theodora.scm
diff options
context:
space:
mode:
authorThanos Apollo <[email protected]>2025-01-29 11:27:40 +0200
committerThanos Apollo <[email protected]>2025-01-29 11:27:40 +0200
commitae67656d98f21b8139225ba4f7f4d1b671310723 (patch)
tree156e2d9300b8aead05216bde7bf6ce0634b31e0a /guix/theodora.scm
parent04ec6064591ab95e75c4cc396cc5bd7084fca5dd (diff)
Add theodora configuration.
* Server config, renamed to theodora from uranus.
Diffstat (limited to 'guix/theodora.scm')
-rw-r--r--guix/theodora.scm133
1 files changed, 133 insertions, 0 deletions
diff --git a/guix/theodora.scm b/guix/theodora.scm
new file mode 100644
index 0000000..94ad118
--- /dev/null
+++ b/guix/theodora.scm
@@ -0,0 +1,133 @@
+(define-module (theodora)
+ #: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-module (rosenthal services networking)
+ #:use-module (gnu packages databases)
+ #:use-module (gnu packages haskell-apps)
+ #:use-module (gnu packages version-control))
+
+(use-service-modules cups desktop networking ssh docker xorg)
+
+(make-gitolite (list redis git-annex))
+
+(operating-system
+ (locale "en_US.utf8")
+ (timezone "Europe/Athens")
+ (keyboard-layout (keyboard-layout "us"))
+ (host-name "theodora")
+ (users (cons* (user-account
+ (name "thanos")
+ (comment "Thanos Apollo")
+ (group "users")
+ (home-directory "/home/thanos")
+ (supplementary-groups '("wheel" "netdev" "audio" "video" "docker")))
+ (user-account
+ (name "git")
+ (comment "Git user")
+ (group "users")
+ (home-directory "/home/git")
+ (supplementary-groups '("netdev")))
+ %base-user-accounts))
+ (packages
+ (append (map specification->package '("docker" "dbus" "docker-cli" "sqlite"
+ "docker-compose"))
+ %base-packages))
+ (services
+ (append (list
+ (service openssh-service-type
+ (openssh-configuration
+ (permit-root-login 'prohibit-password)))
+
+ (service tailscale-service-type)
+
+ ;; (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 #o0027)
+ ;; (git-config-keys ".*")
+ ;; ;; (unsafe-patt "^$")
+ ;; ))))
+
+ (service git-daemon-service-type
+ (git-daemon-configuration
+ (export-all? #t)
+ (base-path "/srv/git")
+ (listen '("git.thanosapollo.org" "localhost" "192.168.0.101" "theodora"))))
+
+ (service cgit-service-type
+ (cgit-configuration
+ (root-desc "Δωρεὰν ἐλάβετε, δωρεὰν δότε. | Freely you have received; freely give. (Mathew 10:8)")
+ (project-list '("dotfiles" "gnosis" "yeetube" "org-gnosis"
+ "hecate" "pcmpl-emerge" "pcmpl-rc" "hunspell-dict-el" "hunspell-dict-en-med"
+ "pcmpl-tailscale" "greek-polytonic.el" "org-gnosis-ui" "hunspell-dict-el-polytonic"))
+ (repository-directory "/srv/git")
+ (root-title "Thanos Apollo | Git server")
+ (enable-index-owner? #f)
+ (clone-prefix '("https://git.thanosapollo.org"))))
+
+ (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))
+ (nginx-server-configuration
+ (server-name '("bebliotheke.thanosapollo.org"))
+ (root "/srv/http/bebliotheke")
+ (listen '("*:8001"))
+ (ssl-certificate #f)
+ (ssl-certificate-key #f))))))
+
+ (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)
+ (service oci-container-service-type
+ (list
+ ;; (oci-container-configuration
+ ;; (image "gitea/gitea")
+ ;; (network "host")
+ ;; (volumes
+ ;; '(("/home/git/data" . "/gitea")
+ ;; ("/etc/timezone" . "/etc/timezone")
+ ;; ("/etc/localtime" . "/etc/localtime")))
+ ;; (ports
+ ;; '(("3000" . "3000")
+ ;; ("22" . "222"))))
+ )))
+ %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")))))
+ (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)))