Skip to main content

Builders Radio Repository Links

Repository Location

Local path: /Users/elliottgodwin/Developer/builders-radio

Contents:

  • SSH keys for DigitalOcean droplet access
  • Media files (audio library)
  • Vimeo to S3 transfer utilities
  • Public web player code

Infrastructure Access

DigitalOcean Droplet

Purpose: Hosts AzuraCast radio platform

Access:

  • SSH connection using private key from this repository
  • Command: ssh -i ~/Developer/builders-radio/builders-radio root@<droplet-ip>
  • DigitalOcean dashboard: https://cloud.digitalocean.com

Authentication:

  • Public key: builders-radio.pub
  • Private key: builders-radio (keep secure, grant access carefully)

AzuraCast Admin Dashboard

Access method: Web-based administration interface

Configuration:

  • Deployed on DigitalOcean droplet
  • HTTPS encrypted connection
  • Requires username and password authentication
  • URL format: https://<droplet-ip>/ or custom domain if configured

Capabilities:

  • Real-time listener statistics
  • Media library management
  • Playlist creation and scheduling
  • Live broadcasting
  • Analytics and reporting

Stream URLs

Public Listening Endpoints

Stream URLs are generated by AzuraCast and accessible to public listeners.

Format:

http://<droplet-ip>:8000/<mount_point>

Common bitrate options:

  • 128 kbps (MP3) - standard quality
  • 192 kbps (MP3) - higher quality
  • 320 kbps (MP3) - maximum quality

Player embedding:

  • GlassPlayer for web integration
  • Standard HTML5 audio tag
  • Mobile app direct stream support

AWS S3 Integration

Bucket Configuration

Bucket name: builders-radio-video-storage

Purpose:

  • Video file storage for web playback
  • Media library backups
  • Archive storage

Access:

External Resources

AzuraCast Documentation

Official resources:

Vimeo Integration

Vimeo resources:

AWS Services

AWS resources:

DigitalOcean

DigitalOcean resources:

Access Requirements

Who Needs Access?

Technical/DevOps team:

  • SSH access to droplet (private key)
  • AzuraCast admin credentials
  • AWS account access for S3

Content managers:

  • AzuraCast dashboard login
  • Access to media library
  • Playlist management permissions

Developers/Integrators:

  • AzuraCast API key
  • Stream URLs for embedding
  • Vimeo API credentials (for video transfer scripts)

Getting Access

  1. SSH Access: Request private key from repository maintainers
  2. AzuraCast Dashboard: Create user account in admin panel, assign role
  3. AWS Access: Contact infrastructure team for IAM credentials
  4. API Keys: Generate from AzuraCast dashboard under Settings

Media Sync Workflow

Transferring Content to S3

Prerequisites:

  • Python 3.8+
  • Virtual environment with dependencies
  • AWS credentials
  • Vimeo API access

Steps:

  1. Install dependencies:

    cd ~/Developer/builders-radio/vimeo_transfer
    pip install -r requirements.txt
  2. Configure credentials (.env file, not committed to repo):

    VIMEO_CLIENT_IDENTIFIER=<value>
    VIMEO_TOKEN=<value>
    VIMEO_CLIENT_SECRET=<value>
    AWS_ACCESS_KEY=<value>
    AWS_SECRET_ACCESS_KEY=<value>
    BUCKET_NAME=builders-radio-video-storage
    OPTIONAL_PATH=/ (or specific folder path)
  3. Run transfer script:

    python videos-transfer-vimeo.py
  4. Monitor progress and verify uploads in S3 console

Security Notes

Credential Handling

  • Never commit credentials to version control
  • SSH keys only exception: builders-radio keys are stored here for team access
  • Environment variables: Use .env files (add to .gitignore)
  • API keys: Rotate regularly (quarterly recommended)

Access Control

  • Limit SSH key distribution to essential personnel
  • Use strong passwords for dashboard access
  • Enable two-factor authentication if available
  • Audit access logs regularly

Backup Strategy

  • Export AzuraCast database weekly
  • Mirror media library to S3
  • DigitalOcean automated snapshots
  • Test restore procedures monthly

Quick Reference

ComponentAccessPurpose
SSH KeysPrivate/public pairDroplet access
AzuraCast DashboardWeb UIRadio management
AWS S3Console/APIMedia storage
Vimeo APIOAuth tokenVideo transfer
Stream URLHTTP endpointPublic listening