Commit graph

255 commits

Author SHA1 Message Date
e33d6bb1ad feat: record install-time state, show CircuitForge node info in quickinfo
- lib/cf-apps.functions: cf-provision-node/install-cf-app/
  provision-orchard-node now write to ~/.config/cf-node-bootstrap/state.conf
  (record-cf-node-state) - provisioning profile, each installed app
  (name:install_type:clone_dir), and orchard role/coordinator URL. The
  orchard role/coordinator is read back from circuitforge-orch's own
  generated ~/.config/circuitforge/cf-orch.env rather than tracked
  separately, since that's the actual source of truth for what its
  interactive installer decided.
- 11-quickinfo.bashrc: new "CircuitForge Node" section (show_cf_node_info,
  default true) displaying the provisioning profile, orchard role/
  coordinator if joined, and each installed app with a best-effort
  running/stopped status. Docker-compose apps are checked by compose
  project from their clone dir rather than by container name, since
  compose's generated container names don't match the app name directly.
  Section is entirely absent if the state file doesn't exist yet (i.e.
  the CF Apps menu has never been run on this node).
2026-07-17 21:16:07 -07:00
2a325b55bd feat: interactive CF Apps install menu with oem/collaborator/orchard profiles
Adds a manifest-driven "Install CircuitForge Apps" menu to install.sh,
alongside the existing extras-menu pattern.

- cf-apps/*.manifest: one file per product (circuitforge-core, peregrine,
  kiwi, snipe, turnstone, pagepiper, linnet - the beta/alpha menagerie
  products), declaring repo URLs, supported install types, conda env,
  .env template, and per-install-type setup hooks. Hooks prefer shelling
  out to each product's own install.sh/Makefile/docker-compose rather
  than reimplementing their setup logic.
- lib/cf-apps.functions: registry loader, provisioning-profile prompt
  (oem/collaborator/orchard), app multiselect menu, and the install
  dispatcher (clone, .env bootstrap, install-type selection, hook
  dispatch). circuitforge-core installs automatically as a dependency
  for apps that declare app_needs_core=true.

Provisioning profiles gate both which apps are offered and which remote
credentials are used:
- oem: public CircuitForgeLLC GitHub mirrors only, no Forgejo access,
  no circuitforge-orch (product install menu only)
- collaborator: private Circuit-Forge Forgejo, same product menu
- orchard: narrow flow, not the product menu - clones circuitforge-orch
  (Forgejo-only, no public mirror exists) and hands off interactively to
  its own install.sh, which gathers agent/coordinator topology itself
  (it has no --topology/--coordinator-url flags to script around).
  NOTE: circuitforge-orch has no model-sync/cache-sync mechanism today
  (checked its install.sh and README); this wrapper doesn't invent one.

Design rationale and survey of each product's real install story:
circuitforge-plans/cf-node-bootstrap/superpowers/plans/2026-07-17-cf-apps-install-menu.md
2026-07-17 20:42:21 -07:00
d72d8fb89c fix: clean up top-processes display, collapse noisy interfaces, fix failed-login count
- get_top_processes: use 'comm' instead of 'args' so the actual binary
  name is shown instead of a path truncated before reaching it; also
  exclude the ps invocation itself, which was always appearing with an
  inflated %cpu artifact from its own brief runtime.
- Network Information: interfaces matching grouped_adapter_patterns
  (Docker br-*/veth*/docker0 by default) are now tallied into a single
  summary line instead of printed individually. On a host running many
  containers this cut the section from 100+ lines to a handful.
- get_security_info: failed-login count used `journalctl -u sshd`, but
  the systemd unit is named ssh.service on Debian/Ubuntu, so the query
  silently matched zero entries there. Filter by `_COMM=sshd` instead,
  which matches the actual binary name regardless of unit naming, and
  add /var/log/secure as a fallback alongside /var/log/auth.log.
2026-07-17 20:23:38 -07:00
c7b7934e68 fix: locale/unicode compatibility in quickinfo, bump PRbL submodule
- Pin LC_ALL=C on free/uptime/sensors calls parsed by grep/awk on
  English words and fixed column positions; these broke under
  non-English locales. Uptime's token-position parsing is still
  format-fragile across procps versions/distros; noted as a follow-up
  for a /proc/uptime-based rewrite.
- Replace hardcoded '°C' with a deg_symbol variable that collapses to
  plain "C" when PRbL/functions reports unicode_supported=false, so
  temperature readouts stay pure ASCII on terminals/locales that can't
  render the degree sign.
- Bump PRbL submodule for the ANSI-code and box-border fallback fixes.
2026-07-17 16:01:31 -07:00
1357eb7148 chore: repoint PRbL submodule to Circuit-Forge fork, add mediatools
Replaces yt-dlp bashrc snippet with broader mediatools aliases/functions
and adds a couple of standalone scripts (protonvpn-cli, audio-grabber).
2026-07-17 11:48:38 -07:00
2bb8eecd18 fix: add bc dependency, remove Slipstream and golang extras
bc is required by power monitoring functions for floating-point math
and was missing from the apt packages list, causing failures on
minimal installs like RPiOS Lite.

Slipstream.install and golang.install extras removed as they are
no longer maintained here.
2026-04-29 16:05:03 -07:00
7171dc9d47 Merge branch 'main' of https://github.com/pyr0ball/PRbL-bashrc into power_mon 2025-04-11 18:28:55 +00:00
6420a15d42 updated PRbL to main branch commit (still 2.1.2) 2025-04-11 18:27:25 +00:00
Alan Weinstock
a6d3ea9829
removed duplicate aliases 2025-03-05 13:34:43 -08:00
alanweinstock
43a0cd4958 added power monitoring feature 2025-02-27 15:27:05 -08:00
alanweinstock
e9d021c268 fixed funky apt output breaking update checks 2025-02-27 14:58:30 -08:00
alanweinstock
b4495f39a9 updated PRbL to 2.1.2 2025-02-27 14:45:29 -08:00
alanweinstock
49ab48a5e8 added spacing fix for network info 2025-02-26 22:52:46 -08:00
alanweinstock
b4a6cbfc1e fixed issue with apt check formatting 2025-02-26 22:43:23 -08:00
alanweinstock
0b9220e5da iterated feature version and minor version for feature and bugfix 2025-02-26 22:30:47 -08:00
alanweinstock
c37ea0935c fixed colorization shifting disk info columns 2025-02-26 22:29:51 -08:00
alanweinstock
3f9f9b605c updated PRbL to 2.1.1 2025-02-26 21:56:41 -08:00
alanweinstock
45085f2393 fixed macs array getting cleared as it was built 2025-02-26 21:56:19 -08:00
alanweinstock
f6bcfc9a4c added wan ip failovers, fixed disk info 2025-02-26 21:34:58 -08:00
alanweinstock
f4e60d27ca fixed firewall check needing elevated permissions
commented out lxc section as it's not handled well yet
2025-02-26 12:23:59 -08:00
alanweinstock
7bc614d8c1 fixed missing array declaration 2025-02-26 09:48:10 -08:00
alanweinstock
f7c4c892b9 updated prbl_functions to 2.1.0 2025-02-26 09:43:08 -08:00
alanweinstock
739467031d added support for formatted border to title 2025-02-26 09:41:36 -08:00
alanweinstock
35f5986219 3.x refactor for new functions, new features, new version 2025-02-25 20:57:53 -08:00
alanweinstock
2a75897a37 updated PRbL to 2.0.0 2025-02-25 20:56:27 -08:00
Alan Weinstock
80c7bdd68c
Merge pull request #5 from pyr0ball/develop
Pull latest fixes into main
2024-09-22 15:33:00 -07:00
e8bf95fd5c Merge branch 'main' of https://github.com/pyr0ball/PRbL-bashrc into develop 2024-09-22 15:32:36 -07:00
0a4b9dc719 Merge branch 'develop' of https://github.com/pyr0ball/PRbL-bashrc into develop 2024-09-22 14:11:32 -07:00
2b570faf2b updated to PRbL 1.7.3, added new aliases 2024-09-22 13:59:56 -07:00
57d6da462d fixed wan ip get 2024-09-11 10:30:08 -07:00
5b16066616 fixed single-line echo out on extra installs 2024-09-10 10:10:10 -07:00
2eb7da5f53 fixed bashrc echo out on single line 2024-09-10 09:53:52 -07:00
9b308fdaf8 fixed broken wan check 2024-04-14 10:13:23 -07:00
806c593037 fixed go link parser 2023-10-02 22:56:14 -07:00
b9fb14bc7c modified installer echo out 2023-09-30 23:32:11 -07:00
f6a86d2cc8 iterated minor version 2023-09-28 23:11:00 -07:00
9ed70241e9 fixed grep string using wrong var 2023-09-28 23:08:02 -07:00
f349ab0854 fixed functions source and issues when curl is missing 2023-09-28 22:47:41 -07:00
660b5649a1 changed ifconfig to ip a for wider compatibility 2023-08-12 17:22:53 -07:00
Alan Weinstock
e11c3ed0fc
Update README.md 2023-08-11 01:41:01 -07:00
Alan Weinstock
795ae79b92
Merge pull request #4 from pyr0ball/develop
Develop
2023-08-11 01:37:12 -07:00
1239305ff4 Merge branch 'main' of github.com:pyr0ball/PRbL-bashrc into develop 2023-08-11 01:36:12 -07:00
8b370797f2 fixed syntax error 2023-08-11 01:31:19 -07:00
5c0ec6c90f iterated minor version 2.3.5 - fixed Slipstream dependencies 2023-08-11 01:12:38 -07:00
f9a7cc57ac fixed formatting issues in quickinfo 2023-08-11 01:11:40 -07:00
alanw
7ffd90baec fixed unexpended tabs in quickinfo 2023-06-29 21:10:32 -07:00
alanw
4760855555 fixed post-install script locations 2023-06-22 13:00:49 -07:00
alanw
63cb56fa19 updated PRbL to v1.7.1 2023-06-22 12:30:35 -07:00
alanw
e1615ae23d modified python dependency resolution to use function 2023-06-22 12:30:11 -07:00
05607f2538 Merge branch 'main' of https://github.com/Pyr0ball/PRbL-bashrc into main 2023-06-20 22:52:58 -07:00