/ParadisePi

A facility control panel for sACN & OSC, in Electron.

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0

ParadisePi

GitHub repo size GitHub release (latest by date)

Logo

A facility control panel for sACN & OSC, written in Node.JS.

Read about it on the website

Stack

Installing

Currently, the recommended installation method is via Balena where an app is maintained. This app is updated with the latest version of ParadisePi by Github Actions.

balena deploy button

Alternatively you can deploy manually and provider your own updates

Environment variables

Variable Description Default
PARADISE_LOG_LEVEL_FILE Log level for the log file warn
PARADISE_LOG_LEVEL_CONSOLE Log level for the balena console warn
PARADISE_DATABASE_PATH Path of where to store the database Directory of paradise install
PARADISE_IMAGE_PATH Path of where to store the database Directory of paradise install
PARADISE_LOG_PATH Path of where to store the database Directory of paradise install

Developing

Docs

The Paradise website is hosted on Cloudflare Pages, and is built using Docusaurus. The source is in the /docs directory.

Running locally

For the OSC library windows build tools are needed. See the instructions here: https://github.com/nodejs/node-gyp#on-windows

VSCode is recommended for development, with launch configurations for both the frontend, backend and docs provided. Alternatively, you can run the following commands:

Backend

cd server
npm install
npm run develop

Frontend

cd client
npm install
npm run dev

Versioning

To version the project, run

cd client
npm version <major|minor|patch>
cd ../server
npm version <major|minor|patch>
cd ../

(cd client/ && npm version patch && cd ../server && npm version patch for a quick patch bump)

Then update the version at the bottom of balena.yml and commit the changes to the repository. This will then trigger a build on the Balena Hub.

Balena

Setup a developer environment on your local machine by following the instructions and then run balena push <device-name> --nolive to push the code to the device. Full docs

Build Stages

To build for Balena, the build script creates a larger image that is used to build for the correct architecture. This built file is then copied to a slimmer image the larger image is removed. This is done to reduce the size of the final image.

Running out of Storage

Building images on a local device tends to cause it to run out of storage quickly. To get around this, login to the device in local mode by running balena ssh XXXXX.local and then running balena system prune -a -f on the SSH terminal. This will remove all images and containers from the device, freeing up space.

Licence

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
any later version.

This program 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.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.