From 8b98a1c9ec15811ce747aaecb0ea0fd6e5d03948 Mon Sep 17 00:00:00 2001 From: Marek Paśnikowski Date: Sat, 21 Mar 2026 21:10:18 +0100 Subject: (deployment systems aisaka): simplify system definition --- deployment/systems/aisaka.scm | 117 ++++++++++++++++++++++-------------------- 1 file changed, 62 insertions(+), 55 deletions(-) (limited to 'deployment') diff --git a/deployment/systems/aisaka.scm b/deployment/systems/aisaka.scm index 3377da2..230ff32 100644 --- a/deployment/systems/aisaka.scm +++ b/deployment/systems/aisaka.scm @@ -683,61 +683,68 @@ (gnu:services:service gnu:services:base:guix-publish-service-type configuration))) +(define home-environments + (list users:id1000:name/home-environment)) + +(define guix-home-service + (sovereign:systems:guix-home-service home-environments)) + +(define (modify-essential-services operating-system) + (let + ((default-essential-services (gnu:system:operating-system-default-essential-services operating-system))) + (gnu:services:modify-services default-essential-services + (gnu:services:base:hosts-service-type config + => + (list + (gnu:services:base:host "127.0.0.1" + "marekpasnikowski.pl" + (list "localhost")) + (gnu:services:base:host "::1" + "localhost")))))) + (define-public system - (let* - ((home-environments- (list users:id1000:name/home-environment)) - (home-service- (sovereign:systems:guix-home-service home-environments-))) - (gnu:system:operating-system - (bootloader system-bootloader) - (label (sovereign:systems:operating-system-label* system-name - gnu:system:this-operating-system)) - (kernel nongnu:packages:linux:linux) - (keyboard-layout system-keyboard-layout) - (initrd nongnu:system:linux-initrd:microcode-initrd) - (firmware (list nongnu:packages:linux:linux-firmware)) - (host-name system-name) - (file-systems (cons* file-system-root - file-system-efi - gnu:system:file-systems:%base-file-systems)) - (users (cons* users:id1000:uid1000-account - users:vmail:vmail-account - gnu:system:shadow:%base-user-accounts)) - (groups (cons* vmail-group - gnu:system:shadow:%base-groups)) - (packages (cons* sovereign:packages:jekyll:custom-jekyll - gnu:packages:tls:openssl - gnu:packages:matrix:synapse - gnu:system:%base-packages)) - (timezone "Europe/Warsaw") - (locale sovereign:systems:pl-locale) - (locale-definitions sovereign:systems:%sovereign-locale-definitions) - (services (cons* users:id1000:dkim-service - users:id1000:dovecot-service - users:id1000:smtp-service - knot - certbot - cgit - etc - fcgiwrap - gitolite - home-service- - nginx - offload-rakan - openssh - radicale - static-networking - iproute2-networking - %sovereign-services*)) - (essential-services (gnu:services:modify-services - (gnu:system:operating-system-default-essential-services gnu:system:this-operating-system) - (gnu:services:base:hosts-service-type config - => - (list - (gnu:services:base:host "127.0.0.1" - "marekpasnikowski.pl" - (list "localhost")) - (gnu:services:base:host "::1" - "localhost"))))) - (sudoers-file sovereign:systems:%sovereign-sudoers-specification)))) + (gnu:system:operating-system + (bootloader system-bootloader) + (label (sovereign:systems:operating-system-label* system-name + gnu:system:this-operating-system)) + (kernel nongnu:packages:linux:linux) + (keyboard-layout system-keyboard-layout) + (initrd nongnu:system:linux-initrd:microcode-initrd) + (firmware (list nongnu:packages:linux:linux-firmware)) + (host-name system-name) + (file-systems (cons* file-system-root + file-system-efi + gnu:system:file-systems:%base-file-systems)) + (users (cons* users:id1000:uid1000-account + users:vmail:vmail-account + gnu:system:shadow:%base-user-accounts)) + (groups (cons* vmail-group + gnu:system:shadow:%base-groups)) + (packages (cons* sovereign:packages:jekyll:custom-jekyll + gnu:packages:tls:openssl + gnu:packages:matrix:synapse + gnu:system:%base-packages)) + (timezone "Europe/Warsaw") + (locale sovereign:systems:pl-locale) + (locale-definitions sovereign:systems:%sovereign-locale-definitions) + (services (cons* users:id1000:dkim-service + users:id1000:dovecot-service + users:id1000:smtp-service + knot + certbot + cgit + etc + fcgiwrap + gitolite + guix-home-service + nginx + offload-rakan + openssh + radicale + static-networking + iproute2-networking + %sovereign-services*)) + (essential-services (modify-essential-services gnu:system:this-operating-system)) + (sudoers-file sovereign:systems:%sovereign-sudoers-specification))) (define-public operating-system* system) -- cgit v1.3