Deploying AzuraCast
Introduction
AzuraCast is a powerful, free, and open-source self-hosted web radio management suite that makes it easy to broadcast your own internet radio station. Built with modern web technologies, AzuraCast provides a complete solution for managing radio stations, uploading and organizing media, creating playlists, managing DJ accounts, and broadcasting to listeners worldwide. With its intuitive web interface, automated DJ capabilities, and support for multiple streaming formats, AzuraCast is perfect for podcasters, community radio stations, hobbyists, and professional broadcasters alike.
Deploying AzuraCast on Klutch.sh provides a production-ready, scalable infrastructure for your web radio platform with automated Docker deployments, persistent storage for media libraries and station data, secure environment variable management, and reliable streaming capabilities. Whether you’re launching a music streaming service, podcast network, community radio station, or multi-station broadcasting platform, Klutch.sh simplifies the deployment process and ensures your AzuraCast instance delivers high-quality audio to your listeners 24/7.
This comprehensive guide walks you through deploying AzuraCast on Klutch.sh using a Dockerfile, configuring database connections, setting up persistent volumes for media storage, managing environment variables for security, configuring streaming settings, and implementing production best practices for reliable radio broadcasting.
Prerequisites
Before you begin deploying AzuraCast on Klutch.sh, ensure you have:
- A Klutch.sh account (sign up here)
- A GitHub repository for your AzuraCast deployment configuration
- Basic understanding of Docker containers and environment variables
- (Recommended) A MariaDB or MySQL database instance for production use
- Access to the Klutch.sh dashboard
- Media files (music, podcasts, jingles) for your radio station
Understanding AzuraCast Architecture
AzuraCast consists of several key components working together to provide a complete radio broadcasting solution:
- Web Interface: PHP-based application for station management, media library, and administration
- Icecast/SHOUTcast: Streaming servers for broadcasting audio to listeners
- Liquidsoap: Audio automation and playlist management system
- Database: MariaDB or MySQL for storing station configurations, media metadata, and listener statistics
- Redis: Caching layer for improved performance
- Storage: Persistent volumes for media files, station backups, and configuration data
When deployed on Klutch.sh, AzuraCast automatically detects your Dockerfile in the root directory and builds a container image that includes all necessary components. The platform manages traffic routing and provides persistent storage options for your media library and application data.
Project Structure
A minimal repository structure for deploying AzuraCast on Klutch.sh:
azuracast-deployment/├── Dockerfile├── .dockerignore├── .gitignore├── azuracast.env.example└── README.mdThis structure allows Klutch.sh to automatically detect and build your AzuraCast container. The official AzuraCast Docker image comes pre-packaged with all required software components.
Creating Your Dockerfile
Klutch.sh automatically detects a Dockerfile in the root directory of your repository. Create a Dockerfile that uses the official AzuraCast image:
Production Dockerfile (Recommended)
FROM ghcr.io/azuracast/azuracast:latest
# Set working directoryWORKDIR /var/azuracast/www
# Expose HTTP port for the web interfaceEXPOSE 80
# Expose streaming portsEXPOSE 8000 8005 8006 8010 8015 8016 8020 8025 8026 8030 8035 8036 8040 8045 8046
# Health check to ensure the application is runningHEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \ CMD curl -f http://localhost/api/status || exit 1
# Use the default entrypoint from the base imageCMD ["/usr/local/bin/my_init"]Alternative: Specific Version Dockerfile
For production stability, pin to a specific AzuraCast version:
FROM ghcr.io/azuracast/azuracast:0.20.3
WORKDIR /var/azuracast/www
EXPOSE 80EXPOSE 8000 8005 8006 8010 8015 8016 8020 8025 8026 8030 8035 8036 8040 8045 8046
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \ CMD curl -f http://localhost/api/status || exit 1
CMD ["/usr/local/bin/my_init"]Persistent Storage Configuration
AzuraCast requires persistent storage for several critical directories to ensure media files, station configurations, and backups survive container restarts and redeployments.
Required Persistent Volumes
-
Media Storage Volume
- Mount Path:
/var/azuracast/stations - Size: 20GB minimum (adjust based on your media library size)
- Purpose: Stores all uploaded media files, playlists, and station-specific data
- Mount Path:
-
Database Storage Volume
- Mount Path:
/var/azuracast/db - Size: 5GB minimum
- Purpose: Stores MariaDB database files with station configurations and metadata
- Mount Path:
-
Backup Storage Volume (Optional but Recommended)
- Mount Path:
/var/azuracast/backups - Size: 10GB minimum
- Purpose: Stores automated backups of your stations and database
- Mount Path:
Setting Up Volumes in Klutch.sh
- Navigate to the Klutch.sh dashboard
- Open your AzuraCast app settings
- Scroll to the “Persistent Volumes” section
- Add the media storage volume:
- Mount Path:
/var/azuracast/stations - Size: Enter your desired size (e.g., 20GB)
- Mount Path:
- Add the database storage volume:
- Mount Path:
/var/azuracast/db - Size: Enter your desired size (e.g., 5GB)
- Mount Path:
- (Optional) Add the backup storage volume:
- Mount Path:
/var/azuracast/backups - Size: Enter your desired size (e.g., 10GB)
- Mount Path:
- Save your volume configurations
Environment Variables Configuration
AzuraCast can be configured using environment variables for security and flexibility. Set these in your Klutch.sh app settings:
Essential Environment Variables
# Application SettingsAZURACAST_BASE_URL=https://example-app.klutch.shENABLE_ADVANCED_FEATURES=true
# Database Configuration (if using external database)MYSQL_HOST=your-database-hostMYSQL_PORT=3306MYSQL_USER=azuracastMYSQL_PASSWORD=your-secure-passwordMYSQL_DATABASE=azuracastMYSQL_RANDOM_ROOT_PASSWORD=yes
# Redis ConfigurationREDIS_HOST=localhostREDIS_PORT=6379
# Application SecurityAPP_ENV=productionCOMPOSER_PLUGIN_MODE=false
# PHP ConfigurationPHP_MAX_EXECUTION_TIME=300PHP_MEMORY_LIMIT=256MPHP_UPLOAD_MAX_FILESIZE=100MPHP_POST_MAX_SIZE=100M
# Streaming ConfigurationAUTO_ASSIGN_PORT_MIN=8000AUTO_ASSIGN_PORT_MAX=8499Optional Environment Variables
# HTTPS/SSL ConfigurationLETSENCRYPT_HOST=radio.yourdomain.comLETSENCRYPT_EMAIL=admin@yourdomain.com
# Analytics and MonitoringENABLE_REDIS=trueENABLE_ADVANCED_FEATURES=true
# Performance TuningNGINX_WORKER_PROCESSES=autoNGINX_WORKER_CONNECTIONS=1024
# Backup ConfigurationBACKUP_ENABLED=trueBACKUP_SCHEDULE="0 3 * * *"BACKUP_RETENTION_DAYS=14Network Configuration
AzuraCast requires specific port configurations for the web interface and streaming:
Port Configuration in Klutch.sh
- Primary HTTP Port: Set to
80for the web interface - Internal Port: Specify
80as the internal port that traffic is routed to the container - Traffic Type: Select
HTTPtraffic in the Klutch.sh dashboard - Streaming Ports: AzuraCast uses ports 8000-8499 for radio streams (these are configured internally)
For streaming, listeners will connect through your Klutch.sh app URL (e.g., https://example-app.klutch.sh/radio/8000/radio.mp3). The streaming URLs are generated automatically by AzuraCast and are accessible through the web interface.
Deploying to Klutch.sh
Follow these steps to deploy AzuraCast on Klutch.sh:
-
Prepare Your Repository
- Create a new GitHub repository for your AzuraCast deployment
- Add the
Dockerfilefrom the example above to the root directory - Commit and push your changes to GitHub
-
Create a New App on Klutch.sh
- Log in to the Klutch.sh dashboard
- Click “Create New App” or “New Project”
- Connect your GitHub repository
- Select the repository containing your AzuraCast Dockerfile
-
Configure Build Settings
- Klutch.sh will automatically detect the Dockerfile in your repository root
- The build context is automatically set to the repository root
- No additional build configuration is required
-
Configure Network Settings
- Set the internal port to
80 - Select
HTTPas the traffic type - Klutch.sh will automatically assign an external URL
- Set the internal port to
-
Attach Persistent Volumes
- Add a volume with mount path:
/var/azuracast/stations(minimum 20GB) - Add a volume with mount path:
/var/azuracast/db(minimum 5GB) - Optionally add a volume with mount path:
/var/azuracast/backups(minimum 10GB)
- Add a volume with mount path:
-
Set Environment Variables
- Add the essential environment variables listed in the Environment Variables section
- Set
AZURACAST_BASE_URLto your Klutch.sh app URL (e.g.,https://example-app.klutch.sh) - Configure database credentials if using an external database
- Mark sensitive values (passwords, API keys) as secret
-
Deploy the Application
- Click “Create” or “Deploy” to start the deployment
- Klutch.sh will build your Docker image and start the container
- Wait for the build and deployment to complete (typically 3-5 minutes)
-
Initial Setup
- Once deployed, visit your app URL (e.g.,
https://example-app.klutch.sh) - Complete the AzuraCast installation wizard
- Create your administrator account
- Set up your first radio station
- Once deployed, visit your app URL (e.g.,
Initial Setup and Configuration
After your AzuraCast instance is deployed and running, complete the initial setup:
First-Time Setup Wizard
-
Access the Web Interface
- Navigate to your Klutch.sh app URL (e.g.,
https://example-app.klutch.sh) - You’ll be greeted with the AzuraCast setup wizard
- Navigate to your Klutch.sh app URL (e.g.,
-
Create Administrator Account
- Enter your email address
- Choose a strong password
- Confirm your password
- Click “Create Account”
-
Configure Your First Station
- Station Name: Enter a name for your radio station
- Station Description: Add a brief description
- Select a frontend (Icecast is recommended for beginners)
- Choose streaming bitrates and formats
- Click “Create Station”
-
Upload Media Files
- Navigate to “Music” in the sidebar
- Click “Upload” to add your audio files
- Supported formats: MP3, OGG, FLAC, AAC, and more
- Wait for files to be processed
-
Create a Playlist
- Go to “Playlists” in the sidebar
- Click “Add Playlist”
- Choose “Standard Playlist” for general rotation
- Add your uploaded media to the playlist
- Set scheduling options (play always, specific times, etc.)
-
Start Broadcasting
- Go to “Profile” in the sidebar
- Click “Start/Restart Broadcasting”
- Your station is now live!
- Copy the stream URLs to share with listeners
Customizing Build and Start Commands with Nixpacks
While AzuraCast uses a Dockerfile for deployment on Klutch.sh, you may need to customize certain aspects. Klutch.sh uses Nixpacks for building applications. If you need to override the default start command or customize the build process, you can use Nixpacks environment variables:
Build-Time Environment Variables
# Override the build commandNIXPACKS_BUILD_CMD=custom-build-script.sh
# Install additional packagesNIXPACKS_PKGS=ffmpeg imagemagick curlRuntime Environment Variables
# Override the start commandNIXPACKS_START_CMD=/usr/local/bin/my_init
# Set PHP memory limitNIXPACKS_PHP_MEMORY_LIMIT=512MThese can be set in the Klutch.sh dashboard under your app’s environment variables section.
Database Configuration
AzuraCast can use either the built-in MariaDB instance (included in the Docker image) or an external database for enhanced reliability.
Option 1: Using Built-In Database (Default)
The AzuraCast Docker image includes a MariaDB instance that runs inside the container. This is suitable for small to medium deployments:
- No additional configuration required
- Database files stored in
/var/azuracast/db(ensure this is mounted to a persistent volume) - Automatic setup and configuration
Option 2: Using External Database (Recommended for Production)
For production deployments, use an external MariaDB or MySQL database:
-
Provision a Database
- Deploy a MariaDB instance on Klutch.sh or use a managed database service
- Create a database named
azuracast - Create a user with full privileges on the
azuracastdatabase
-
Configure Environment Variables
- Set
MYSQL_HOSTto your database host - Set
MYSQL_PORTto3306(or your database port) - Set
MYSQL_USERto your database username - Set
MYSQL_PASSWORDto your database password - Set
MYSQL_DATABASEtoazuracast
- Set
-
Deploy AzuraCast
- AzuraCast will automatically detect the external database
- On first startup, it will create the necessary tables
- The built-in MariaDB will be disabled automatically
Streaming Configuration
AzuraCast supports multiple streaming servers and formats to reach different audiences and platforms.
Icecast Configuration (Recommended)
Icecast is the default and most compatible streaming server:
- Mount Points: Configure multiple mount points for different bitrates
- Formats: MP3, OGG Vorbis, Opus
- Compatibility: Works with most media players and mobile apps
- URLs: Access streams at
https://example-app.klutch.sh/radio/8000/radio.mp3
SHOUTcast Configuration (Alternative)
SHOUTcast is an alternative streaming server with slightly different features:
- Legacy Support: Better compatibility with older players
- SC_TRANS: Direct DJ broadcasting support
- Formats: Primarily MP3
- URLs: Access streams at
https://example-app.klutch.sh/radio/8000
Configuring Multiple Streams
- Navigate to your station’s “Profile” page
- Click “Edit” next to “Broadcasting”
- Enable multiple mount points for different bitrates:
- Low Quality: 64kbps (for mobile users with limited bandwidth)
- Medium Quality: 128kbps (balanced quality and bandwidth)
- High Quality: 320kbps (for audiophiles)
- Set appropriate formats (MP3, OGG, etc.)
- Save your configuration
- Restart broadcasting to apply changes
Managing DJ Accounts
AzuraCast allows you to create DJ accounts for live broadcasting:
-
Create a DJ Account
- Go to “Users” in the admin panel
- Click “Add User”
- Enter the DJ’s email and name
- Select “DJ” as the role
- Assign the DJ to specific stations
-
Configure DJ Connection Settings
- Navigate to the station’s “Profile” page
- Find the “DJ/Streamer Connection” section
- Note the connection details (server, port, mount point, password)
- Share these credentials with your DJ
-
Connect with Broadcasting Software
- DJs can use software like BUTT, Mixxx, or Traktor
- Configure the software with the connection details
- When the DJ goes live, their stream will override the AutoDJ
-
Schedule DJ Shows
- Create a “Scheduled Playlist” type
- Set specific times for DJ shows
- The AutoDJ will resume when the show ends
Media Management Best Practices
Organize and manage your media library efficiently:
File Organization
- Use folders: Organize media by genre, artist, or show
- Consistent naming: Use clear, consistent file names
- Metadata: Ensure all files have proper ID3 tags (title, artist, album)
- Artwork: Add album artwork for better visual presentation
Storage Optimization
- Bitrate standards: Use 128kbps or 192kbps for most content
- Format selection: MP3 is most compatible; FLAC for archival quality
- Regular cleanup: Remove unused or duplicate files
- Monitor usage: Check storage usage in the dashboard
Playlist Strategies
- General Rotation: Main playlist that plays most of the time
- Time-based: Playlists for specific times (morning drive, evening chill)
- Jingles: Station IDs and advertisements on a schedule
- Special Shows: Themed playlists for specific programs
Backups and Data Protection
Protect your station data, media library, and configurations:
Automated Backups
AzuraCast includes built-in backup functionality:
- Navigate to “System Administration” → “Backups”
- Enable automatic backups
- Set a backup schedule (daily recommended)
- Choose backup retention period (14-30 days recommended)
- Backups are stored in
/var/azuracast/backups
Manual Backups
Create manual backups before major changes:
- Go to “System Administration” → “Backups”
- Click “Run Manual Backup”
- Wait for the backup to complete
- Download the backup file to your local system
Restoring from Backup
To restore from a backup:
- Go to “System Administration” → “Backups”
- Upload your backup file or select from existing backups
- Click “Restore”
- Wait for the restoration process to complete
- Broadcasting will restart automatically
Monitoring and Analytics
Track your station’s performance and listener statistics:
Built-In Analytics
AzuraCast provides comprehensive analytics:
- Current Listeners: Real-time listener count
- Historical Data: Listener trends over time
- Geographic Distribution: Where your listeners are located
- Popular Content: Most-played songs and shows
- Peak Times: When you have the most listeners
Accessing Statistics
- Navigate to your station’s dashboard
- View the “Listeners” graph for real-time data
- Click “Reports” for detailed analytics
- Export data for external analysis if needed
Performance Monitoring
Monitor your Klutch.sh app’s resource usage:
- Check CPU and memory usage in the Klutch.sh dashboard
- Monitor storage usage for your media volumes
- Set up alerts for high resource utilization
- Scale resources if needed for peak traffic
Custom Domain Configuration
Connect your own domain to your AzuraCast instance:
-
Configure DNS
- Create an A or CNAME record pointing to your Klutch.sh app
- For example:
radio.yourdomain.com→example-app.klutch.sh - Wait for DNS propagation (can take up to 48 hours)
-
Add Domain in Klutch.sh
- Go to your app settings in the Klutch.sh dashboard
- Navigate to “Custom Domains”
- Add your domain (e.g.,
radio.yourdomain.com) - Klutch.sh will automatically provision an SSL certificate
-
Update AzuraCast Configuration
- Update the
AZURACAST_BASE_URLenvironment variable - Set it to
https://radio.yourdomain.com - Restart your application for changes to take effect
- Update the
-
Verify Configuration
- Visit your custom domain
- Ensure HTTPS is working (look for the padlock icon)
- Test streaming URLs with your custom domain
For more details, see the Custom Domains documentation.
Troubleshooting Common Issues
Issue: Web Interface Not Loading
Symptoms: Blank page or connection refused error
Solutions:
- Check that the app is running in the Klutch.sh dashboard
- Verify the internal port is set to
80 - Check application logs for errors
- Ensure persistent volumes are properly mounted
- Restart the application
Issue: Streaming Not Working
Symptoms: Cannot connect to stream, no audio playback
Solutions:
- Verify broadcasting is started in the station profile
- Check that media files are uploaded and in a playlist
- Ensure the playlist is enabled and scheduled
- Test the stream URL directly in a media player (VLC, Winamp)
- Check firewall rules if using custom streaming ports
Issue: High Memory Usage
Symptoms: App crashes or becomes unresponsive
Solutions:
- Check the number of simultaneous listeners
- Reduce streaming bitrates if necessary
- Optimize PHP memory settings via environment variables
- Scale your Klutch.sh app to a larger instance size
- Consider using an external database to reduce memory pressure
Issue: Database Connection Errors
Symptoms: “Cannot connect to database” errors
Solutions:
- Verify database environment variables are correct
- Check that the database volume is properly mounted at
/var/azuracast/db - Ensure sufficient storage space is available
- Restart the application to reinitialize database connections
- Check database logs for specific error messages
Issue: Media Upload Failures
Symptoms: Files fail to upload or process
Solutions:
- Check available storage space on the media volume
- Verify
PHP_UPLOAD_MAX_FILESIZEis set appropriately (100M or higher) - Ensure file formats are supported (MP3, OGG, FLAC, AAC)
- Check file permissions on
/var/azuracast/stations - Try uploading smaller files or fewer files at once
Security Best Practices
Protect your AzuraCast instance and listener data:
Access Control
- Strong passwords: Use complex passwords for all accounts
- 2FA: Enable two-factor authentication for administrator accounts
- Role-based access: Assign appropriate roles (Admin, DJ, User)
- Regular audits: Review user accounts and remove inactive ones
Network Security
- HTTPS only: Always use HTTPS for the web interface
- Secure streaming: Use encrypted stream connections when possible
- Firewall rules: Restrict access to administrative ports
- Regular updates: Keep AzuraCast updated to the latest version
Data Protection
- Environment variables: Store sensitive data as secrets in Klutch.sh
- Backup encryption: Encrypt backup files before external storage
- Database security: Use strong database passwords
- API access: Limit API key permissions to only what’s needed
Update Management
- Monitor AzuraCast release notes for updates
- Test updates in a staging environment first
- Backup your data before major updates
- Update your Dockerfile to the new version tag
- Redeploy through Klutch.sh
- Verify functionality after updates
Performance Optimization
Optimize your AzuraCast deployment for better performance:
Server Configuration
- PHP settings: Increase memory limit and execution time for large libraries
- Redis caching: Enable Redis for improved response times
- Database optimization: Regular maintenance and indexing
- Static asset caching: Enable browser caching for faster load times
Streaming Optimization
- Bitrate selection: Balance quality with bandwidth costs
- Multiple bitrates: Offer options for different connection speeds
- Format optimization: Use OGG Opus for better quality at lower bitrates
- Connection limits: Set appropriate listener limits per stream
Storage Management
- Regular cleanup: Remove old logs and unused media
- Compression: Use compressed formats where appropriate
- Archive management: Move old content to cheaper storage
- Monitor growth: Track storage usage trends
Scaling Your Radio Station
As your audience grows, scale your AzuraCast deployment:
Vertical Scaling
Upgrade your Klutch.sh app to a larger instance:
- Increase CPU cores for more concurrent processing
- Add more RAM for larger media libraries
- Expand storage volumes as your media library grows
Content Delivery
Improve streaming performance for global audiences:
- Use multiple streaming mount points for redundancy
- Consider a CDN for high-traffic stations
- Optimize bitrates for target audiences
- Enable adaptive bitrate streaming
Load Distribution
For very high traffic:
- Deploy multiple AzuraCast instances
- Use a load balancer to distribute listeners
- Separate media storage to shared/network storage
- Use external database clusters for high availability
Advanced Features
API Integration
AzuraCast provides a comprehensive REST API:
- Documentation: Available at
https://example-app.klutch.sh/api - Authentication: API keys for secure access
- Use cases: Mobile apps, custom integrations, automation
- Endpoints: Station control, media management, listener stats
Webhooks
Set up webhooks for real-time notifications:
- Navigate to “System Administration” → “Web Hooks”
- Click “Add Web Hook”
- Choose trigger events (song changes, listener milestones)
- Enter your webhook URL
- Test the webhook to ensure it works
- Enable the webhook
Liquidsoap Customization
Advanced users can customize the Liquidsoap configuration:
- Custom audio processing
- Advanced playlist logic
- Sound effects and transitions
- External input sources
Local Development with Docker Compose
For local testing and development, you can use Docker Compose. Note that Klutch.sh does not support Docker Compose for deployment, but it’s useful for local development:
version: '3.8'
services: azuracast: image: ghcr.io/azuracast/azuracast:latest ports: - "80:80" - "8000:8000" - "8005:8005" volumes: - ./azuracast_db:/var/azuracast/db - ./azuracast_stations:/var/azuracast/stations - ./azuracast_backups:/var/azuracast/backups environment: - AZURACAST_BASE_URL=http://localhost - ENABLE_ADVANCED_FEATURES=true - AUTO_ASSIGN_PORT_MIN=8000 - AUTO_ASSIGN_PORT_MAX=8499 restart: unless-stopped
volumes: azuracast_db: azuracast_stations: azuracast_backups:Run locally with: docker-compose up -d
Migration from Other Hosting
If you’re migrating an existing AzuraCast installation to Klutch.sh:
-
Create a Backup
- Generate a full backup from your existing installation
- Download the backup file
-
Deploy Fresh Instance
- Deploy a new AzuraCast instance on Klutch.sh following this guide
- Complete initial setup
-
Upload Backup
- Navigate to “System Administration” → “Backups”
- Upload your backup file
- Restore from the backup
-
Update Configuration
- Update
AZURACAST_BASE_URLto your new Klutch.sh URL - Verify stream URLs and update any external references
- Test all functionality
- Update
-
DNS Cutover
- Update DNS to point to your new Klutch.sh deployment
- Monitor for any issues
- Keep old instance running briefly for rollback if needed
Getting Help and Support
Community Resources
- AzuraCast Documentation: Official Documentation
- GitHub Repository: AzuraCast on GitHub
- Community Forum: GitHub Discussions
- Discord Server: Join the AzuraCast Discord for real-time help
Klutch.sh Resources
Debugging Tips
Enable debug mode for troubleshooting:
# Set in environment variablesAPP_ENV=developmentLOG_LEVEL=debugAccess logs through the Klutch.sh dashboard to diagnose issues.
Sample Configuration Files
Example .dockerignore
.git.gitignore*.mdREADME.mddocker-compose.yml.env.env.examplenode_modules.DS_StoreExample azuracast.env.example
# Copy this file to azuracast.env and configure for your deploymentAZURACAST_BASE_URL=https://example-app.klutch.shENABLE_ADVANCED_FEATURES=trueAUTO_ASSIGN_PORT_MIN=8000AUTO_ASSIGN_PORT_MAX=8499
# Database (if using external)MYSQL_HOST=your-db-hostMYSQL_PORT=3306MYSQL_USER=azuracastMYSQL_PASSWORD=change-this-passwordMYSQL_DATABASE=azuracast
# PHP ConfigurationPHP_MAX_EXECUTION_TIME=300PHP_MEMORY_LIMIT=512MPHP_UPLOAD_MAX_FILESIZE=100M
# Backup ConfigurationBACKUP_ENABLED=trueBACKUP_SCHEDULE="0 3 * * *"Example Deployment Workflow
Here’s a complete workflow from setup to going live:
-
Repository Setup
- Create a new GitHub repository
- Add the Dockerfile to the root
- Commit and push
-
Klutch.sh Configuration
- Create new app in Klutch.sh dashboard
- Connect GitHub repository
- Configure persistent volumes (stations, db, backups)
- Set environment variables
- Deploy
-
Initial Configuration
- Wait for deployment to complete
- Access web interface
- Create admin account
- Configure first station
-
Content Setup
- Upload media files
- Create playlists
- Configure streaming settings
- Test stream playback
-
Go Live
- Start broadcasting
- Share stream URLs with listeners
- Monitor performance and listener count
- Adjust as needed
-
Ongoing Maintenance
- Regular backups
- Monitor storage and performance
- Update content regularly
- Engage with listeners
Conclusion
You now have a production-ready AzuraCast deployment on Klutch.sh! This guide covered everything from initial setup to advanced configuration, security, and scaling. AzuraCast provides a powerful platform for web radio broadcasting, and Klutch.sh ensures reliable, scalable hosting for your station.
Key takeaways:
- Klutch.sh automatically detects and builds your Dockerfile
- Persistent volumes are critical for media storage and data retention
- Environment variables provide flexible, secure configuration
- Regular backups protect your station data and content
- Monitoring and optimization ensure the best listener experience
Start broadcasting, engage your audience, and grow your radio station with confidence!
Additional Resources
- AzuraCast Official Documentation
- AzuraCast GitHub Repository
- Klutch.sh Getting Started
- Understanding Deployments on Klutch.sh
- Networking Configuration
Happy broadcasting! 🎵📻