Skip to content
/ gocast Public

Stream audio to thousands of listeners with a single binary. A modern Icecast replacement written in Go.

Notifications You must be signed in to change notification settings

1ay1/gocast

Repository files navigation

GoCast

Icecast, but modern.

Web UI • JSON config • Single binary • No XML

Go Version License Icecast Compatible


If you're happy editing XML and restarting Icecast, this project is not for you.


Why GoCast exists

Icecast works.

Icecast UX does not.

  • XML config files from 2003
  • Restart the server to change anything
  • Admin panel that looks like a CVS receipt
  • Documentation scattered across wikis and mailing lists

GoCast keeps the protocol, fixes the experience.

No XML. No restart. No pain.


60 seconds to streaming

git clone https://github.com/1ay1/gocast.git && cd gocast && go build -o gocast ./cmd/gocast && ./gocast

That's it. Open http://localhost:8000/admin/ and start streaming.


The Dashboard

GoCast Dashboard

Create mounts. Change settings. Add SSL. All without touching a config file or restarting anything.


What Icecast users actually wanted

Pain GoCast
XML config hell JSON + Web Dashboard
Restart to apply changes Hot reload everything
Basic admin page Modern dashboard
Complex setup Single binary, zero dependencies
Manual SSL setup One-click AutoSSL
Edit config via SSH Configure from your browser

Compatible with everything you already use

ffmpeg BUTT Mixxx Liquidsoap VLC

If it works with Icecast, it works with GoCast. Drop-in compatible.


Stream in 3 commands

Start the server:

./gocast

Connect your source:

ffmpeg -re -i music.mp3 -c:a libmp3lame -b:a 320k -f mp3 \
  icecast://source:password@localhost:8000/live

Listen:

mpv http://localhost:8000/live

Features that matter

  • 🎛️ Web Dashboard — Create mounts, manage listeners, rotate passwords. No terminal needed.
  • 🔄 Hot Reload — Change any setting without restarting. Ever.
  • 🔒 One-click SSL — AutoSSL with Let's Encrypt built in.
  • 📊 Live Stats — See listeners per mount in real time.
  • 🎧 All Formats — MP3, Ogg, Opus, AAC, FLAC.
  • 🐳 Docker Readydocker run and you're done.

Install

Single Binary

git clone https://github.com/1ay1/gocast.git
cd gocast
go build -o gocast ./cmd/gocast
./gocast

Docker

docker build -t gocast .
docker run -p 8000:8000 -v ~/.gocast:/root/.gocast gocast

Documentation

Guide What you'll learn
Getting Started Zero to streaming in 60 seconds
Dashboard Guide Configure everything from your browser
Sources Connect ffmpeg, BUTT, Liquidsoap, etc.
SSL Setup One-click HTTPS with AutoSSL
API Reference REST API for automation

The uncomfortable truth

Your Icecast setup works fine.

You just hate touching it.

GoCast is for people who want streaming infrastructure they can actually manage without reading a wiki from 2008.


Ready to stop fighting XML?

⭐ Star on GitHub if you've ever rage-quit an Icecast config.

🐛 Report Bug💡 Request Feature

MIT License • Made with Go

About

Stream audio to thousands of listeners with a single binary. A modern Icecast replacement written in Go.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published