> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://murf.ai/api/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://murf.ai/api/docs/_mcp/server.

# Set up LLA

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

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](/api/docs/_fern-img/1bfc501043589a4b6a9f6eaa4c7250e40d5be96be6fc37222b9d13f79333eb54.webp)

### 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

```bash
# 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:**

```bash
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

#### Extract Distribution Package

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

```bash
# Extract the package
tar -xzf lla-distribution-latest.tar.gz

# Navigate to the distribution directory
cd lla-distribution-latest
```

#### Load Docker Images

The distribution includes pre-built, obfuscated Docker images.

```bash
# Load images into Docker
./scripts/load-images.sh
```

Verify the images are loaded:

```bash
docker images | grep -E 'local-license-agent|nginx'
```

This will give you output like this:

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

#### Start the LLA Service

```bash
# 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
```

#### Verify Services are Running

```bash
# 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
```

#### Test the Health Endpoint

```bash
curl http://localhost:8000/health
```

Expected response:

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

#### 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