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
From PyPI (Recommended)
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:
- Generate a Reticulum identity
- Initialize the configuration directory
- Connect to the Styrene Community Hub (
rns.styrene.io:4242) for transport and LXMF propagation - 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):
- Forge downloads the NixOS ISO (cached after first use)
- Writes to USB with configs, WiFi, SSH keys bundled
- Includes
polymerize.shinstaller 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):
- Boot target from USB
- Run
sudo /iso/styrene/polymerize.sh - Follow the semi-attended installation
ARM (direct SD):
- Insert SD card and power on — NixOS boots directly
- SSH in as
styrene(password:styrene)
6. Fleet Registration
After installation completes and the device reboots:
- The device starts its Reticulum identity
- Announces on the mesh network
- 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
- Architecture — Understand how Styrene works
- Components — Explore each component in depth
- Hardware — See recommended hardware for deployment