From ae67656d98f21b8139225ba4f7f4d1b671310723 Mon Sep 17 00:00:00 2001 From: Thanos Apollo Date: Wed, 29 Jan 2025 11:27:40 +0200 Subject: Add theodora configuration. * Server config, renamed to theodora from uranus. --- guix/theodora.scm | 133 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ guix/uranus.scm | 97 --------------------------------------- 2 files changed, 133 insertions(+), 97 deletions(-) create mode 100644 guix/theodora.scm delete mode 100644 guix/uranus.scm 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))) diff --git a/guix/uranus.scm b/guix/uranus.scm deleted file mode 100644 index 7cc4f99..0000000 --- a/guix/uranus.scm +++ /dev/null @@ -1,97 +0,0 @@ -(define-module (uranus) - #: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-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") - (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)) - (packages - (append (map specification->package '("docker" "dbus" "docker-cli")) %base-packages)) - (services - (append (list - (service openssh-service-type - (openssh-configuration - (permit-root-login 'prohibit-password))) - - (service tailscale-service-type) - - - (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 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" "greek-polytonic.el")) - (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)) - %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))) -- cgit v1.2.3