Skip to content

NTUEELightDance/LightDance-Editor

Repository files navigation

Logo

NTUEE LightDance Editor

Release Contributors License

An online editor to design, simulate and control the lights

Architecture

image

Services

http://localhost:8080 - editor
http://localhost:4000 - editor-server
http://localhost:8081 - file-server
http://localhost:8082 - controller-server

Development

Local

Install the dependencies

This will install all dependencies for the app.

pnpm install:all

Initialize Prisma

If you are running this for the first time, you need follow the instructions in editor-server/README.md to initialize prisma.

echo "I know you only want to copy and paste commands, but please read the instructions in editor-server/README.md"

Start database

You need to have postgresql and redis running for the backend to work.

docker compose -f dev.docker-compose.yml up -d

Run all services

There are the services you'll need to run if you are developing editor-server. You need to start all of them manually. Run these commands in different terminals respectively, in the order shown below:

pnpm dev:file-server
pnpm dev:editor-server
pnpm dev:editor

If you are developing the command center, you may also need to run:

pnpm dev:controller-server

Run all services in parallel

This command runs all services in parallel. You can see the editor on http://localhost:8080. This is useful for demo, yet not recommended in development.

pnpm dev

Initialize Database: Development

If you are running this for the first time, you need to initialize the database for things to work.

# Lightdance-Editor/utils
pnpm install
node initDB.js jsons/exportDataEmpty.json

Production

Start all services

docker compose -f prod-support/prod.docker-compose.yml up -d

Editor will run on http://localhost:8080.

Editor-server will run on http://localhost:4000.

Initialize Database: Production

After starting all services, one must initialize the database.

# Lightdance-Editor/utils
export NODE_OPTIONS="--max-old-space-size=8192"
pnpm install
node initDB.js jsons/exportDataEmpty.json

Configurations and Utilities

Refer to utils/README.md for editor configurations and utility usage.