aboutsummaryrefslogtreecommitdiff
;; -*-scheme-*-

;; This is an operating system configuration template
;; for a "bare bones" QEMU setup, with no X11 display server.

;; To build a disk image for a virtual machine, do:
;;
;;     ./pre-inst-env guix system image --image-type=hurd-qcow2 \
;;         gnu/system/examples/bare-hurd.tmpl
;;
;; You may run it like so:
;;
;;     guix shell qemu -- qemu-system-i386 -m 2048                \
;;       --enable-kvm                                             \
;;       --device e1000,netdev=net0                               \
;;       --netdev user,id=net0,hostfwd=tcp:127.0.0.1:10022-:2222  \
;;       --snapshot                                               \
;;       --hda /gnu/store/...-disk-image
;;
;; and use it like:
;;
;;     ssh -p 10022 root@localhost
;;     guix build -e '(@@ (gnu packages commencement) gnu-make-boot0)'
;;
;; or even, if you build the image with at least --image-size=3G:
;;
;;     guix build hello

(use-modules (gnu) (gnu system hurd) (guix utils))
(use-service-modules ssh)
(use-package-modules ssh)

(define %hurd-os
  (operating-system
    (inherit %hurd-default-operating-system)
    (bootloader (bootloader-configuration
                 (bootloader grub-minimal-bootloader)
                 (targets '("/dev/sdX"))))
    (file-systems (cons (file-system
                          (device (file-system-label "hurd"))
                          (mount-point "/")
                          (type "ext2"))
                        %base-file-systems))
    (host-name "guixygnu")
    (timezone "Europe/Amsterdam")
    (users (cons (user-account
                  (name "guix")
                  (comment "Anonymous Hurd Hacker")
                  (group "users")
                  (supplementary-groups '("wheel")))
                 %base-user-accounts))
    (packages (cons openssh-sans-x %base-packages/hurd))
    (services (cons (service openssh-service-type
                             (openssh-configuration
                              (openssh openssh-sans-x)
                              (port-number 2222)
                              (permit-root-login #t)
                              (allow-empty-passwords? #t)
                              (password-authentication? #t)))
                    ;; For installing on a real (non-QEMU) machine, use:
                    ;; (static-networking-service-type
                    ;;   (list %loopback-static-networking
                    ;;        (static-networking
                    ;;         ...)))
                    ;; %base-services/hurd
                    %base-services+qemu-networking/hurd))))

%hurd-os
nu/services/vpn.scm (wireguard-activation): Do not create private-key if the field is #f. * doc/guix.texi (VPN Services)[wireguard-configuration]: Document it. Change-Id: Iac419809ae94eb76e97ff1f1749e2f4b3e65bb04 Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Richard Sent 2023-09-09services: vpn: Fix broken format string for wireguard dns....* gnu/services/vpn.scm (wireguard-configuration-file): Fix broken format string. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com> Reily Siegel 2023-07-21services: wireguard: Add a 'configuration' action....* gnu/services/vpn.scm (wireguard-shepherd-service) [actions]: New field. Maxim Cournoyer 2023-07-21services: wireguard: Clean-up configuration file serializer....Previously, the generated config file would contain arbitrary whitespace that made it look ugly. * gnu/services/vpn.scm (<wireguard-configuration>) [dns]: Change default value from #f to '(). (wireguard-configuration-file): Use match-record. Format each line individually, assembling the lines at the end to avoid extraneous white space. * doc/guix.texi (VPN Services): Update doc. Maxim Cournoyer 2023-07-21services: wireguard: Implement a dynamic IP monitoring feature....* gnu/services/vpn.scm (<wireguard-configuration>) [monitor-ips?, monitor-ips-internal]: New fields. * gnu/services/vpn.scm (define-with-source): New syntax. (wireguard-service-name, strip-port/maybe) (ipv4-address?, ipv6-address?, host-name?) (endpoint-host-names): New procedure. (wireguard-monitoring-jobs): Likewise. (wireguard-service-type): Register it. * tests/services/vpn.scm: New file. * Makefile.am (SCM_TESTS): Register it. * doc/guix.texi (VPN Services): Update doc. Reviewed-by: Bruno Victal <mirai@makinata.eu> Maxim Cournoyer 2023-03-03services: vpn: Deprecate 'openvpn-client-service' & 'openvpn-server-service' ......* doc/guix.texi (VPN Services): Replace 'openvpn-client-service' & 'openvpn-server-service' procedures with their service-type counterparts. * gnu/services/vpn.scm (openvpn-client-service, openvpn-server-service): Deprecate procedure. (openvpn-server-service-type, openvpn-client-service-type): Set default value. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Bruno Victal