Favicon of LibreTime

LibreTime

Launch your radio station quickly with this open-source broadcast platform. Manage audio libraries, schedule shows, and transmit via AM, FM, or the web.

Launch and manage your radio station effortlessly with a comprehensive broadcast and automation platform. Designed for quick installation, it provides all the essential tools needed to get your station on the air without unnecessary complexity. Whether you are running a traditional terrestrial station or a modern internet radio setup, this platform adapts to your broadcasting needs.

Key benefits include:

  • Powerful Library Management: Easily import music, sweepers, and full-length programs into a centralized library.
  • Automated Scheduling: Set up automated schedules for daily shows, recurring podcasts, and music rotations.
  • Versatile Broadcasting: Route audio playout directly to your broadcasting console, an AM/FM transmitter, or start an internet radio station directly from the cloud.
  • Open-Source Flexibility: Built on open-source technology, ensuring you have full control over your broadcasting infrastructure.

Directory Structure

libretime
data
.env
docker-compose.yml

docker-compose.yml

services:
  db:
    image: postgres:15-alpine
    restart: unless-stopped
    environment:
      POSTGRES_USER: libretime
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_DB: libretime
    volumes:
      - ./data/db:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U libretime"]
      interval: 10s
      timeout: 5s
      retries: 5

  rabbitmq:
    image: rabbitmq:3.11-alpine
    restart: unless-stopped
    environment:
      RABBITMQ_DEFAULT_USER: libretime
      RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASSWORD}
    healthcheck:
      test: rabbitmq-diagnostics -q ping
      interval: 30s
      timeout: 30s
      retries: 3

  icecast:
    image: libretime/icecast:latest
    restart: unless-stopped
    environment:
      ICECAST_SOURCE_PASSWORD: ${ICECAST_SOURCE_PASSWORD}
      ICECAST_ADMIN_PASSWORD: ${ICECAST_ADMIN_PASSWORD}
      ICECAST_RELAY_PASSWORD: ${ICECAST_RELAY_PASSWORD}
      ICECAST_HOSTNAME: localhost
    ports:
      - "8000:8000"

  libretime:
    image: libretime/libretime:latest
    restart: unless-stopped
    ports:
      - "${APP_PORT:-8080}:80"
    environment:
      LIBRETIME_GENERAL_PUBLIC_URL: ${PUBLIC_URL:-http://localhost:8080}
      LIBRETIME_DB_HOST: db
      LIBRETIME_DB_USER: libretime
      LIBRETIME_DB_PASSWORD: ${DB_PASSWORD}
      LIBRETIME_RABBITMQ_HOST: rabbitmq
      LIBRETIME_RABBITMQ_USER: libretime
      LIBRETIME_RABBITMQ_PASSWORD: ${RABBITMQ_PASSWORD}
      LIBRETIME_ICECAST_HOST: icecast
      LIBRETIME_ICECAST_SOURCE_PASSWORD: ${ICECAST_SOURCE_PASSWORD}
      LIBRETIME_ICECAST_ADMIN_PASSWORD: ${ICECAST_ADMIN_PASSWORD}
      TZ: ${TIMEZONE}
    volumes:
      - ./data/storage:/var/lib/libretime/stor
      - ./data/watched:/var/lib/libretime/watched
    depends_on:
      db:
        condition: service_healthy
      rabbitmq:
        condition: service_healthy
      icecast:
        condition: service_started

.env

# Database Configuration
DB_PASSWORD=secure_database_password

# RabbitMQ Configuration
RABBITMQ_PASSWORD=secure_rabbitmq_password

# Icecast Configuration
ICECAST_SOURCE_PASSWORD=secure_source_password
ICECAST_ADMIN_PASSWORD=secure_admin_password
ICECAST_RELAY_PASSWORD=secure_relay_password

# LibreTime General Configuration
APP_PORT=8080
PUBLIC_URL=http://localhost:8080
TIMEZONE=UTC
Categories:

Share:

Ad
Favicon

 

  
 

Similar to LibreTime

Favicon

 

  
  
Favicon

 

  
  
Favicon