From 6cf7f9a72eae0333705518ee865a72ea4b63399b Mon Sep 17 00:00:00 2001 From: Collin J. Doering Date: Tue, 12 Mar 2024 00:15:19 -0400 Subject: Initial setup (not yet bootstrapped or thoroughly tested) * .gitignore: Ignore files used by 'guix deploy' * .guix/guix-na/config/balg02.scm: Initial balg02 guix configuration (sans cuirass) * .pubkeys/collin.pub: Public key of Collin Doering * .pubkeys/deploy-key.pub: Public key used for 'guix deploy' usage * README.org: Various updates to how balg02 (guix-north-america) is setup --- .guix/guix-na/config/balg02.scm | 118 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 .guix/guix-na/config/balg02.scm (limited to '.guix/guix-na/config/balg02.scm') diff --git a/.guix/guix-na/config/balg02.scm b/.guix/guix-na/config/balg02.scm new file mode 100644 index 0000000..2c5c356 --- /dev/null +++ b/.guix/guix-na/config/balg02.scm @@ -0,0 +1,118 @@ +;; (C) Copyright Collin J. Doering 2024 +;; +;; This program is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;; File: balg02.scm +;; Author: Collin J. Doering +;; Date: Feb 24, 2024 + +(define-module (guix-na config balg02) + #:use-module (gnu) + #:use-module (gnu system) + #:use-module (gnu packages bash) + #:use-module (gnu packages shells) + #:use-module (gnu services base) + #:use-module (gnu services cuirass) + #:use-module (gnu services networking) + #:use-module (gnu services ssh) + #:use-module (gnu services web) + #:export (%system)) + +(define %automation-user "auto") + +(define %system + (operating-system + (host-name "balg02") + (timezone "US/Central") + (locale "en_US.utf8") + (keyboard-layout (keyboard-layout "us")) + + (bootloader (bootloader-configuration + (bootloader grub-bootloader) + (terminal-inputs '(console serial_1)) + (terminal-outputs '(console serial_1)) + (serial-unit 1) + (serial-speed 115200) + (targets '("/dev/sda")))) + + (swap-devices + (list (swap-space + (target "/swap/swapfile") + (dependencies (filter (file-system-mount-point-predicate "/swap") + file-systems))))) + + (file-systems (append + (list (file-system + (device (file-system-label "root")) + (mount-point "/") + (type "btrfs") + (options "subvol=@,compress=zstd")) + (file-system + (device (file-system-label "root")) + (mount-point "/swap") + (type "btrfs") + (options "subvol=@swap"))) + %base-file-systems)) + + (users (cons* (user-account + (name %automation-user) + (comment "Automation User") + (group "users") + (shell #~(string-append #$bash "/bin/bash")) + (supplementary-groups + '("wheel")) + (home-directory "/home/auto")) + (user-account + (name "collin") + (comment "Admin user") + (group "users") + (shell #~(string-append #$zsh "/bin/zsh")) + (supplementary-groups + '("wheel")) + (home-directory "/home/collin")) + %base-user-accounts)) + + (packages + (append + (map specification->package + '("nss-certs" + "recutils" + "openssh" + "tmux" + "emacs" + "emacs-guix")) + %base-packages)) + + (services + (append + (list (service openssh-service-type + (openssh-configuration + (password-authentication? #f) + (authorized-keys + `(("auto" ,(local-file "../../../.pubkeys/deploy-key.pub")) + ("collin" ,(local-file "../../../.pubkeys/collin.pub")) + ("root" ,(local-file "../../../.pubkeys/collin.pub")))))) + (service static-networking-service-type + (list (static-networking + (addresses + (list (network-address + (device "eno8303") + (value "216.37.76.55/24")))) + (routes + (list (network-route + (destination "default") + (gateway "216.37.76.1")))) + (name-servers '("216.37.64.2" "216.37.64.3"))))) + (service ntp-service-type)) + %base-services)))) -- cgit v1.2.3