Radio map is a clone of radio.garden, hosted on AWS and built on a MERN stack. Test it out here.
- Browse radio stations throughout the world
- Listen to internet radio
- See most popular stations in different areas
To run the project locally, run the following:
git clone https://github.com/andersan/radio-map.git
Start the express server in one terminal:
cd backend
yarn install
yarn run dev
Start the frontend in another terminal:
cd frontend
yarn install
yarn run dev
For debugging the backend, use npm run dev >> logfile.log
. Anything crashing the backend is likely caused by an uncaught API issue.
Note that the frontend project requires a .env.local file with the following variables assigned:
- NEXT_PUBLIC_ENVRIONMENT: set this to "development" for running locally
- NEXT_PUBLIC_CESIUM_ACCESS_TOKEN: api token for cesium Ion access (maps/images)
- Search functionality
- Basic user functionality (save a list of fave stations)
- Manage states with Redux, allowing for an easy back button in menu navigation
- Browse using alternative station list from Radio browser API
- Radio station list view (also using Radio browser API)
- Allow users to submit corrections and new stations
- Video streaming map
- Allow running front and back end with one command (use concurrently)
These steps work on an amazon linux x86 (non-arm) VM with 2gb RAM or more:
- Deploy code with deploy-code.sh
- Install nginx with
sudo dnf install nginx
- Paste nginx config from radio.andersan.com.conf into /etc/nginx/conf.d/radio-map.conf
- Install node 20 as shown here https://tecadmin.net/install-latest-nodejs-amazon-linux/
- Install yarn and pm2 globally
- Build and run the project's frontend and backend
- Ensure DNS and network settings have been set up properly for the VM