Festival is a web app to host online music festivals. It plays the same audio file for all users at the same time based on their system clock, allowing for the social aspect of a live broadcast (everyone can react to the same music at the same time) without requiring live streaming infrastructure.
- Copy
.env.sample
to.env
and fill out the required values. - Run
docker compose up -d
to start a MySQL database. - Run
npm install
to install the required packages. - Run
npm run dev
to serve the application locally.
Make sure that your Azure storage account is set to allow CORS requests. This is required for the visualizer to work.
npm run test
will run the end-to-end tests.npm run test-ct
will run the component tests.
npm run build
will bundle the application for production.npm start
will serve the bundled application.
Pushing to main triggers a deploy on Railway.
- Azure for file storage
- Clerk for authentication
- DigitalOcean for database hosting, DNS, and proxying to Railway
- Railway for hosting
- Sentry for error reporting