This radio aims to provide good Toki Pona music to anyone, 24/7. You can access it as an internet radio (in the browser or a standalone player), or as a video stream on Youtube or Twitch.
This is a collaborative project brought to you by the Toki Pona community.
Your help is welcome! Feel free to submit pull requests if you find anything that needs improvement.
Want to help but you're new to Github? We can help!
You can also join the Discord and talk to the maintainers!
Overview chart of technology used:
We use icecast without a proxy, which means the following configuration options need to be set in /etc/icecast2/icecast.xml:
<icecast>
<listen-socket>
<port>80</port>
</listen-socket>
<listen-socket>
<port>443</port>
<ssl>1</ssl>
</listen-socket>
<paths>
<!--
The bundle is a combination of multiple certificates,
use Let's encrypt's certbot to generate them.
-->
<ssl-certificate>/etc/icecast2/bundle.pem</ssl-certificate>
</paths>
<security>
<changeowner>
<user>icecast2</user>
<group>icecast</group>
</changeowner>
</security>
</icecast>We also host the website through icecast. To build it, run npm i && npm run build in the website directory. On the side of icecast, set the following config options for the website to work:
<icecast>
<paths>
<webroot>/srv/tpr/website/dist</webroot>
</paths>
</icecast>The icecast mountpoint is occupied by ezstream. The sample config in the ezstream directory should be kept updated with the changes of the config on the server. We don't keep the config itself there because of the password contained within.
In the future, you can copy the config and create another radio station by occupying another mountpoint with ezstream by running it with another systemd service.
Ezstream utilizes the playlist in /srv/music/tpr.txt, which is a list of absolute paths to music files. The music files accepted by ezstream are listed in the configuration file.
The images/nowplaying.sh script is used to generate images of the currently playing song on the background of the images/tpr.png image.
The scripts in ffmpeg directory are used for streaming the contents of the radio onto various social streaming sites.
Code (/src/) is licensed under GPL-3.0.