SOLECTRUS

An alternative photovoltaic dashboard that visualizes the yield and consumption.
https://github.com/solectrus/solectrus

Category: Renewable Energy
Sub Category: Photovoltaics and Solar Energy

Keywords

homelab influxdb monitoring photovoltaic photovoltaics photovoltaics-dashboard self-hosted

Keywords from Contributors

senec

Last synced: about 19 hours ago
JSON representation

Repository metadata

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.

README.md

Build Status
Maintainability
Code 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 git@github.com:solectrus/solectrus.git
cd solectrus
  1. Install PostgreSQL, Redis, and Caddy (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@18
  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.localhost in your default browser.

On the first run, Caddy will ask for your password to install its local CA certificate.

Testing

After preparing development environment (see above):

bin/influxdb-restart.sh
DISABLE_SPRING=1 bin/rspec
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/ci

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–2026 Georg Ledermann. Released under AGPL-3.0.


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 6 days ago

Total Commits: 7,913
Total Committers: 6
Avg Commits per committer: 1,318.833
Development Distribution Score (DDS): 0.503

Commits in past year: 1,762
Committers in past year: 2
Avg Commits per committer in past year: 881.0
Development Distribution Score (DDS) in past year: 0.471

Name Email Commits
dependabot[bot] 4****] 3936
Georg Ledermann g****g@l****v 3542
dependabot-preview[bot] 2****] 432
Sascha Böck 4****r 1
Patricio Cano s****2@g****m 1
Alexander Detsch a****h 1

Committer domains:


Issue and Pull Request metadata

Last synced: 7 days ago

Total issues: 315
Total pull requests: 2,957
Average time to close issues: about 1 month
Average time to close pull requests: about 10 hours
Total issue authors: 70
Total pull request authors: 7
Average comments per issue: 2.99
Average comments per pull request: 0.05
Merged pull request: 2,749
Bot issues: 11
Bot pull requests: 2,905

Past year issues: 42
Past year pull requests: 403
Past year average time to close issues: about 11 hours
Past year average time to close pull requests: about 14 hours
Past year issue authors: 20
Past year pull request authors: 2
Past year average comments per issue: 1.88
Past year average comments per pull request: 0.02
Past year merged pull request: 320
Past year bot issues: 1
Past year bot pull requests: 397

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/solectrus/solectrus

Top Issue Authors

  • ledermann (79)
  • Zeppelin-PV (39)
  • StevieC121176 (28)
  • gereons (20)
  • unclej84 (19)
  • bennysweb (14)
  • dependabot[bot] (11)
  • spirit0607 (6)
  • patricknitsch (5)
  • q2doc (5)
  • hj-hefer (5)
  • halmich (5)
  • AlpenFlizzer (4)
  • ronzle (4)
  • MartinKBroll (3)

Top Pull Request Authors

  • dependabot[bot] (2,905)
  • ledermann (40)
  • AlpenFlizzer (6)
  • ghost (2)
  • wdenn (2)
  • suprnova32 (1)
  • deThommy (1)

Top Issue Labels

  • bug (78)
  • enhancement (27)
  • help wanted (17)
  • dependencies (11)
  • javascript (2)
  • v9 (1)
  • waiting (1)
  • api: firestore (1)
  • question (1)
  • needs-attention (1)

Top Pull Request Labels

  • dependencies (2,904)
  • ruby (600)
  • javascript (498)
  • gh-action (20)
  • enhancement (3)
  • bug (1)

Dependencies

.github/workflows/automerge.yml actions
  • dependabot/fetch-metadata v1.6.0 composite
.github/workflows/ci.yml actions
  • actions/checkout v4 composite
  • actions/setup-node v3.8.1 composite
  • actions/upload-artifact v3 composite
  • docker/build-push-action v5 composite
  • docker/login-action v3 composite
  • docker/metadata-action v5 composite
  • docker/setup-buildx-action v3 composite
  • docker/setup-qemu-action v3 composite
  • honeybadger-io/github-notify-deploy-action v1 composite
  • paambaati/codeclimate-action v5.0.0 composite
  • ruby/setup-ruby v1 composite
  • influxdb 2.7-alpine docker
  • postgres 15-alpine docker
Dockerfile docker
  • ghcr.io/ledermann/rails-base-builder 3.2.2-alpine build
  • ghcr.io/ledermann/rails-base-final 3.2.2-alpine build
Brewfile homebrew
  • overmind *
  • postgresql@15 *
  • puma/puma/puma-dev *
  • redis *
package.json npm
  • @prettier/plugin-ruby ^4.0.2 development
  • @size-limit/file ^9.0.0 development
  • @tailwindcss/aspect-ratio ^0.4.2 development
  • @tailwindcss/forms ^0.5.6 development
  • @tailwindcss/typography ^0.5.10 development
  • @types/throttle-debounce ^5.0.0 development
  • @typescript-eslint/eslint-plugin ^6.7.2 development
  • @typescript-eslint/parser ^6.7.2 development
  • autoprefixer ^10.4.16 development
  • cypress ^13.2.0 development
  • eslint ^8.49.0 development
  • eslint-config-prettier ^9.0.0 development
  • eslint-plugin-cypress ^2.15.1 development
  • eslint-plugin-prettier ^5.0.0 development
  • eslint-plugin-tailwindcss ^3.13.0 development
  • postcss ^8.4.30 development
  • prettier ^3.0.3 development
  • prettier-plugin-tailwindcss ^0.5.4 development
  • rollup ^3.29.2 development
  • size-limit ^9.0.0 development
  • tailwindcss ^3.3.3 development
  • typescript ^5.2.2 development
  • vite ^4.4.9 development
  • vite-plugin-rails ^0.1.0 development
  • @fortawesome/fontawesome-svg-core ^6.4.2
  • @fortawesome/free-brands-svg-icons ^6.4.2
  • @fortawesome/free-regular-svg-icons ^6.4.2
  • @fortawesome/free-solid-svg-icons ^6.4.2
  • @honeybadger-io/js ^6.5.0
  • @hotwired/stimulus ^3.2.2
  • @hotwired/turbo ^7.2.5
  • @hotwired/turbo-rails ^7.3.0
  • @rails/actioncable ^7.0.8
  • chart.js ^4.4.0
  • chartjs-adapter-date-fns ^3.0.0
  • date-fns ^2.30.0
  • el-transition ^0.0.7
  • morphdom ^2.7.0
  • plausible-tracker ^0.3.8
  • throttle-debounce ^5.0.0
  • tippy.js ^6.3.7
Gemfile rubygems
  • annotate >= 0 development
  • brakeman >= 0 development
  • capybara >= 3.26 development
  • cypress-rails >= 0 development
  • dotenv-rails >= 0 development
  • guard-rspec >= 0 development
  • lookbook >= 0 development
  • prettier >= 0 development
  • rspec-collection_matchers >= 0 development
  • rspec-rails >= 0 development
  • rubocop >= 0 development
  • rubocop-performance >= 0 development
  • rubocop-rails >= 0 development
  • rubocop-rspec >= 0 development
  • rubocop-thread_safety >= 0 development
  • shoulda-matchers >= 0 development
  • simplecov >= 0 development
  • slim_lint >= 0 development
  • spring >= 0 development
  • spring-commands-rspec >= 0 development
  • vcr >= 0 development
  • web-console >= 0 development
  • webmock >= 0 development
  • bootsnap >= 0
  • http_accept_language >= 0
  • influxdb-client >= 2.9.0
  • lockup >= 0
  • lograge >= 0
  • meta-tags >= 0
  • pg ~> 1.1
  • puma ~> 6
  • rack-brotli >= 0
  • rack-cors >= 0
  • rails ~> 7.0.8
  • rails-settings-cached >= 0
  • redis >= 0
  • slim-rails >= 0
  • stimulus-rails >= 0
  • turbo-rails >= 0
  • uri >= 0.12.2
  • view_component >= 0
  • vite_rails >= 0
Gemfile.lock rubygems
  • 155 dependencies

Score: 7.09506437728713