Important
This repository has moved. Development continues at GEWIS/intro-radio (as frontend/), which merges this repo with GEWIS/radiogaga into one monorepo with full history preserved. This repo is archived and read-only.
This is the web frontend for Intro Radio, the GEWIS live stream during the introduction week. It is a Vue 3 + Vuetify single-page app that plays the Icecast/HLS stream, and, for admins, provides a backoffice chat to talk with listeners.
The chat is a WebSocket connection (/ws?role=user and /ws?role=radio) that nginx proxies to a separate backend service, alongside an /api/ proxy for the same backend. This repository only contains the frontend; the chat/API backend lives in its own repository.
- Node.js 22.x
- Yarn via Corepack (this repo uses
nodeLinker: node-modules, see.yarnrc.yml)
yarn installyarn devyarn buildOutputs to dist/ for deployment.
yarn previewyarn lint # check
yarn lint:fix # check and fix
yarn format # format with PrettierTwo images are built from this repository, matching the Docker Build workflow:
-
App -- built from the root
Dockerfile. Builds the Vue app with Yarn and serves the staticdist/output through nginx.docker build -t radioweb-app . -
Nginx proxy -- built from
nginx/Dockerfile. Reverse-proxies/to the app, and/wsand/api/to the backend service (seenginx/default.conf).docker build -t radioweb-nginx ./nginx
AGPL-3.0. See LICENSE for the full text.