This repository is the main website for Radio4000, web CMS for streamed media libraries → https://radio4000.com.
This project aims at development and discussions on building a fair and open access ecosystem of tools and services; for music and cultural goods to be globally accessed and explored.
The goals and objectives of Radio4000 are defined in its manifest.
The server part is, for now, using Google's Firebase and the code can be found on theradio4000-api repository.
The code for the music player used by this project can be found at radio4000-player.
The plan is to move everything to libre software, self-hosted, with decentralization in mind. It is not there yet and we would love assistance in architecture and development.
To use Radio4000, you only have to visit radio4000.com, and start discovering new user selections.
The rest of this document will introduce some of the technical aspects of:
- setting up and running an instance of Radio4000 (ex: radio3999.com)
- developping features and fixing bugs for the Radio4000 project
See the file contributing, for more information on how to contribute to the project.
To start developing on this project (namely radio4000, radio4000-cms, r4-cms), you will have to:
- have git setup.
- have npm setup (recommended install: nvm)
- have the npm package yarn set up; it is then used as an alternative to npm in this project
Then, clone this repository, install dependencies and start a development server:
git clone email@example.com:internet4000/radio4000.git cd radio4000 yarn yarn start
The start command will launch the application locally, find it in your browser at http://localhost:4000.
By default this repository uses the
radio4000-staging database. It
can also work with any other instance of Firebase Realtime database.
yarn test for a single test or
yarn ember test --server to start a test server.
Lint scripts with:
yarn lint:js -- --fix
Deployment of the production version (radio4000.com)
The site is hosted on netlify.com. Netlify deploys each branch and pull request automatically.
productionbranch to https://radio4000.com (request new deployment)
masterbranch to https://master--radio4000.netlify.com
Branch deploys are lowercased and hyphenated. That is, a branch named
feat/my-featurewould result in the URL
feat-my-feature--radio4000.netlify.com. It usually takes ~2 minutes from git push to deployment is live.
See contributing.md for more.
We use Google's Firebase as our backend (database and API, on Google Cloud Engine), as well as for authentication.
Firestore is not supported. Plans are more leaning toward moving off Google's infrastructures.
The security rules defining what can be read, updated, written,
deleted, on each API endpoints are in the
You will need to use this file to setup you database instance if you are running your instance of radio4000. In the Firebase Console of your project, under Datatbase > Rules.
Running your own instance
To run your own firebase instance:
on the Firebase Console, create new project, to get an instance of Firebase Realtime database.
update the security rules of your project's database, as described in the section above, [Security](./#Security Rules)
If there you don't have an app already, create one of type
Web App. You can fin the values for your application, in your firebase project's console, at
Settings > Project Settings > General > Your Apps. This will provide us the Firebase API keys.
Add your API keys to the CMS, in the file