Rocket Streaming Audio Server (RSAS) is designed as a drop-in replacement for Icecast. That means you can overwrite your Icecast executable with RSAS and expect it to work. RSAS reads your existing Icecast configuration file, accepts the same command-line parameters, and writes logs in the same format as Icecast. You can connect with your existing Icecast streaming audio encoder without changing any settings, and your listeners can connect to your stream in exactly the same way.
In other words, RSAS integrates with your existing Icecast, to make it as easy as possible to migrate to.
To broadcasters and listeners, it behaves the same as Icecast, but with lower latency and some new features. To system administrators, it's more reliable, easier to monitor, and supported by a full-time development team.
To recap Icecast compatibility, RSAS has:
Instead of the "Icecast Status Page", by default, RSAS has a JSON /health
URL, which contains the server status and
listener counts for each mount. However, an Icecast-compatible Status Page can be enabled.
To replace Icecast system-wide with Rocket Streaming Audio Server (RSAS), just download it and overwrite your existing Icecast executable with it.
Although most features used by the majority of broadcasters and stream hosting platforms are implemented, some lesser-used features are not yet implemented in RSAS. To get a better idea of what's implemented, please skim the Configuration section, and then read the "Kitchen Sink" example configuration file, which demonstrates every available configuration option.
An Icecast-compatible Status Page and /status-json.xsl
JSON endpoint are available, but must be explicitly enabled.
Some Icecast features that are not yet supported are:
As a workaround for playlist files, you can create your own manually and place them in your webroot.
If you require a missing feature, please let us know!
Icecast-KH uses a slightly different syntax for its configuration file compared to regular Icecast. However, RSAS is compatible with both. Wildcard mounts from Icecast-KH are supported, as well as the equivalent default mounts from Icecast.
To migrate from Icecast to RSAS:
1) Download and install RSAS.
2) RSAS can read your existing Icecast configuration, so try shutting down Icecast
and starting the rsas
service with your existing configuration by running this in a shell:
sudo systemctl stop icecast2 # Stop your existing Icecast server
sudo cp /etc/icecast2/icecast.xml /etc/rsas/rsas.xml # Copy your Icecast config
sudo usermod -a -G icecast rsas # Add the rsas user to the icecast group so it can access icecast directories.
sudo chmod g+w /var/log/icecast2/* # Fix some permissions so that RSAS can write to the log file.
sudo chown rsas:rsas /etc/rsas/rsas.xml # Fix permission on copied Icecast config.
sudo systemctl start rsas # Start RSAS
sudo systemctl status rsas # Check its status
If this works, you'll see some output from RSAS saying it's running. If you want to
permanently install rsas
, please follow the rest of the installation instructions. In particular,
make sure rsas
starts at boot:
sudo systemctl enable rsas
If you need to revert the above actions and go back to Icecast, run:
sudo systemctl stop rsas
sudo systemctl disable rsas
sudo systemctl start icecast2
and uninstall the RSAS package.
Lastly, if you have an existing HTTPS/TLS setup with Let's Encrypt or certbot, please make sure you update the renewal
hook to reload the rsas
service instead of icecast
after the certificate renews. (Typically, open /etc/letsencrypt/renewal/*.conf
in an editor and ensure systemctl reload rsas
is run after renewal instead of icecast
).
If your Icecast setup did not have HTTPS working, then please see our guide on configuring HTTPS.