diff --git a/examples/system/self-hosted-dev.scm b/examples/system/self-hosted-dev.scm new file mode 100644 index 0000000..120b433 --- /dev/null +++ b/examples/system/self-hosted-dev.scm @@ -0,0 +1,43 @@ +;; Example self-hosted Fruix development system declaration. +;; +;; This is intended for a Fruix node that should be able to: +;; - run Fruix locally +;; - enter a development environment with the recovered developer tooling +;; - enter a sanitized build environment for package/base work +;; - host the pi agent runtime from the development profile +;; +;; Build it with: +;; fruix system build examples/system/self-hosted-dev.scm \ +;; --system self-hosted-development-operating-system +;; +;; After boot, typical workflows are: +;; eval "$(/usr/local/bin/fruix-development-environment)" +;; eval "$(/usr/local/bin/fruix-build-environment)" +;; +;; The development/build profiles currently include: +;; - FreeBSD runtime + headers +;; - Clang toolchain +;; - GNU make +;; - Autotools +;; - OpenSSL +;; - zlib +;; - sh + bash +;; - nodejs + npm +;; - ripgrep +;; - tmux +;; - neovim + +(use-modules (fruix system freebsd) + (fruix packages freebsd)) + +(define self-hosted-development-operating-system + (operating-system + #:host-name "fruix-selfhosted" + ;; Enable SSH on the node so it can be used as an operator/development host. + #:rc-conf-entries '(("clear_tmp_enable" . "YES") + ("sendmail_enable" . "NONE") + ("sshd_enable" . "YES")) + ;; For real deployments, add keys with #:root-authorized-keys or customize + ;; the default operator account as needed. + #:development-packages %freebsd-development-profile-packages + #:build-packages %freebsd-development-profile-packages))