;; 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))