Krystie 38e42a9d39 Fix: Skip systemctl enable/start commands in non-systemd environments
The installer was failing when systemctl enable/start commands ran in
test containers where systemd isn't running as PID 1. Wrap all service
management commands in a check for systemd availability.
2026-03-28 16:49:45 -07:00
2026-03-28 16:23:04 -07:00
2026-03-28 16:23:04 -07:00
2026-03-28 16:23:04 -07:00
2026-03-28 16:23:04 -07:00
2026-03-28 16:23:04 -07:00
2026-03-28 16:23:04 -07:00
2026-03-28 16:23:04 -07:00
2026-03-28 16:23:04 -07:00
2026-03-28 16:23:04 -07:00
2026-03-28 16:23:04 -07:00

tri-pi

tri-pi is a Raspberry Pi appliance wrapper for running a Triangles (TRI) full node over Tor.

It is a separate project from the Triangles source tree. The daemon itself lives in a sibling checkout such as ../triangles, while tri-pi owns:

  • Pi provisioning
  • Tor hidden service setup
  • systemd units
  • health/status APIs
  • a lightweight local dashboard
  • cross-build and QEMU-based test helpers

Repository Layout

tri-pi/
├── backend/      # Local API and status collector
├── build/        # Cross-build and QEMU helper scripts
├── config/       # triangles.conf and backend env templates
├── docs/         # Architecture and workflow notes
├── frontend/     # Local status dashboard
├── image/        # Pi image customization placeholders
├── services/     # systemd unit files
├── setup/        # Provisioning scripts run on the Pi
└── tor/          # torrc templates and Tor helper material

Relationship To triangles

tri-pi does not vendor or modify the daemon source by default. It expects a separate checkout:

e:/repos/
├── triangles/
└── tri-pi/

That keeps the concerns clean:

  • triangles: wallet/node source, native builds, protocol changes
  • tri-pi: appliance packaging, deployment, monitoring, Tor, Pi UX

Current Scope

This scaffold includes:

  • a minimal Python backend that exposes node status
  • a static dashboard that polls the backend
  • Pi install/build script placeholders
  • systemd unit templates
  • Tor and daemon config templates

It does not yet include:

  • a production-ready installer
  • real RPC authentication management
  • image generation
  • CI workflows
  • automatic wallet unlock

Quick Start

Run the local backend:

python backend/app.py

Then open:

http://127.0.0.1:8080/

By default the backend serves the frontend from frontend/ and reports placeholder node data until a real trianglesd RPC endpoint is configured.

Next Steps

  1. Wire backend/app.py to the real Triangles RPC surface.
  2. Flesh out setup/install.sh for Raspberry Pi OS Bookworm.
  3. Add QEMU-based integration tests under build/.
  4. Add release packaging for prebuilt ARM artifacts.
S
Description
Try Pie - TRI cryptocurrency Python utilities and tools
Readme 16 MiB
Languages
Shell 100%