add minimal-system
to create a VM image and build VM host images from there
This commit is contained in:
parent
ac52ab8dc1
commit
088f7945c3
|
@ -0,0 +1,109 @@
|
|||
;; This is an operating system configuration template
|
||||
;; for a "bare bones" setup, with no X11 display server.
|
||||
(define-module (fschl systems minimal-system)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (gnu)
|
||||
#:use-module (gnu services docker)
|
||||
#:use-module (gnu system)
|
||||
#:use-module (gnu system nss)
|
||||
#:use-module (gnu system setuid))
|
||||
|
||||
(use-modules (gnu))
|
||||
(use-service-modules networking
|
||||
;; dbus ; required by dockerd
|
||||
docker
|
||||
guix virtualization ssh)
|
||||
(use-package-modules linux
|
||||
docker
|
||||
;; freedesktop ; required by elogind, which is required by dockerd
|
||||
screen ssh vim certs)
|
||||
|
||||
|
||||
;; (define-public base-operating-system
|
||||
(operating-system
|
||||
(host-name "home-server")
|
||||
(timezone "Europe/Berlin")
|
||||
(locale "en_US.utf8")
|
||||
|
||||
(keyboard-layout (keyboard-layout "de" "altgr-intl" #:model "thinkpad"))
|
||||
|
||||
;; Boot in "legacy" BIOS mode, assuming /dev/sdX is the
|
||||
;; target hard disk, and "my-root" is the label of the target
|
||||
;; root file system.
|
||||
(bootloader (bootloader-configuration
|
||||
(bootloader grub-bootloader)
|
||||
(targets '("/dev/sdX"))))
|
||||
;; It's fitting to support the equally bare bones ‘-nographic’
|
||||
;; QEMU option, which also nicely sidesteps forcing QWERTY.
|
||||
(kernel-arguments (list "console=ttyS0,115200"))
|
||||
(file-systems (cons (file-system
|
||||
(device (file-system-label "my-root"))
|
||||
(mount-point "/")
|
||||
(type "ext4"))
|
||||
%base-file-systems))
|
||||
|
||||
;; This is where user accounts are specified. The "root"
|
||||
;; account is implicit, and is initially created with the
|
||||
;; empty password.
|
||||
(users (cons (user-account
|
||||
(name "fschl")
|
||||
(comment "F S")
|
||||
(group "users")
|
||||
|
||||
;; Adding the account to the "wheel" group makes it a
|
||||
;; sudoer.
|
||||
(supplementary-groups '("wheel"
|
||||
"netdev"
|
||||
;; "docker"
|
||||
)))
|
||||
%base-user-accounts))
|
||||
|
||||
;; Globally-installed packages.
|
||||
(packages (cons* vim
|
||||
net-tools
|
||||
%base-packages))
|
||||
|
||||
;; Add services to the baseline: a DHCP client and
|
||||
;; an SSH server.
|
||||
(services (append (list (service dhcp-client-service-type)
|
||||
;; (service dbus-root-service-type) ;; required by dockerd
|
||||
;; (service elogind-service-type) ;; required by dockerd
|
||||
;; (service docker-service-type)
|
||||
;; (service oci-container-service-type
|
||||
;; (list
|
||||
;; (oci-container-configuration
|
||||
;; (image "jellyfin/jellyfin")
|
||||
;; (provision "jellyfin")
|
||||
;; (network "host")
|
||||
;; (ports
|
||||
;; '(("8096" . "8096")))
|
||||
;; (volumes
|
||||
;; '("jellyfin-config:/config"
|
||||
;; "jellyfin-cache:/cache"
|
||||
;; "/home/daviwil/Media:/media")))))
|
||||
;; (service oci-container-service-type
|
||||
;; (list
|
||||
;; (oci-container-configuration
|
||||
;; (image "pihole/pihole:latest")
|
||||
;; (provision "pihole")
|
||||
;; (network "host")
|
||||
;; (ports
|
||||
;; '("53:53/tcp"
|
||||
;; "53:53/udp"
|
||||
;; "67:67/udp" ; Only required if using Pi-hole as DHCP server
|
||||
;; "80:80/tcp"))
|
||||
;; (environment
|
||||
;; '(("TZ" . "America/Chicago")))
|
||||
;; ; Uncomment and set a secure password, or it will be random
|
||||
;; ; '(("WEBPASSWORD" . "set a secure password here"))
|
||||
;; (volumes
|
||||
;; '("/docker/Pihole:/etc/pihole"
|
||||
;; "/docker/Dnsmasq:/etc/dnsmasq.d")))))
|
||||
(service openssh-service-type
|
||||
(openssh-configuration
|
||||
(openssh openssh-sans-x)
|
||||
(port-number 2222))))
|
||||
%base-services)))
|
||||
|
||||
|
||||
;; (base-operating-system)
|
Loading…
Reference in New Issue