https://github.com/1ay1/gocast
Stream audio to thousands of listeners with a single binary. A modern Icecast replacement written in Go.
https://github.com/1ay1/gocast
audio go icecast media mp3 radio server shoutcast streaming
Last synced: 5 months ago
JSON representation
Stream audio to thousands of listeners with a single binary. A modern Icecast replacement written in Go.
- Host: GitHub
- URL: https://github.com/1ay1/gocast
- Owner: 1ay1
- Created: 2026-01-02T09:47:13.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2026-01-07T17:15:57.000Z (6 months ago)
- Last Synced: 2026-01-08T11:51:53.397Z (6 months ago)
- Topics: audio, go, icecast, media, mp3, radio, server, shoutcast, streaming
- Language: Go
- Homepage:
- Size: 36.4 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

# Icecast, but modern.
**Web UI • JSON config • Single binary • No XML**
[](https://go.dev)
[](LICENSE)
[](https://icecast.org)
---
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
```bash
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
*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:**
```bash
./gocast
```
**Connect your source:**
```bash
ffmpeg -re -i music.mp3 -c:a libmp3lame -b:a 320k -f mp3 \
icecast://source:password@localhost:8000/live
```
**Listen:**
```bash
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 Ready** — `docker run` and you're done.
---
## Install
### Single Binary
```bash
git clone https://github.com/1ay1/gocast.git
cd gocast
go build -o gocast ./cmd/gocast
./gocast
```
### Docker
```bash
docker build -t gocast .
docker run -p 8000:8000 -v ~/.gocast:/root/.gocast gocast
```
---
## Documentation
| Guide | What you'll learn |
|-------|-------------------|
| [Getting Started](docs/getting-started.md) | Zero to streaming in 60 seconds |
| [Dashboard Guide](docs/admin-panel.md) | Configure everything from your browser |
| [Sources](docs/sources.md) | Connect ffmpeg, BUTT, Liquidsoap, etc. |
| [SSL Setup](docs/ssl.md) | One-click HTTPS with AutoSSL |
| [API Reference](docs/api.md) | 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](https://github.com/1ay1/gocast)** if you've ever rage-quit an Icecast config.
[🐛 Report Bug](https://github.com/1ay1/gocast/issues) • [💡 Request Feature](https://github.com/1ay1/gocast/issues)
MIT License • Made with Go