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:
- Requires AWS account credentials
- AWS Console: https://console.aws.amazon.com/s3
- Programmatic access via boto3 (Python)
External Resources
AzuraCast Documentation
Official resources:
- Project website: https://www.azuracast.com/
- Installation guide: https://docs.azuracast.com/en/getting-started/installation
- API documentation: https://www.azuracast.com/api/
- Support forum: https://github.com/AzuraCast/AzuraCast/discussions
Vimeo Integration
Vimeo resources:
- API reference: https://developer.vimeo.com/api/reference/videos
- OAuth guide: https://developer.vimeo.com/api/guides/authentication
- Vimeo team account: Builders International workspace (requires login)
AWS Services
AWS resources:
- S3 console: https://console.aws.amazon.com/s3
- IAM management: https://console.aws.amazon.com/iam
- S3 documentation: https://docs.aws.amazon.com/s3/
DigitalOcean
DigitalOcean resources:
- Control panel: https://cloud.digitalocean.com
- Documentation: https://docs.digitalocean.com/
- API reference: https://docs.digitalocean.com/reference/api/
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
- SSH Access: Request private key from repository maintainers
- AzuraCast Dashboard: Create user account in admin panel, assign role
- AWS Access: Contact infrastructure team for IAM credentials
- 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:
-
Install dependencies:
cd ~/Developer/builders-radio/vimeo_transfer
pip install -r requirements.txt -
Configure credentials (
.envfile, 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) -
Run transfer script:
python videos-transfer-vimeo.py -
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
| Component | Access | Purpose |
|---|---|---|
| SSH Keys | Private/public pair | Droplet access |
| AzuraCast Dashboard | Web UI | Radio management |
| AWS S3 | Console/API | Media storage |
| Vimeo API | OAuth token | Video transfer |
| Stream URL | HTTP endpoint | Public listening |
Related Documentation
- Overview - Project description and purpose
- Architecture - Technical infrastructure details
- Next Steps - Planned improvements and maintenance