4 ms·
TinyIce: Single-binary Icecast2-compatible server (auto-HTTPS, multi-tenant)
- sylwester 8mo agoI built TinyIce as a vibing side project to spin up an Icecast2-compatible server in seconds, because I was frustrated with IceCast. One static Go binary, embedded assets, auto-generated creds on first run, built-in ACME (Let’s Encrypt), relays, multi-tenant admins, Prometheus metrics, and a modern web UI.
- mrweasel 8mo agoIt's a very nice project. Me and some friends toyed with the idea of running our own IceCast server, as a way to introducing new music to each other. We eventually gave up, exactly due to frustrations with setting up and running IceCast. I think it's really neat how you managed to include ACME, a nice UI and even the Prometheus metrics.
- BLKNSLVR 8mo agoTangent: Get onto Music League for introducing new music to each other. Someone setup a league at work, and it's been one of the best (albeit unintentional) team bonding exercises I've ever come across (I've not come across many). So much so that three people who have left the company still participate in the league. It unfortunately it's linked to and requires the use of Spotify, for those who are ideologically opposed (which also means I can't submit King Gizzard and the Lizard Wizard songs anymore).
- sylwester 8mo agoThank you so much. I just added a lot of new features and polished some old ones now.
- hsbauauvhabzb 8mo agoWhat was frustrating Icecast?
- sylwester 8mo agoXML-based big configuration, confusing for new users. No "run a single binary" and that's it :)
- mcraiha 8mo agoThe HTTPS is still a problem for some streaming music sites. e.g. streamingsoundtracks.com runs HTTP.
- iberator 8mo agowhy this is a problem? Streaming over Http just works - even on clients from 1999 like Winamp. Why would you military grade encrypt radio service or static site anyway?
- bandrami 8mo agoTo keep your ISP from slipping ads into the audio stream? To keep RIAA from finding out what you're streaming and suing you into oblivion?
- miki123211 8mo agoAnd, more importantly, to keep misconfigured network appliances from treating every resource on the web as HTML and trying to shove ads into it, breaking audio players.
- rustyhodge 8mo agoBecause some browsers get annoyed and put up lots of alerts if they can't make a https connection
- jamesbfb 8mo agoRusty, of SomaFM fame? What a blessing to see you here! Mega fan, proud SomaFM mug owner from Australia :)
- sneak 8mo agoA static site? Because any hop can inject arbitrary code which your browser will then execute. TLS doesn’t just offer confidentiality, it also offers integrity.
- 8mo ago
- IshKebab 8mo agoIcecast still exists? Blast from the past. Does it work reliably yet?
- elevation 8mo agoI've had years of uptime with icecast at home.
- deleted 8mo ago[deleted]
- zenmac 8mo agoDose it work behind a reverse proxy such as nginx? Especially for the m3u8 files?
- sylwester 8mo agoThat should work! :) Just added m3u/m3u8 support.
- poketdev 8mo ago[flagged]
- poketdev 8mo ago[flagged]
- poketdev 8mo ago[flagged]
- notachatbot123 8mo agoMods: This seems to be an "agent".
- pseudalopex 8mo agoSend it to hn@ycombinator.com.[1] [1] https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- elevation 8mo agoThanks for sharing! Would love to see configurable ACME settings for use in a homelab where I'm already running my own ACME CA.
- sylwester 8mo agothank you for trying. I have added it in the latest release.
- sylwester 8mo agoI've just added better docs, the CI/CD pipeline is now releasing binaries for all major platforms and custom ACME URLs are supported.
- sylwester 8mo agoHere is a little writeup on medium.com: https://syso42.medium.com/tinyice-how-i-created-a-single-binary-icecast2-server-in-go-b9a169cd3d34 https://syso42.medium.com/tinyice-how-i-created-a-single-bin...
- rini17 8mo agoI tried streaming with icecast2 during pandemic and always got dropped connections in tens of minutes. It drove me mad. And it's impossible to detect in advance, receivers skip for seconds till new connection is made. From packet captures it appears as dropped ack packets. It was https so copyright filters are unlikely. Are there different solutions, different protocols, ideally supported by browser in some simple manner? Is streaming over websocket possible?
- sylwester 8mo agoI am planning to add other restreaming options such as RTMP or HLS. So far, my test stream is running for more than 10h and did not have a single dropout.
- felixding 8mo agoVery cool project! When I was still working at a large corporation, I built an internal "social" radio station using Icecast2. I'd broadcast my favorite music like Pink Floyd and Radiohead to my coworkers via a simple Rails web app, and we'd chat about music, work, and everything in between on the same web app. That was a long time ago, and I no longer have that environment (a big company with lots of similar-minded young people), but live-streaming music with friends will always be a soft spot in my heart.
- sylwester 7mo agoI've added several improvements over the last couple of days.