diff options
Diffstat (limited to 'users')
-rw-r--r-- | users/id1000.scm | 215 | ||||
-rw-r--r-- | users/id1001.scm | 81 | ||||
-rw-r--r-- | users/uid1000-gitconfig | 13 | ||||
-rw-r--r-- | users/vmail.scm | 14 |
4 files changed, 179 insertions, 144 deletions
diff --git a/users/id1000.scm b/users/id1000.scm index cfc4827..a80f63e 100644 --- a/users/id1000.scm +++ b/users/id1000.scm @@ -1,40 +1,42 @@ (define-module (users id1000) - ;; home-environment - #:use-module (gnu home) - - ;; home-profile-service-type - ;; home-xdg-configuration-files-service-type - #:use-module (gnu home services) - - ;; gparted - #:use-module (gnu packages disk) - - ;; emacs - #:use-module (gnu packages emacs) - - ;; emacs-org-roam - ;; emacs-paredit - #:use-module (gnu packages emacs-xyz) - - ;; git - #:use-module (gnu packages version-control) - - ;; simple-service - #:use-module (gnu services) - - ;; user-account - #:use-module (gnu system shadow) - - ;; local-file #:use-module (guix gexp) + #:use-module (ice-9 match) + #:use-module ( (deployment users) + #:prefix deployment:users:) + #:use-module ( (gnu home) + #:prefix gnu:home:) + #:use-module ( (gnu home services) + #:prefix gnu:home:services:) + #:use-module ( (gnu home services desktop) + #:prefix gnu:home:services:desktop:) + #:use-module ( (gnu home services shepherd) + #:prefix gnu:home:services:shepherd:) + #:use-module ( (gnu home services sound) + #:prefix gnu:home:services:sound:) + #:use-module ( (gnu packages audio) + #:prefix gnu:packages:audio:) + #:use-module ( (gnu packages disk) + #:prefix gnu:packages:disk:) + #:use-module ( (gnu packages kde) + #:prefix gnu:packages:kde:) + #:use-module ( (gnu packages librewolf) + #:prefix gnu:packages:librewolf:) + #:use-module ( (gnu packages version-control) + #:prefix gnu:packages:version-control:) + #:use-module ( (gnu services) + #:prefix gnu:services:) + #:use-module ( (gnu system accounts) + #:prefix gnu:system:accounts:) + #:use-module ( (guix records) + #:prefix guix:records:) + #:use-module ( (sovereign services admin) + #:prefix sovereign:services:admin:) + #:use-module ( (sovereign services fontutils) + #:prefix sovereign:services:fontutils:) + #:use-module ( (sovereign systems) + #:prefix sovereign:systems:)) - ;; %suweren-home-services - #:use-module (suweren home) - - #:use-module (guix records) - #:use-module (ice-9 match)) - -(define-record-type* <dkimproxy-out-signature-configuration> +(guix:records:define-record-type* <dkimproxy-out-signature-configuration> dkimproxy-out-signature-configuration make-dkimproxy-out-signature-configuration dkimproxy-out-signature-configuration? @@ -94,7 +96,7 @@ ")") ""))))) -(define-record-type* <dkimproxy-out-configuration> +(guix:records:define-record-type* <dkimproxy-out-configuration> dkimproxy-out-configuration make-dkimproxy-out-configuration dkimproxy-out-configuration? @@ -225,27 +227,29 @@ (stop #~ (make-kill-destructor))))))) (define %dkimproxy-accounts - (list (user-group (name "dkimproxy") - (system? #t)) - (user-account (name "dkimproxy") - (group "dkimproxy") - (system? #t) - (comment "Dkimproxy user") - (home-directory "/var/empty") - (shell (file-append (@ (gnu packages admin) - shadow) - "/sbin/nologin"))))) + (list (gnu:system:accounts:user-group + (name "dkimproxy") + (system? #t)) + (gnu:system:accounts:user-account + (name "dkimproxy") + (group "dkimproxy") + (system? #t) + (comment "Dkimproxy user") + (home-directory "/var/empty") + (shell (file-append (@ (gnu packages admin) + shadow) + "/sbin/nologin"))))) (define dkimproxy-out-service-type - (service-type + (gnu:services:service-type (name 'dkimproxy-out) (description "stub") (extensions (list - (service-extension - account-service-type + (gnu:services:service-extension + (@ (gnu system shadow) account-service-type) (const %dkimproxy-accounts)) - (service-extension + (gnu:services:service-extension (@ (gnu services shepherd) shepherd-root-service-type) dkimproxy-out-shepherd-service))))) @@ -440,8 +444,8 @@ "\n" "# We define some actions\n" "action receive lmtp \"/var/run/dovecot/lmtp\" rcpt-to virtual <aliases>\n" + "action godkim relay host smtp://localhost:10027\n" "action outbound relay helo \"" domain "\"\n" - "action godkim relay host smtp://127.0.0.1:10027\n" "\n" "# We accept to relay any mail from authenticated users\n" "match for any from any auth action godkim\n" @@ -474,7 +478,7 @@ (define dkimproxy-out-configuration* (dkimproxy-out-configuration (listen "127.0.0.1:10027") - (relay "172.0.0.1:10028") + (relay "127.0.0.1:10028") (sender-map `(,dkimproxy-sender-marekpasnikowski)))) (define dovecot-configuration* @@ -494,76 +498,89 @@ (userdbs (list dovecot-userdb-static-configuration)))) (define groups - (list "kvm" + (list "audio" + ;; "libvirt" + "netdev" + "video" "wheel")) (define opensmtpd-configuration* ((@ (gnu services mail) opensmtpd-configuration) + (shepherd-requirement (list 'dkimproxy-out + 'networking)) (config-file (opensmtpd-config "enp1s0" "marekpasnikowski.pl")))) ;;; +(define environment-variables + (let + ( (l-variables (list '("EDITOR" . "kate -s sesja -b")))) + (gnu:services:simple-service 'id1000-environment-variables + gnu:home:services:home-environment-variables-service-type + l-variables))) + (define-public dkim-service - (service dkimproxy-out-service-type + (gnu:services:service dkimproxy-out-service-type dkimproxy-out-configuration*)) (define-public dovecot-service - (service (@ (gnu services mail) dovecot-service-type) + (gnu:services:service (@ (gnu services mail) dovecot-service-type) dovecot-configuration*)) (define-public smtp-service - (service (@ (gnu services mail) opensmtpd-service-type) + (gnu:services:service (@ (gnu services mail) opensmtpd-service-type) opensmtpd-configuration*)) (define-public uid1000-name "marek") (define-public uid1000-account - (user-account (name uid1000-name) - (group "users") - (supplementary-groups groups) - (uid 1000) - (comment "Marek Paśnikowski") - (home-directory "/home/marek"))) + (gnu:system:accounts:user-account + (name uid1000-name) + (password deployment:users:initial-password) + (uid 1000) + (group "users") + (supplementary-groups groups) + (comment "Marek Paśnikowski") + (home-directory "/home/marek"))) (define-public uid1000-home-environment - (lambda (host-name*) - (let* ((gitconfig-file (local-file "uid1000-gitconfig")) ; TODO modularize - (gitignore-file (local-file "uid1000-gitignore")) ; TODO review the contents - - (gitconfig (list "git/config" - gitconfig-file)) - (gitignore (list "git/ignore" - gitignore-file)) - - (emacs-packages (list emacs - emacs-org-roam - emacs-paredit)) - (git-configuration-files (list gitconfig - gitignore)) - (git-packages (list git)) - (packages (list gparted)) - - (emacs-software (simple-service 'emacs-packages - home-profile-service-type - emacs-packages)) - (git-configuration (simple-service 'git-configuration - home-xdg-configuration-files-service-type - git-configuration-files)) - (git-software (simple-service 'git-packages - home-profile-service-type - git-packages)) - (profile (simple-service 'user-packages - home-profile-service-type - packages)) - - (%suweren-home-services* (%suweren-home-services host-name*)) - (user-services (list emacs-software - git-configuration - git-software - profile)) + (let + ( (l-gitconfig-file (local-file "uid1000-gitconfig")) ; TODO modularize + (l-gitignore-file (local-file "uid1000-gitignore")) ; TODO review the contents + (l-home-dbus-service (gnu:services:service gnu:home:services:desktop:home-dbus-service-type)) + (l-home-pipewire-service (gnu:services:service gnu:home:services:sound:home-pipewire-service-type)) + (l-home-shepherd-service (gnu:services:service gnu:home:services:shepherd:home-shepherd-service-type))) + (let + ( (l-gitconfig (list "git/config" + l-gitconfig-file)) + (l-gitignore (list "git/ignore" + l-gitignore-file))) + (let* + ( (l-git-configuration-files (list l-gitconfig + l-gitignore)) + (l-git-configuration (gnu:services:simple-service 'git-configuration + gnu:home:services:home-xdg-configuration-files-service-type + l-git-configuration-files)) + (l-user-services (list sovereign:systems:bash-configuration + environment-variables + l-git-configuration + (sovereign:services:fontutils:home-fontconfig-service-type #f + #f + "Unifont"))) + (l-services (cons* sovereign:services:admin:update-commands + l-home-dbus-service + l-home-pipewire-service + l-home-shepherd-service + l-user-services))) + (gnu:home:home-environment + (packages (cons* gnu:packages:version-control:git + gnu:packages:disk:gparted + gnu:packages:librewolf:librewolf + sovereign:systems:common-home-environment-packages)) + (services l-services)))))) - (services* (append %suweren-home-services* - user-services))) - (home-environment (services services*))))) +(define-public name/home-environment + (list uid1000-name + uid1000-home-environment)) diff --git a/users/id1001.scm b/users/id1001.scm index 26a76f6..2e53210 100644 --- a/users/id1001.scm +++ b/users/id1001.scm @@ -1,45 +1,46 @@ -(define-module (users id1001) - ;; home-environment - #:use-module (gnu home) - - ;; home-profile-service-type - ;; home-xdg-configuration-files-service-type - #:use-module (gnu home services) - - ;; simple-service - #:use-module (gnu services) - - ;; user-account - #:use-module (gnu system shadow) +;;; SPDX-License-Identifier: GPL-3.0-or-later +;;; SPDX-FileCopyrightText: 2025 Marek Paśnikowski <marek@marekpasnikowski.pl> - ;; %suweren-home-services - #:use-module (suweren home)) - -;; string -(define-public uid1001-name - "lilia") - -;; (string) -> -;; record user-account -(define-public uid1001-account - (user-account (name uid1001-name) - (group "users") - (uid 1001) - (comment "Liliana Ruszuk") - (home-directory "/home/lilia"))) +(define-module (users id1001) + #:use-module ( (deployment users) + #:prefix deployment:users:) + #:use-module ( (gnu home) + #:prefix gnu:home:) + #:use-module ( (gnu system accounts) + #:prefix gnu:system:accounts:) + #:use-module ( (nongnu packages mozilla) + #:prefix nongnu:packages:mozilla:) + #:use-module ( (sovereign services admin) + #:prefix sovereign:services:admin:) + #:use-module ( (sovereign services fontutils) + #:prefix sovereign:services:fontutils:) + #:use-module ( (sovereign systems) + #:prefix sovereign:systems:)) -;; record home-environment -(define-public uid1001-home-environment - (lambda (host-name*) - (let* ((packages (list )) +(define name + "janusz") - (profile (simple-service 'user-packages - home-profile-service-type - packages)) +(define home-environment + (let + ( (l-fontconfig (sovereign:services:fontutils:home-fontconfig-service-type #t + #t + "Noto"))) + (let + ( (l-services (list sovereign:systems:bash-configuration + sovereign:services:admin:update-commands + l-fontconfig))) + (gnu:home:home-environment + (packages (cons* nongnu:packages:mozilla:firefox + sovereign:systems:common-home-environment-packages)) + (services l-services))))) - (%suweren-home-services* (%suweren-home-services host-name*)) - (user-services (list profile)) +(define-public name/home-environment + (list name + home-environment)) - (services* (append %suweren-home-services* - user-services))) - (home-environment (services services*))))) +(define-public user-account + (gnu:system:accounts:user-account + (name name) + (password deployment:users:initial-password) + (group "users") + (supplementary-groups (list "wheel")))) diff --git a/users/uid1000-gitconfig b/users/uid1000-gitconfig index 300f906..c8cfb5d 100644 --- a/users/uid1000-gitconfig +++ b/users/uid1000-gitconfig @@ -1,10 +1,13 @@ +[core] +quotePath = false + [commit] - gpgsign = true +gpgsign = true [user] - email = marek@marekpasnikowski.pl - name = Marek Paśnikowski - signingkey = 6D81B1207711899F +email = marek@marekpasnikowski.pl +name = Marek Paśnikowski +signingkey = 6D81B1207711899F [push] - autoSetupRemote = true +autoSetupRemote = true diff --git a/users/vmail.scm b/users/vmail.scm new file mode 100644 index 0000000..95ba916 --- /dev/null +++ b/users/vmail.scm @@ -0,0 +1,14 @@ +(define-module (users vmail) + #:use-module ((gnu system accounts) + #:prefix gnu:system:accounts:)) + +(define vmail-name + "vmail") + +(define-public vmail-account + (gnu:system:accounts:user-account + (name vmail-name) + (group vmail-name) + (comment "used to own and manage mailboxes") + (home-directory "/home/vmail") + (system? #t))) |