aboutsummaryrefslogtreecommitdiff
path: root/.guix/guix-na/config
diff options
context:
space:
mode:
authorCollin J. Doering2024-03-12 00:15:19 -0400
committerCollin J. Doering2024-03-12 00:15:19 -0400
commit6cf7f9a72eae0333705518ee865a72ea4b63399b (patch)
treed5e73e5f53edb929158fe1e595f85424605467e2 /.guix/guix-na/config
parent254381bfa7dadb95bc0dd8e1047bfa97cc7419bf (diff)
downloadguix-north-america-6cf7f9a72eae0333705518ee865a72ea4b63399b.tar.gz
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
Diffstat (limited to '.guix/guix-na/config')
-rw-r--r--.guix/guix-na/config/balg02.scm118
1 files changed, 118 insertions, 0 deletions
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 <http://www.gnu.org/licenses/>.
+
+;; File: balg02.scm
+;; Author: Collin J. Doering <collin@rekahsoft.ca>
+;; 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))))