From 558f8e9f85229c1c461b1bfdfebb663d4d34d725 Mon Sep 17 00:00:00 2001 From: Steffen Beyer Date: Fri, 10 Apr 2026 08:56:41 +0200 Subject: [PATCH] Add self-hosted development system example --- examples/system/self-hosted-dev.scm | 43 +++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 examples/system/self-hosted-dev.scm 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))