CircuitForge node bootstrap/installer, forked from PRbL-bashrc
Find a file
pyr0ball 8274b405e6 fix: guard get_power_info call with declare -F check
get_power_info is defined in PRbL/functions, not in quickinfo.bashrc itself.
On systems where PRbL is sourced from an older GitHub copy or the function
is unavailable (e.g. WSL, minimal installs), the bare call crashes with
'command not found'. Guard with declare -F so the power block is silently
skipped when the function is not loaded.
2026-07-20 16:12:15 -07:00
cf-apps fix: stop double-executing git clone / setup hooks via run() 2026-07-18 22:12:05 -07:00
extras feat: add model-cache-redirect extra for /devl-topology nodes 2026-07-18 17:13:52 -07:00
lib fix: guard get_power_info call with declare -F check 2026-07-20 16:12:15 -07:00
PRbL@6090507530 chore: bump PRbL submodule for multiselect nameref fix 2026-07-18 22:31:46 -07:00
scripts chore: repoint PRbL submodule to Circuit-Forge fork, add mediatools 2026-07-17 11:48:38 -07:00
.gitignore added logs to gitignore 2023-05-09 15:38:59 -07:00
.gitmodules chore: repoint PRbL submodule to Circuit-Forge fork, add mediatools 2026-07-17 11:48:38 -07:00
functions fixed symlink and script permissions 2022-10-28 10:28:02 -07:00
install.sh feat: braille logo banner with ASCII fallback 2026-07-20 15:48:27 -07:00
README.md docs: remove real names; add quickinfo-only install docs 2026-07-20 16:01:57 -07:00
scriptexample.sh fixed dos line-endings 2022-03-23 14:22:49 -07:00

cf-node-bootstrap

Pyr0ball's Reductive [bash] Library (PRbL) Auto-Installer — plus CircuitForge node provisioning.


Bootstraps a new machine with a sane bash environment and optionally provisions it as a CircuitForge product node or GPU worker.

Depends on PRbL. Clone recursively:

git clone --recurse-submodules https://github.com/CircuitForgeLLC/cf-node-bootstrap.git
cd cf-node-bootstrap/

What it installs

  • PRbL — pluggable bash functions and scripting helpers
  • A ~/.bashrc.d/ drop-in directory for modular shell config
  • An informative login splash screen (quickinfo)
  • Vim color scheme and formatting
  • Core dependencies: git, vim, lm-sensors, curl, net-tools, bc

Install

Basic (current user)

./install.sh -i

Installs to ~/.local/share/prbl. During install you will be prompted to:

  1. Install optional extras (e.g. dev-tool cache redirect for machines with a separate /devl disk)
  2. Provision this node for CircuitForge apps (see Provisioning Profiles below)

Global (all users, requires root)

sudo ./install.sh -i

Installs to /usr/share/prbl.


Flags

Flag Description
-i / --install Install PRbL and run provisioning menus
-u / --update Update an existing install
-d / --dependencies Install package dependencies only
-D / --dry-run Show what would happen without making changes
-r / --remove Remove the PRbL install
-f / --force Remove then reinstall
-F / --force-remove Remove without reinstalling
-h / --help Print usage

Provisioning Profiles

After the base PRbL install, the installer offers to set up CircuitForge apps on this node. You will be asked to pick a profile, which controls which apps are available and which remote they are cloned from.

OEM / customer node

For end-user machines. Clones apps from the public GitHub mirror (CircuitForgeLLC). Only apps with oem in their app_available_profiles are shown.

Use this for:

  • A customer deploying a licensed CircuitForge product
  • A self-hoster running a public release

Collaborator node

For contributors and internal team machines. Clones apps from the private Forgejo instance (git.opensourcesolarpunk.com). All apps with collaborator in their app_available_profiles are shown, including pre-release and internal tools.

Use this for:

  • A developer working on CircuitForge products
  • An internal machine with Forgejo access

Orchard-join node

For GPU worker nodes joining an existing cf-orch orchard. Clones circuitforge-orch from Forgejo and hands off to its own interactive installer — when prompted, choose the agent topology and have your coordinator's URL ready.

Use this for:

  • Adding a GPU machine to an existing CircuitForge compute cluster
  • Any remote worker node joining a coordinator

Optional Extras

After the base install, you will be prompted to select extras. Each extra is a standalone install script in extras/.

Extra Purpose
model-cache-redirect Redirects pip, whisper, clip, and Hugging Face caches from ~/.cache to /devl/user-cache (for machines with a separate fast disk at /devl). Skips cleanly on machines without a separate /devl mount.

CF Apps manifests

Each CircuitForge product has a .manifest file under cf-apps/. These are plain bash files declaring the app name, description, repo URLs, supported provisioning profiles, and install types (bare-metal, Docker, Podman). See cf-apps/README.md for the full schema.

Available apps:

App Description
circuitforge-core Shared scaffold library required by most CF products
peregrine LLM-powered job discovery and application pipeline
kiwi Pantry tracker with barcode/receipt scanning and recipe suggestions
snipe Auction trust-scoring for eBay and estate sales
turnstone Log diagnostics tool
linnet Real-time tone annotation product
pagepiper Document/rulebook RAG tool

Quickinfo only (no full install)

To get the login splash screen without installing PRbL or changing anything else on the system:

# Create the drop-in directory if it doesn't exist
mkdir -p ~/.bashrc.d

# Copy the quickinfo scripts
cp lib/skel/.bashrc.d/11-quickinfo.bashrc ~/.bashrc.d/
cp lib/skel/.bashrc.d/11-quickinfo.settings ~/.bashrc.d/

# Wire up the drop-in directory if your .bashrc doesn't already include it
grep -q 'bashrc.d' ~/.bashrc || cat >> ~/.bashrc << 'EOF'

# Load drop-in bashrc modules
for f in ~/.bashrc.d/*.bashrc; do [ -f "$f" ] && source "$f"; done
EOF

The quickinfo script self-sources PRbL at runtime (via curl/wget) so no prior PRbL install is needed.

Customize display options by editing ~/.bashrc.d/11-quickinfo.settings — you can hide disconnected adapters, filter specific network interfaces, or restrict which disks are shown.

Open a new terminal (or source ~/.bashrc) to see the splash.


Planned

  • Expanded automatic OS detection and package management (non-Debian/Ubuntu)
  • Modular login splash page