Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Large Solar Thermal Monitoring Tool. Implements the Performance Check Method of ISO 24194
Core:
WebUI:
SunPeek implements a dynamic, in situ test methodology for large solar thermal plants, packaged as an open source software application and python library. It also includes the first open source implementation of the ISO 24194 procedure for checking the performance of solar thermal collector fields.
Full documentation is at https://docs.sunpeek.org
SunPeek was originally developed as part of the HarvestIT research project, see https://www.collector-array-test.org
SunPeek is available as both a complete, containerised web application - intended to make the ongoing monitoring of one or
several solar thermal plants simple and intuitive - and as a python library, for use by researchers and for building into
other tools. To install the python library, simply run pip install sunpeek
. To set up the web application, see below.
Except where specifically noted otherwise, SunPeek is made available under the GNU Lesser General Public License. This means that you can use the software, copy it, redistribute it and include it in other software, including commercial, proprietary software, for free, as long as you abide by the terms of the GNU GPL, with the exceptions provided by the LGPL. In particular, if you redistribute a modified version of the software, you must make the source code of your modifications available, and if you include the software in another piece of software or physical product, you must give users notice that SunPeek is used, and inform them where to obtain a copy of the SunPeek source code and license.
Note that the SunPeek WebUI, is covered by a separate licence, the BSD-3-Clause, see: https://opensource.org/licenses/BSD-3-Clause
Copyright (c) 2020-2022, AEE - Institut für Nachhaltige Technologien, SOLID Solar Energy Systems GmbH, GASOKOL GmbH, Schneid Gesellschaft m.b.H.
Copyright (c) 2023, SunPeek Open Source Contributors
SunPeek is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
In order to provide a consistent environment and allow SunPeek to work across a wide range of install environments, it is provided as a set of Docker images (essentially, very lightweight virtual machines). A docker compose configuration is also provided, if you are installing sunpeek on a single machine, this is probably what you want to use, follow the links below for instructions depending on your environment.
To install docker on Linux go to https://docs.docker.com/engine/install/ select the relevant platform and follow the instructions.
On desktop windows, the easiest way to get Docker is to install docker desktop.
To install the Docker Engine on Windows Server, see this guide from Microsoft
For convenience, a bash script for Linux or a simple graphical utility for use on Windows is provided. These will do some basic configuration for running SunPeek on a single machine, optionally accessible over a local network. Docker is still required.
If you have previously set up SunPeek using the default configuration, you must first
remove all stored data by running the command `docker volume rm harvestit_hit_postgres_data` in a terminal/command
prompt, _this will also remove uploaded data._ You do not need to do this to update the software, see
[Upgrading to a new version of SunPeek](#upgrading-to-a-new-version-of-sunpeek)
curl https://gitlab.com/sunpeek/sunpeek/-/raw/main/deploy/quick-setup.sh?inline=false -o quick-setup.sh
,quick-setup.sh
(usually just with the command ./quick-setup.sh
) and enter the url which sunpeek can be accessed
at when prompted.docker compose up -d
sunpeek_easy_installer.exe
It is strongly recommended that you don't make SunPeek accessible from the public internet. At present there are NO
built-in access controls
Configuration is via environment variables, which can be set by any configuration management system you use, however the
default setup uses .env
files. To deploy the application on a single host, only the external URL needs to be set. The
easy installer does this for you, or you can set the value of HIT_API_BASE_URL
in the ui.env
file to
<external.url>/api/v1. Other configuration variables are documented at
docs.sunpeek.org/configuration-variables.html
This setup is designed to deploy all containers on a single machine where docker compose is running.
The configuration for the Traefik reverse proxy is stored in a directory which is *bind mounted* to the container. For
other deployment approaches (e.g. using Kubernetes), a more appropriate Traefik dynamic
[configuration provider](https://doc.traefik.io/traefik/providers/overview/) should be selected.
SunPeek supports SQLite and PostgreSQL as backend databases for storing plant configurations, collector and fluid types
etc. For single host installs with small number of plants, SQLite should be sufficient and this is therefore the default
configuration. To use the PostgreSQL backend you can add HIT_DB_TYPE=postgresql
to api.env
, and set the values of
the HIT_DB_PW
and POSTGRES_PASSWORD
variables in the api.env
and db.env
files to the same random, unique
password string. The docker compose setup includes an optional postgres service, which can be started along with the
other containers with docker compose --profile postgres up
Updates to SunPeek are accomplished by pulling newer versions of the docker images used to run the application. These
are used to create new containers in place of the old ones. If you used the default configuration, a persistent docker
volume called sunpeek_postgres_data
will have been created, this should avoid data loss, however keeping backups is
always recommended. The update process is as follows, and is the same on all operating systems:
docker compose pull
to download the latest imagesdocker compose up -d
to recreate any containers which have updated images.Docker Compose is a tool for orchestrating docker containers, to create applications made up of several docker containers. When the HarvestIT application is started with the default docker-compose file, the following things happen:
timescale/timescaledb:latest-pg14
), is started, with a healthcheck defined.
Alongside this container, a Docker Volume is created called hit_postgres_data
,
which is mapped to the default data directory in the database container, to ensure that database data is persisted when
the containers are recreated (e.g. during an update).traefik:v2.8
) is started. As well as being attached to the virtual network
created by docker compose, this has port 80 exposed to the host, so that it can be accessed at localhost/
or from an
extrnal connection. This routes web requests to either the web-ui or api containers, depending on the path in the request
URL. It can also be configured to terminate TLS (HTTPS) encrypted
connections and obtain certificates automatically, to secure connections to the application.sunpeek:latest)
, this is the main HarvestIT application.harvestit
container runs a database initialization scripts to get the database ready.For information on the project roadmap, see https://gitlab.com/sunpeek/sunpeek-governance/-/wikis/Roadmap. The Roadmap is maintained by the Steering Committee, based on input from the community, recieved primarily via feature request issues and discussions at industry events.
SunPeek is developed as an open source project, with contributions gladly accepted from interested members of the community. For information on contributing to sunpeek, see CONTRIBUTING.md, for developer documentation see https://docs.sunpeek.org/developing.html
The overall direction of the project is managed by a steering committee, who appoint the maintainers, details can be found in the Governance project
FAQs
Large Solar Thermal Monitoring Tool. Implements the Performance Check Method of ISO 24194
We found that sunpeek demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.