Getting Started¶
What You Need¶
- a supported Raspberry Pi, preferably a Pi Zero 2 W
- a microSD card
- a USB UPS to attach to the node
- network access for the Pi
- Raspberry Pi Imager
1. Get The Image¶
Download the strom-node-<version>.img.xz artifact from the GitHub Releases page for Strom.
Prefer to build it yourself instead? From the repo root:
uv run strom image node --version v0.1.0-rc1
This produces dist/strom-node-<version>.img.xz and a .sha256 file you can verify with sha256sum -c.
2. Flash The SD Card¶
- Open Raspberry Pi Imager and choose
Use custom. - Select the
.img.xzfile (do not unpack it first) and your SD card. - Open the customization dialog and set:
- WiFi SSID, password, and country
- optionally, SSH with a public key for the
stromuser
- Write the image.
3. Boot And Connect¶
- Insert the SD card, power on the Pi, and let first boot finish. It may reboot once more while enabling the read-only root overlay.
- Attach the UPS over USB.
- Once the node is on your network, open
http://<pi-ip>/in a browser.
The hostname defaults to strom-node-<last4 serial>.
4. Set The Admin Password¶
The first time you open the node, you're prompted to set a password for the single local admin account. There is no built-in default password — you choose one during this first-run step, then sign in with it going forward. The account is stored on the node's persistent storage, so later restarts and power loss require a normal sign-in rather than a new first-time password.
Validate The Node¶
http://<pi-ip>/prompts to set the admin password on first visit, then loads the sign-in page and dashboard after signing inhttp://<pi-ip>/statusreturns the minimal public node status payloadavahi-browse -rt _strom._tcp(run from another Linux machine) shows the node advertised over mDNSupsc <ups-name>@<pi-ip>(run from another machine) shows the attached UPS through NUT
What Comes Next¶
Strom also has a controller for discovering and adopting nodes, reviewing fleet telemetry, and managing alerts across multiple nodes. The controller is a regular Linux service, not tied to Pi hardware, so pick whichever install method fits:
Other Deployment Options¶
Run With Docker¶
docker run -d --name strom-controller \
-p 9000:9000 \
-v strom-controller-data:/data \
ghcr.io/foehammer82/strom-controller:latest
Or use the compose file included in the repo, which builds the image from source instead of pulling it:
docker compose -f deploy/docker-compose.controller.yml up -d --build
Build From Source¶
From the repo root:
uv run strom build controller-web
uv run strom dev controller
Then open http://127.0.0.1:9000/ to reach the controller interface.