Winamp Radio
so, if it isnt obvious, i have been really productive recently! like, EXTREMELY productive. this website has had a ton of updates to quite literally everything, and whenever something like this happens i always feel the need to make the most of it. so, i finally started working on a long overdue project to increase the uptime of the radio server. lets start out with the plan.
the plan was simple. hook up a raspberry pi 3b+, have it autorun icecast and then host the music on mixxx on my laptop running linux.
going into this, i knew it was going to be difficult. something always goes wrong, but in my brain i said to myself "theres absolutely no way this doesnt take any more than 4 hours to do" and i was so WRONG. it was 9 STRAIGHT HOURS OF WORK
after a couple of days of waiting, a micro usb had arrived and i could begin. i had pre-installed raspberry pi os bookworm ahead of time before the micro usb wire arrived, so i could get started right away.
Raspberry Pi OS
the first thing i needed to do was set up a static ip address. that required something known as dhcpcd to work. pretty simple, i just do sudo apt install dhcpcd5 and reboot- oh.
bad news, the dhcpcd5 package seems to completely BREAK raspberry pi bookworms display manager if you didnt install the full version (which i presume includes it, but i didn't want to use bookworm after that)
so, instead i installed the other version of raspberry pi os, the legacy version OH and the full one this time, im NOT doing that again. after finally getting the static ip address set-up, i needed to set up icecast. icecast is the actual server for my radio station, and without it winamp radio simply... wouldnt exist. when installing icecast on pc, it comes with a few shortcuts to make setting it up as painless as possible, and all you need to do is set up the admin password, ip address for yp listings and change the source password. and then you just have to open the ports, and you have yourself a nice little icecast server, all set up! on linux however, for SOME reason, everything from the config to the logs have all permissions set to owner only.
now, any logical person would simply give icecast permissions to edit these files, but im not a logical person. so instead, when this happened i would run sudo "chmod 777 *file*" so that AMYTHING can edit it. this is like, a really bad thing to do from what i know of, but it does allow icecast to read and write to these files so i dont really care. now, all i needed to do is open the ports so that other people could actually listen to the radio staton when i was hosting it. so i just open port 80 and- oh. now icecast cant use port 80? thats amazing. i tried my hardest to set it up on port 80, but i ended up giving up and opening port 8000 instead. this was a terrible mistake.
Domains
so good news! the icecast server is now working. although, thats strange, it seems like i cant use radio.xpvm.net... well, thats something i can fix later, i probably just need to change the ip address. okay, so now that i have the server set up, its time to check out options for autorunning icecast and getting it to run outside of the desktop gui. i think this is easy enough, for now ill use rc.local. for some reason however, it doesnt work on console autologin in raspi-config, so lets move onto the issue with the ip address instead... okay, so all i need to do is replace the ip address right? WRONG. the ip address is already correct, but cloudflare only supports port 443 and 80, you know, the port that i CANT USE??? so now the issue is getting icecast to work on port 80 so that cloudflare can actually find it. i tried everything, and it took HOURS.
The Solution
it was 5am. i had spent the entire night trying to fix this. i could barely talk, but i was DETERMINED to get this server set up. so i searched and searched, until i found someone saying they found the solution. change the user that icecast was launching as, give it permission to read and write to the log files and profit. and somehow, after 3-4 hours of looking for a fix for this, it had worked. port 80 was open.
so, what now? well i just needed to install mixxx on my ubuntu laptop and host there. and i thought this was going to be as difficult as the previous task but it... went by without issue. i installed mixxx, got the music and it simply worked. this project is one of the biggest ones i have done yet for xpvm.net and im happy its finally done and ready to be used whenever!
Neptune, 15/10/24