asteroid/config.template.env

99 lines
3.5 KiB
Bash

# Asteroid Radio Configuration Template
# Copy this file to .env and customize for deployment
#
# SECURITY NOTE: Never commit .env files with real passwords to git!
# ============================================================================
# SERVER CONFIGURATION
# ============================================================================
# HTTP server port (default: 8080)
ASTEROID_SERVER_PORT=8080
# Path to music library directory
# If not set, defaults to music/library/ in the asteroid directory
ASTEROID_MUSIC_PATH=/path/to/our/music/library
# ============================================================================
# ICECAST STREAMING CONFIGURATION
# ============================================================================
# Base URL for Icecast stream server
# For production, this should be your public stream URL
# Examples:
# Development: http://localhost:8000
# Production: https://stream.asteroid.radio
ASTEROID_STREAM_URL=http://localhost:8000
# Icecast admin credentials
# CRITICAL: Change these from defaults for production!
ICECAST_ADMIN_USER=admin
ICECAST_ADMIN_PASSWORD=CHANGE_THIS_PASSWORD
# Additional Icecast passwords (used by Docker containers)
# These are for Liquidsoap source connection and relay
ICECAST_SOURCE_PASSWORD=CHANGE_THIS_PASSWORD
ICECAST_RELAY_PASSWORD=CHANGE_THIS_PASSWORD
# ============================================================================
# DATABASE CONFIGURATION
# ============================================================================
# Database backend to use: i-lambdalite or postgresql
# i-lambdalite: Built-in file-based database (good for development)
# postgresql: Production-grade database (recommended for production)
ASTEROID_DB_BACKEND=i-lambdalite
# PostgreSQL configuration (only needed if using postgresql backend)
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DB=asteroid
POSTGRES_USER=asteroid
POSTGRES_PASSWORD=CHANGE_THIS_PASSWORD
# ============================================================================
# TLS/HTTPS CONFIGURATION
# ============================================================================
# Enable TLS/HTTPS (true/false, yes/no, 1/0)
ASTEROID_TLS_ENABLED=false
# Paths to TLS certificate and key files
# Only needed if TLS is enabled
ASTEROID_TLS_CERT=/path/to/certificate.pem
ASTEROID_TLS_KEY=/path/to/private-key.pem
# ============================================================================
# STREAM MANAGEMENT
# ============================================================================
# Maximum number of tracks to keep in stream history
ASTEROID_MAX_HISTORY=50
# ============================================================================
# PRODUCTION DEPLOYMENT NOTES
# ============================================================================
#
# 1. SECURITY CHECKLIST:
# - Change all default passwords
# - Enable TLS for production
# - Use PostgreSQL instead of i-lambdalite
# - Restrict Icecast/Liquidsoap to localhost (bind 127.0.0.1)
# - Use HAproxy or nginx to front the application
#
# 2. DOCKER NETWORKING:
# - Ensure Icecast only binds to 127.0.0.1:8000
# - Ensure Liquidsoap telnet only binds to 127.0.0.1:1234
# - Use docker-compose network isolation
#
# 3. ENVIRONMENT LOADING:
# - Source this file in your shell: source .env
# - Or use docker-compose env_file directive
# - Or set in systemd service file
#
# 4. BACKUP:
# - Backup PostgreSQL database regularly
# - Backup music library
# - Backup configuration files
#