solectrus

SOLECTRUS is a smart photovoltaic dashboard that displays your energy production and consumption. It also calculates costs and savings, helping you maximize the benefits of your solar system.

119
17
Ruby

Build Status
Maintainability
Test Coverage
wakatime

SOLECTRUS

SOLECTRUS is your smart solar dashboard, giving you real‑time insights into energy generation and consumption. It automatically calculates costs and savings, so you can maximize the performance of your PV system.

Screenshot

Live Demo

Try it out at https://demo.solectrus.de

Installation

SOLECTRUS is a self‑hosted solution — just bring your own server (a Raspberry Pi works great, but any Linux box will do). To get started, visit https://configurator.solectrus.de/ and generate your Docker configuration interactively.

Development

To contribute, set up a local development environment (this guide assumes macOS with Homebrew):

  1. Clone the repository:
git clone [email protected]:solectrus/solectrus.git
cd solectrus
  1. Install PostgreSQL, Redis, and puma-dev (if not already present). On a Mac with HomeBrew, run this to install from the Brewfile:
brew bundle

Ensure that PostgreSQL is running:

brew services start postgresql@17
  1. Install and set up puma-dev to use HTTPS for development. Do this on macOS:
sudo puma-dev -setup
puma-dev -install
puma-dev link

# Use Vite via puma-dev proxy
# Adopted from https://github.com/puma/puma-dev#webpack-dev-server
echo 3036 > ~/.puma-dev/vite.solectrus
  1. Setup the application to install gems and NPM packages and create the database:
bin/setup
  1. Start the application locally:
bin/dev

This starts the app and opens https://solectrus.test in your default browser (see Procfile.dev).

Testing

After preparing development environment (see above):

bin/influxdb-restart.sh
DISABLE_SPRING=1 bin/rspec
DISABLE_SPRING=1 RAILS_ENV=test bin/rake cypress:run
open coverage/index.html

RuboCop:

bin/rubocop

ESLint:

bin/yarn lint

TypeScript:

bin/yarn tsc

There is a shortcut to run all test and linting tools:

bin/test

Performance Monitoring

The Live Demo is hosted at Hetzner Cloud. For performance monitoring, it uses RorVsWild, which is free for OpenSource projects. You can see internal metrics like CPU, memory, and disk usage, as well as request times and errors here:
https://www.rorvswild.com/applications/136101/requests

License

© 2020–2025 Georg Ledermann. Released under AGPL-3.0.