For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
PricingJoin CommunityGet API Key
DocumentationAPI ReferenceChangelog
DocumentationAPI ReferenceChangelog
  • Introduction
    • Overview
    • Quickstart
  • Text to Speech Models
    • Falcon
    • Gen2
  • Text to Speech Capabilities
    • Overview
    • Streaming
    • WebSockets
    • Speech Customization
    • Data Residency
    • On-Premise
      • Set Up LLA
      • Set Up TTS Server
    • Latency Optimization
  • Voices & Styles
    • Overview
    • Voice Library
    • Voice Cloning
  • Other Capabilities
    • Voice Changer
    • Translation
    • Dubbing
  • Integrations
    • MCP Server
    • Zapier
    • Make
    • n8n
    • Pipecat
    • LiveKit
  • Resources
    • Rate Limits
    • Enterprise
    • Best Practices
    • FAQ
    • Cookbook
    • Status
  • Migrations
    • Play.ai
LogoLogo
PricingJoin CommunityGet API Key
On this page
  • Trial Deployment
  • Prerequisites
  • Hardware Requirements
  • Software Requirements
  • Verify Docker Installation
  • Network Requirements
  • Installation & Deployment
Text to Speech CapabilitiesOn-Premise

Set up LLA

Install and configure the Murf Local License Agent (LLA) on your server.

Was this page helpful?
Previous

Set up Falcon TTS Server

Install and configure the Falcon TTS Server on your server.
Next
Built with

The Murf Local License Agent (LLA) is an on-premises licensing proxy that enables secure, high-performance text-to-speech generation within your network. By deploying locally, you benefit from:

  • Reduced Latency: Process requests on your infrastructure without internet round-trips
  • Data Privacy: All audio synthesis happens within your network perimeter
  • Compliance: Meet strict data residency and privacy requirements
  • Offline Operation: Continue working even when external connectivity is limited

Trial Deployment

This guide focuses on a simple single-machine deployment perfect for:

  • Evaluating the LLA capabilities
  • Development and testing environments
  • Low-volume production workloads (< 1,000 requests/minute)
  • Proof-of-concept implementations

Set Up LLA

Prerequisites

Hardware Requirements

  • CPU: 1–2 vCPU minimum (production: 2+ vCPU recommended)
  • Memory: 1.5 GiB minimum (production: 2+ GiB recommended)
  • Storage: 5 GB free minimum
  • Network:
    • Outbound internet access (to reach Murf licensing server)
    • Inbound private (or public) access from the TTS server that

Software Requirements

  • Operating System: Linux x86_64 (Ubuntu 20.04+, Debian 11+, RHEL 8+, or similar)
  • Kernel/Cgroups: cgroup v2 supported (Docker defaults ok)
  • Docker: Version 20.10 or higher
  • Docker Compose: Version 2.0 or higher (usually included with Docker Desktop)

Verify Docker Installation

$# Check Docker version
$docker --version
$
$# Check Docker Compose version
$docker compose version
$
$# Test Docker is working
$docker run --rm hello-world
Installing Docker

If Docker is not installed, follow these quick steps:

Ubuntu/Debian:

$curl -fsSL https://get.docker.com -o get-docker.sh
$sudo sh get-docker.sh
$sudo usermod -aG docker $USER
$# Log out and back in for group changes to take effect

macOS/Windows:

  • Download and install Docker Desktop

Network Requirements

The LLA needs outbound access to:

  • Murf Licensing Server: murf.ai domain on port 443 (HTTPS)
  • Murf API Server: Your designated Murf endpoint (provided separately) No inbound ports need to be exposed to the public internet. Your applications will connect to the LLA on your local network.

Installation & Deployment

1

Extract Distribution Package

You should have received a distribution package named lla-distribution-latest.tar.gz.

$# Extract the package
$tar -xzf lla-distribution-latest.tar.gz
$
$# Navigate to the distribution directory
$cd lla-distribution-latest
2

Load Docker Images

The distribution includes pre-built, obfuscated Docker images.

$# Load images into Docker
$./scripts/load-images.sh

Verify the images are loaded:

$docker images | grep -E 'local-license-agent|nginx'

This will give you output like this:

local-license-agent latest ... ... ...
nginx 1.27-alpine ... ... ...
3

Start the LLA Service

$# Navigate to the docker directory
$cd docker
$
$# Start the services in detached mode
$docker compose up -d

Expected output:

✅ Network lla-network created
✅ Container lla-1 started
✅ Container lla-2 started
✅ Container nginx started
4

Verify Services are Running

$# Check container status
$docker compose ps

All services should show status as “healthy” or “Up” after 30-60 seconds:

NAME SERVICE STATUS PORTS
lla-1 lla Up (healthy) 8001/tcp
lla-2 lla Up (healthy) 8001/tcp
nginx nginx Up (healthy) 0.0.0.0:8000->8000/tcp
5

Test the Health Endpoint

$curl http://localhost:8000/health

Expected response:

{
"status": "healthy",
"timestamp": "2025-10-07T10:30:45Z",
"license_status": "valid",
"replicas": 2
}
6

Note down the endpoint for the machine, that will be the LLA_ENDPOINT in TTS Deployment

Note: If you are hosting both of the servers (LLA and TTS) in the same machine, the LLA_ENDPOINT will be localhost:8000