Getting Started

This guide walks you through installing Styrene and provisioning your first edge device.

Prerequisites

  • Python 3.11+
  • uv (recommended) or pip
  • A USB drive or SD card for bootable media
  • Target hardware (see Hardware for supported devices)

Installation

pipx install styrene             # Recommended: daemon + TUI in isolated environment

From Source

git clone https://github.com/styrene-lab/styrened.git
cd styrened
pip install -e '.[tui]'

First Run

Launch the TUI:

styrene

On first run, Styrene will:

  1. Generate a Reticulum identity
  2. Initialize the configuration directory
  3. Connect to the Styrene Community Hub (rns.styrene.io:4242) for transport and LXMF propagation
  4. Display the first-run wizard

Provisioning a Device

1. Insert Storage Media

Insert a USB drive or SD card. Styrene detects removable storage automatically.

2. Select Device Type

Choose your target hardware from the device picker:

  • minigmk — GMKtec NucBox G3 Plus (x86_64 UEFI)
  • q502l — ASUS Q502LA (x86_64 UEFI)
  • t100ta — ASUS T100TA (32-bit UEFI, Bay Trail)
  • rpi4 — Raspberry Pi 4 (aarch64, direct SD)
  • rpi-zero2w — Raspberry Pi Zero 2W (aarch64, direct SD)

3. Configure

Enter the required configuration:

  • Hostname — Device name on the network
  • WiFi SSID/PSK — Network credentials (optional)
  • SSH Keys — Your public key for initial access

Press E to edit the full NixOS configuration in your $EDITOR.

4. Write Media

For x86 devices, use Styrene Forge (just run in styrene-edge):

  1. Forge downloads the NixOS ISO (cached after first use)
  2. Writes to USB with configs, WiFi, SSH keys bundled
  3. Includes polymerize.sh installer script

For ARM SBCs (RPi), build an SD image:

nix build ./sbc#packages.aarch64-linux.rpi4-sd
# Write the resulting image to SD card

5. Boot and Install

x86 (USB installer):

  1. Boot target from USB
  2. Run sudo /iso/styrene/polymerize.sh
  3. Follow the semi-attended installation

ARM (direct SD):

  1. Insert SD card and power on — NixOS boots directly
  2. SSH in as styrene (password: styrene)

6. Fleet Registration

After installation completes and the device reboots:

  1. The device starts its Reticulum identity
  2. Announces on the mesh network
  3. Appears in your TUI fleet dashboard

Configuration

Styrene stores configuration in ~/.config/styrene/:

~/.config/styrene/
├── config.yaml          # Main configuration
├── identity/            # Reticulum identity
├── devices/             # Device specifications
└── fleet/               # Fleet inventory

config.yaml

# Styrene configuration
editor: $EDITOR  # Falls back to vi

# Default provisioning options
defaults:
  ssh_key: ~/.ssh/id_ed25519.pub

# Reticulum configuration
reticulum:
  config_path: ~/.config/reticulum

Next Steps

Graph