Castopod vs AzuraCast: Podcast Hosting or Web Radio?

Quick Verdict

Castopod and AzuraCast solve different problems. Castopod is a podcast hosting platform — upload episodes, generate RSS feeds, distribute to Apple Podcasts and Spotify. AzuraCast is an internet radio station — live DJ streaming, auto-DJ playlists, and real-time listeners.

Pick Castopod if you produce a podcast and want to own your hosting. Pick AzuraCast if you want to run an internet radio station with live or automated music streaming.

What Each Tool Does

These platforms share a category (self-hosted audio) but almost no overlap in functionality.

Castopod replaces Buzzsprout, Podbean, and Spotify for Podcasters. You upload pre-recorded episodes, add show notes and chapters, and Castopod generates an RSS feed that Apple Podcasts, Spotify, and other podcast apps consume. It also federates via ActivityPub — your podcast has a Fediverse presence that followers can interact with from Mastodon.

AzuraCast replaces Live365 and traditional radio broadcast infrastructure. It runs Icecast or SHOUTcast streaming servers, manages playlists, lets DJs connect and broadcast live, and provides listener analytics with GeoIP data. Think “run your own radio station” rather than “host your podcast.”

AspectCastopodAzuraCast
PurposePodcast hostingInternet radio
Content TypePre-recorded episodesLive streams + auto-DJ playlists
DistributionRSS feed → podcast appsIcecast/SHOUTcast streams
ReplacesBuzzsprout, Podbean, AnchorLive365, Radionomy
GitHub Stars8263,722
LanguagePHP (CodeIgniter 4)PHP + Vue.js
LicenseAGPL-3.0AGPL-3.0

Feature Comparison

FeatureCastopodAzuraCast
Episode upload + RSSYes (core feature)No
Live DJ streamingNoYes
Auto-DJ (automated playlists)NoYes
Podcasting 2.0 (chapters, transcripts)YesNo
ActivityPub / FediverseYesNo
Embeddable playerYesYes
Listener analyticsYes (privacy-first)Yes (with GeoIP)
Multi-show supportYesYes (multiple stations)
SFTP media uploadNoYes (port 2022)
Stream relaysNoYes
Remote DJ accessNoYes

Docker Setup

Castopod

Castopod has a lightweight, straightforward setup:

services:
  castopod:
    image: castopod/castopod:1.15.5
    ports:
      - "8080:8080"
    environment:
      CP_BASEURL: "https://podcast.example.com"
      CP_MEDIA_BASEURL: "https://podcast.example.com"
      CP_ADMIN_GATEWAY: "cp-admin"
      CP_AUTH_GATEWAY: "cp-auth"
      CP_DATABASE_HOSTNAME: db
      CP_DATABASE_NAME: castopod
      CP_DATABASE_USERNAME: castopod
      CP_DATABASE_PASSWORD: castopod-secret
      CP_CACHE_HANDLER: redis
      CP_REDIS_HOST: redis
    volumes:
      - castopod-media:/var/www/castopod/public/media
    depends_on:
      - db
      - redis
    restart: unless-stopped

  db:
    image: mariadb:10.11
    environment:
      MYSQL_ROOT_PASSWORD: root-secret
      MYSQL_DATABASE: castopod
      MYSQL_USER: castopod
      MYSQL_PASSWORD: castopod-secret
    volumes:
      - castopod-db:/var/lib/mysql
    restart: unless-stopped

  redis:
    image: redis:7-alpine
    restart: unless-stopped

volumes:
  castopod-media:
  castopod-db:

Setup takes 15-30 minutes including the web-based installer.

AzuraCast

AzuraCast is more complex — it bundles Icecast, Liquidsoap, and multiple services:

# AzuraCast recommends their install script
mkdir -p /var/azuracast
cd /var/azuracast
curl -fsSL https://raw.githubusercontent.com/AzuraCast/AzuraCast/main/docker.sh > docker.sh
chmod a+x docker.sh
./docker.sh install

The install script pulls a Docker Compose stack with multiple services and exposes 80+ ports for streaming. Manual Docker Compose setup is possible but more involved due to the streaming server configuration.

Setup takes 30-60 minutes, and initial station configuration requires understanding streaming concepts (mount points, bitrates, codecs).

Resource Requirements

ResourceCastopodAzuraCast
Minimum RAM256 MB512 MB
Recommended RAM512 MB2 GB
CPULowMedium (audio transcoding)
DiskDepends on episode filesDepends on music library
Network Ports80, 44380, 443, 2022, 8000-8496
Docker ComplexityLow (3 containers)High (multiple services, many ports)

Castopod is significantly lighter because it’s storing and serving files, not transcoding audio in real-time. AzuraCast runs audio processing (Liquidsoap) continuously for live mixing and auto-DJ.

Analytics

Both platforms include analytics, but with different approaches.

Castopod tracks downloads per episode following the IAB Podcast Measurement standard. Analytics are privacy-first — designed for GDPR/CCPA compliance with no personal data stored. You get episode download counts, listener geography (country-level), and listening apps/platforms.

AzuraCast provides real-time listener counts, listener geography with GeoIP mapping, listening duration, peak concurrent listeners, and historical trends. It’s closer to traditional radio station analytics — focused on who’s listening right now and for how long.

Fediverse Integration

Castopod’s ActivityPub support is a unique differentiator. Your podcast gets a Fediverse account — followers on Mastodon, Pleroma, or any ActivityPub-compatible platform can:

  • Follow your podcast
  • See new episode announcements in their feed
  • Comment on episodes (comments appear in Castopod’s interface)
  • Share episodes natively

This is genuine social media distribution without depending on Twitter/X, Facebook, or any centralized platform. For self-hosting enthusiasts (who tend to be Fediverse-friendly), this is a significant advantage.

AzuraCast has no Fediverse integration.

Use Cases

Choose Castopod If…

  • You produce a podcast (interviews, discussions, storytelling)
  • You want to own your RSS feed and analytics
  • You’re currently paying Buzzsprout, Podbean, or Anchor
  • Fediverse presence matters to you
  • You want Podcasting 2.0 features (chapters, transcripts)
  • You run a low-resource server

Choose AzuraCast If…

  • You want to run an internet radio station
  • You need live DJ streaming capability
  • You want automated playlist rotation (auto-DJ)
  • You’re running a community radio or music station
  • You need real-time listener analytics with GeoIP
  • You want listeners to tune in via Icecast/SHOUTcast compatible players

Final Verdict

These are complementary tools, not competitors. A self-hosted audio setup could run both — Castopod for your podcast’s RSS distribution and Fediverse presence, AzuraCast for a companion radio stream playing your back catalog with auto-DJ.

If you only need one: Castopod if you make a podcast, AzuraCast if you want internet radio. The distinction is that clear.

Comments