A facility control panel for sACN & OSC, written in Node.JS.
Read about it on the website
- Framework: React with Redux
- Styling: Mantine
- Logging: Winston
- ORM: Typeorm
- Database: Sqlite3 with better-sqlite3 driver
- Website - Docusaurus 2
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.
Alternatively you can deploy manually and provider your own updates
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 |
The Paradise website is hosted on Cloudflare Pages, and is built using Docusaurus. The source is in the /docs
directory.
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:
cd server
npm install
npm run develop
cd client
npm install
npm run dev
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.
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
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.
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.
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/>.