IRC!Radio is a radio station for IRC channels. You hang around on IRC, adding YouTube songs to the bot, listening to it with all your friends. Great fun!
IRC!Radio aims to be minimalistic/small using:
- Python >= 3.7
- SQLite
- LiquidSoap >= 1.4.3
- Icecast2
- Quart web framework
- !np - current song
- !tune - upvote song
- !boo - downvote song
- !request - search and queue a song by title or YouTube id
- !dj+ - add a YouTube ID to the radiostream
- !dj- - remove a YouTube ID
- !ban+ - ban a YouTube ID and/or nickname
- !ban- - unban a YouTube ID and/or nickname
- !skip - skips current song
- !listeners - show current amount of listeners
- !queue - show queued up music
- !queue_user - queue a random song by user
- !search - search for a title
- !stats - stats
No docker. The following assumes you have a VPS somewhere with root access.
As root
:
apt install -y liquidsoap icecast2 nginx python3-certbot-nginx python3-virtualenv libogg-dev ffmpeg sqlite3
ufw allow 80
ufw allow 443
When the installation asks for icecast2 configuration, skip it.
As root
:
adduser radio
As radio
:
su radio
cd ~/
git clone https://git.wownero.com/dsc/ircradio.git
cd ircradio/
virtualenv -p /usr/bin/python3 venv
source venv/bin/activate
pip install -r requirements.txt
cp settings.py_example settings.py
Look at settings.py
and configure it to your liking:
- Change
icecast2_hostname
to your hostname, i.e:radio.example.com
- Change
irc_host
,irc_port
,irc_channels
, andirc_admins_nicknames
- Change the passwords under
icecast2_
- Change the
liquidsoap_description
to whatever
When you are done, execute this command:
python run generate
This will write icecast2/liquidsoap/nginx configuration files into data/
.
As root
, copy the following files:
cp data/icecast.xml /etc/icecast2/
cp data/liquidsoap.service /etc/systemd/system/
cp data/radio_nginx.conf /etc/nginx/sites-enabled/
As root
'enable' icecast2/liquidsoap/nginx, this is to
make sure these applications start when the server reboots.
sudo systemctl enable liquidsoap
sudo systemctl enable nginx
sudo systemctl enable icecast2
And start them:
sudo systemctl start icecast2
sudo systemctl start liquidsoap
Reload & start nginx:
systemctl reload nginx
sudo systemctl start nginx
As radio
, issue the following command:
python3 run webdev
Run it in screen
or tux
to keep it up, or write a systemd unit file for it.
certbot --nginx
Pick "Yes" for redirects.