Overview
Mcaster1DNAS (Digital Network Audio Server) is a powerful, enterprise-grade streaming media server for professional audio broadcasting. Built on Icecast-KH and Icecast2, it delivers high-quality audio streaming with low latency, a modern web interface, and excellent reliability.
Key Features
- Secure by Default — HTTPS/SSL enabled out of the box
- ICY-META v2.2 Protocol — Extended metadata: podcast, video, social, track, live programming (spec | guide)
- Built-in SSL Cert Generator — Self-signed certs or CSRs from CLI/WinUI (guide)
- Per-Listener SSL Enforcement —
ssl: trueorssl: falseper listen-socket - Static Mount Types — podcast, socialcast, on-demand (guide)
- YAML Configuration — Modern YAML alongside XML (guide)
- Multi-Format Audio — MP3, AAC, Ogg Vorbis, Opus, FLAC, Speex, Theora
- High Performance — Low latency, high concurrent listeners
- Real-Time Statistics — Live dashboard
- Song History API — In-memory ring buffer at
/mcaster1songdata(guide) - Track History UI — MusicBrainz, Last.fm, Discogs, AllMusic lookup
- Browser Audio Player — HTML5 player with VU meters
- Windows Native GUI —
mcaster1win.exe; VS 2022 (guide)
Project Lineage
We maintain all original credits, licensing (GNU GPL v2), and acknowledgments.
- Icecast2 by Xiph.Org Foundation — the original streaming media server
- Icecast-KH by Karl Heyes — performance enhancements
Song History & Track Lookup
/mcaster1songdataXML API — Ring buffer of last N tracks (default 25,song-history-limit)- Track History Pages —
/admin/songdata.xsland/songdata.xsl - Music Service Lookup — One-click MusicBrainz, Last.fm, Discogs, AllMusic
- Deduplication — Identical consecutive titles silently ignored;
ended_atback-filled
See Song History API.
Quick Start
Prerequisites
- libxml2
- libxslt
- libcurl
- OpenSSL
- Ogg/Vorbis
Installation (Linux/Unix/macOS)
git clone https://github.com/davestj/mcaster1dnas.git
cd mcaster1dnas
./autogen.sh
./configure
--prefix=/usr/local/mcaster1dnas
--with-openssl --with-ogg --with-vorbis
make -j$(nproc)
sudo make install
Running the Server
/usr/local/mcaster1dnas/bin/mcaster1 -c /usr/local/mcaster1dnas/etc/mcaster1.xml
Default Access URLs
| URL | Description |
|---|---|
http://your-server:9330/ | HTTP status page |
https://your-server:9443/ | HTTPS status page |
https://your-server:9443/admin/stats.xsl | Admin interface |
YAML Configuration
listen-sockets:
- port: 9330
bind-address: "0.0.0.0"
ssl: false
- port: 9443
bind-address: "0.0.0.0"
ssl: true
authentication:
source-password: "hackme"
admin-user: "admin"
admin-password: "hackme"
limits:
clients: 100
song-history-limit: 25
SSL Certificate Setup
# Linux / macOS
./mcaster1 --ssl-gencert --ssl-gentype=selfsigned
--subj="/C=US/ST=CA/O=My Station/CN=stream.example.com"
--ssl-gencert-savepath=/etc/ssl
--ssl-gencert-addtoconfig=true -c mcaster1dnas.yaml
# Windows
mcaster1.exe --ssl-gencert --ssl-gentype=selfsigned
--subj="/C=US/ST=TX/O=My Station/CN=stream.example.com"
--ssl-gencert-savepath=ssl\mycert
--ssl-gencert-addtoconfig=true -c windows\mcaster1dnas.yaml
Windows Native GUI
Full native GUI (mcaster1win.exe), Visual Studio 2022 v17, Windows 10/11 x64.
CLI Flags
| Flag | Behaviour |
|---|---|
-c <file> | Specify config file (YAML or XML) |
-s | Auto-start server on launch |
-m | Start minimised to system tray |
-v | Print version and exit |
-h | Print help and exit |
--ssl-gencert | Generate SSL certificate/CSR then exit |
Building on Windows
Prerequisites: VS 2022 C++ workload, vcpkg x64-windows
vcpkg install libxml2 libxslt curl openssl libyaml ogg vorbis theora speex pthreads
# Open: windows\Mcaster1DNAS.sln
# Build -> Build Solution
# Output: windows\x64\Debug\mcaster1win.exeSee Windows GUI Guide and Windows Changelog.
System Requirements
| Component | Minimum | Recommended |
|---|---|---|
| CPU | 1 GHz single-core | 2+ GHz multi-core |
| RAM | 256 MB | 1 GB+ |
| Disk | 50 MB | 1 GB+ (logs) |
| Network | 100 Mbps | 1 Gbps |
Platforms: Linux (Debian/Ubuntu/CentOS/RHEL/Fedora), BSD (FreeBSD/OpenBSD/NetBSD), macOS (10.13+), Windows 10/11 x64
Features Roadmap (v2.5.2-dev)
- ✅ ICY-META v2.2 extended metadata protocol — 50+ fields, static mount support
- ✅ YAML configuration support (alongside XML)
- ✅ Per-listener
ssl:enforcement - ✅ Built-in SSL cert generator (
--ssl-gencertCLI flags) - ✅ Song History API — in-memory ring buffer at
/mcaster1songdata - ✅ Static mount types — podcast, socialcast, on-demand
- ✅ Windows native GUI (
mcaster1win.exe) — VS 2022, ResizableLib - ✅ Windows YAML config CRT crash fixed
- ✅ Windows uptime clock + system time status bar
- ✅ Windows real-time log viewer (color-coded,
_SH_DENYNO) - ✅ Windows HTTP admin auth fixed (WWW-Authenticate header)
- ✅ Complete Mcaster1DNAS visual rebrand
Upcoming (Cross-Platform)
- □ Real-time statistics dashboard (WebSocket/SSE)
- □ Dark mode toggle
- □ Stream health monitoring with visual indicators
- □ Historical listener analytics with charts
- □ Automated stream scheduling system
Upcoming (Windows GUI)
- □ Config Dialog Editor — visual YAML/XML editor built into the GUI
- □ Podcast & On-Demand File Manager
- □ RSS Podcast Feed Generator (RSS 2.0 / Apple Podcasts)
- □ Windows Service integration from GUI
- □ Dark mode (Windows 10/11 via DwmSetWindowAttribute)
License
Licensed under the GNU General Public License v2.0, compatible with Icecast2 and Icecast-KH.
Acknowledgments
- Xiph.Org Foundation — Icecast2 and open-source streaming
- Karl Heyes — Icecast-KH improvements and maintenance
- All Icecast contributors — decades of foundational streaming server development
- FontAwesome — icon library used in the web interface
Links & Contact
- Website: https://mcaster1.com
- GitHub: https://github.com/davestj/mcaster1dnas
- Issues: https://github.com/davestj/mcaster1dnas/issues
- Maintainer: David St John — davestj@gmail.com
Documentation
- Windows GUI Guide — mcaster1win.exe full user guide
- Windows Changelog — Windows-specific development history
- ICY-META v2.2 Spec — full normative protocol specification
- ICY2 Protocol Guide — implementation guide and admin API
- YAML Config Reference — all YAML keys, examples, migration from XML
- SSL Certificate Setup — built-in cert gen, per-listener enforcement
- Static Mount Points — podcast, socialcast, on-demand
- Song History API — track history ring buffer and XML API