;;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-FileCopyrightText: 2024-2025 Marek Paśnikowski (define-module (deployment systems ayase) #:use-module ((gnu system) #:prefix gnu:system:) #:use-module ((gnu system file-systems) #:prefix gnu:system:file-systems:) #:use-module ((gnu system uuid) #:prefix gnu:system:uuid:) #:use-module ((nongnu packages linux) #:prefix nongnu:packages:linux:) #:use-module ((nongnu system linux-initrd) #:prefix nongnu:system:linux-initrd:) #:use-module ((sovereign devices amd64) #:prefix sovereign:devices:amd64:) #:use-module ((sovereign packages protonmail) #:prefix sovereign:packages:protonmail:) #:use-module ((sovereign systems) #:prefix sovereign:systems:) #:use-module ((suweren system) #:prefix suweren:system:) #:use-module ((users id1000) #:prefix users:id1000:)) (define efi-filesystem-uuid (gnu:system:uuid:uuid "B4FB-CBD9" 'fat32)) (define host-name "ayase") (define (label number) (gnu:system:file-systems:file-system-label (string-append host-name "-swap" number))) (define root-filesystem-uuid (gnu:system:uuid:uuid "615a98cd-a632-4ee5-a6f4-e5ebcaa6fb8c")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define efi-partition (gnu:system:file-systems:file-system (mount-point "/boot") (device efi-filesystem-uuid) (type "vfat"))) (define keyboard-layout ((@ (gnu system keyboard) keyboard-layout) "pl")) (define (libvirt-service) (use-modules (gnu services virtualization)) ((@ (gnu services) service) libvirt-service-type)) (define (virtlog-service) (use-modules (gnu services virtualization)) ((@ (gnu services) service) virtlog-service-type)) (define (openssh-service) (use-modules (gnu services ssh)) ((@ (gnu services) service) openssh-service-type)) (define root-partition (gnu:system:file-systems:file-system (mount-point "/") (device root-filesystem-uuid) (type "ext4"))) (define (swap-label number) (let ((target-label (label number))) (gnu:system:file-systems:swap-space (target target-label)))) (define (system-packages-service) (use-modules (gnu packages gnome) (gnu packages gnupg) (gnu packages kde-pim) (gnu services)) (simple-service 'system-packages profile-service-type (list gnome-boxes kgpg pinentry-qt pinentry-tty))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define (bootloader) (use-modules (gnu bootloader grub)) ((@ (gnu bootloader) bootloader-configuration) (bootloader grub-efi-bootloader) (targets (list "/boot/efi")) (keyboard-layout keyboard-layout))) (define (file-systems) (append gnu:system:file-systems:%base-file-systems (list root-partition efi-partition))) (define services (let* ( (l-guix-homes (list users:id1000:name/home-environment)) (l-guix-home-service (sovereign:systems:guix-home-service l-guix-homes))) (append sovereign:systems:%sovereign-services (list sovereign:packages:protonmail:nogui-profile l-guix-home-service (openssh-service) (system-packages-service))))) (define swap-device-1 (swap-label "-1")) (define swap-device-2 (swap-label "-2")) (define (users) (use-modules (gnu system accounts)) (append (@ (gnu system shadow) %base-user-accounts) (list users:id1000:uid1000-account))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define-public operating-system* (gnu:system:operating-system (kernel nongnu:packages:linux:linux) (bootloader (bootloader)) (keyboard-layout keyboard-layout) (initrd nongnu:system:linux-initrd:microcode-initrd) (firmware (list nongnu:packages:linux:linux-firmware)) (host-name host-name) (file-systems (file-systems)) (swap-devices (list swap-device-1 swap-device-2)) (users (users)) (timezone "Europe/Warsaw") (locale suweren:system:polish-locale-string) (locale-definitions suweren:system:%suweren-locale-definitions) (services services) (sudoers-file sovereign:systems:%sovereign-sudoers-specification)))