Code Monkey home page Code Monkey logo

UdonRadio 💻 📻

About

The project is split in 3 main parts:

  • back contains the Django project. It is responsible for handling REST requests from the website, processing media files, and feeding Liquidsoap with informations on what tracks to play, and when.
  • front contains the website. That is a simple React app that makes queries to the back server.
  • liquidsoap contains the Liquidsoap scripts that generate the actual audio stream. It exposes a telnet port so we can control it from the Django backend.

The root folder also contains:

  • a docker-compose file for quick deployment
  • the http server configuration
  • configuration files templates (for secrets)
  • dockerized icecast2

Getting started

Playout is not required to start developing on the Django backend or on the website. Head to their respective subfolders for guidance. However if you wish to run liquidsoap scripts, you will need:

  • a Django backend running with the LIQUIDSOAP_BRIDGE environment variable set to yes.
  • a running Icecast server.
  • Liquidsoap obviously, a recent version is prefered. Adjust your Icecast settings in the ./liquidsoap/main.liq file accordingly. Beware not to use port 8000 already bound by the Django backend. Then you can just run liquidsoap ./liquidsoap/main.liq and head over to http://localhost:<your-icecast-port>/udon.mp3 :)

Production

Installing and configuring docker-compose, Docker and NginX is out of the scope of that section. We will assume everything works already. We chose not to embed NginX as a service to be able to serve several websites easily on the host.

  • Copy the .template files and strip this extension. Edit secrets and configuration variables accordingly.

  • Link nginx.conf to your enabled-sites directory and restart NginX.

  • Start docker services: docker-compose up -d

  • Inside the back container, (docker-compose exec gosu udon_back bash) type the following:

   python3 manage.py migrate # create database tables
   python3 manage.py collectstatic # collect django static files
   python3 manage.py createsuperuser # Finally create superuser
   exit

Troubleshooting

If you run into issues while uploading files (especially getting a 413 Request Too Large), try setting client_max_body_size in nginx to a upper value.

udonradio's Projects

udon_scripts icon udon_scripts

Archived - Merged with UDONRadio. small_scripts in python

udonradio icon udonradio

Sound streaming, playout and website for UDONRadio internet radio !

webcaster icon webcaster

UDONRadio-rebranded and auto-connect features for webcaster. Client for the webcast websocket protocol.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.