> ## Documentation Index
> Fetch the complete documentation index at: https://hanabiaiinc-agents-response-wait-settings.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Run the Fish Audio Enterprise speech stack inside your own infrastructure

Fish Audio Enterprise can be deployed into infrastructure you control: your own
cloud account, an on-premise data center, or a network with no internet access at
all. Fish Audio delivers container images and a Helm chart through a private
registry; you own the cluster, the network boundary, and the data.

The self-hosted stack runs the same speech engine as the hosted API, so requests,
audio formats, and voice behavior match what you already build against.

## Why self-host

| Reason                  | What it gives you                                                                                                                   |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| Colocation              | Run inference in the same region, VPC, or rack as your application and remove public-internet round trips from time-to-first-audio. |
| Single-tenant isolation | Dedicated GPUs and queues. Capacity is not shared with other tenants, and you decide when the deployment is upgraded.               |
| Security posture        | Voice traffic never leaves your network. The offline modes make no outbound calls at runtime and run on disconnected networks.      |
| Data sovereignty        | Input text, generated audio, and reference voices stay inside your boundary and under your own retention policy.                    |

## Platforms and modes

The same engine ships on two platforms. Your enterprise agreement determines
which platforms — and which modes of each — your team is granted.

|          | Helm (Kubernetes)                                                            | All-in-One (Docker)                                        |
| -------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------- |
| Shape    | The chart on your cluster: replicas across GPUs and nodes, rolling upgrades. | One container on a single machine; the smallest footprint. |
| Best for | Production clusters and elastic capacity.                                    | Evaluation, fixed-size appliances, strict air gaps.        |

A **mode** is a combination of the axes below; on Helm only billing is a mode —
the other axes are cluster configuration. **Developer → Self Host** shows the
modes your team can install.

**Online** billing authorizes and bills each request against Fish Audio and
needs outbound access; **Offline** records usage to a local signed ledger and
runs air-gapped.

| Axis     | All-in-One                                                                                                                                      | Helm                                                                                                                                                           |
| -------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Billing  | Online or Offline.                                                                                                                              | The same two, as deployment profiles of one chart — a values file selects the profile.                                                                         |
| Topology | **Dual-GPU** — worker and vocoder on a card each. **Single-GPU** — a special case: both share one H100-class 80 GB card, with lower throughput. | Not a mode — each component takes a whole GPU; you add replicas to grow.                                                                                       |
| Weights  | **Baked** into the image, or **external** — mounted at run time.                                                                                | In-cluster by default; the online profile can instead pull from S3-compatible storage — see [Kubernetes deployment](/developer-guide/self-hosting/kubernetes). |

The offline modes are air-gap capable — the Helm profile after mirroring images
and the chart into your own registry.

Choose the platform and mode that fit your constraints, then agree them with
your Fish Audio account team — your agreement determines what **Developer →
Self Host** offers you. Combinations beyond this standard set can be discussed
there too.

Both Helm profiles share one deployment procedure and differ only in a few values.
See [Kubernetes deployment](/developer-guide/self-hosting/kubernetes) for the
Helm platform and [All-in-One container](/developer-guide/self-hosting/all-in-one)
for the single-container platform.

## What is included

| Capability                                | Online Helm                  | Offline Helm             | All-in-One (all modes)   |
| ----------------------------------------- | ---------------------------- | ------------------------ | ------------------------ |
| Text to speech over `POST /v1/tts`        | Included                     | Included                 | Included                 |
| WebSocket streaming                       | Included                     | Included                 | Included                 |
| Reference-voice requests (`reference_id`) | From pre-staged archives     | From pre-staged archives | From pre-staged archives |
| Word and segment timestamps               | Optional, needs an extra GPU | Not included             | Not included             |
| Horizontal scaling and autoscaling        | Included                     | Included                 | Not included             |
| Prometheus metrics                        | Included                     | Included                 | Container logs only      |

<Note>
  Timestamp alignment is served by a separate forced-aligner component. It is
  disabled by default, is not part of the offline model bundle, and is not built
  into the All-in-One image, so `/v1/tts/stream/with-timestamp` returns audio
  without alignment data in those modes. Contact Fish Audio if your deployment
  needs timestamps.
</Note>

Reference voices are resolved from archives you stage yourself. A self-hosted
deployment does not read from the hosted voice library, and voice models created
on fish.audio are not automatically available to it. Products other than text to
speech are hosted-only unless your agreement says otherwise.

## Architecture at a glance

The table describes the Helm deployment; the All-in-One runs the same components
inside one container.

| Component         | Role                                                                                           |
| ----------------- | ---------------------------------------------------------------------------------------------- |
| Edge API          | Entry point. Validates requests, applies product logic, and routes work to the model services. |
| Model API layer   | Coordinates normalization, inference, and audio decoding.                                      |
| Inference router  | Distributes work across the GPU workers.                                                       |
| Inference workers | GPU-backed generation.                                                                         |
| Vocoder           | GPU-backed audio decoding.                                                                     |
| Text normalizer   | Text normalization ahead of inference.                                                         |
| Redis             | Runtime state and cache. Installed by the chart into the release namespace.                    |
| Shared storage    | Model cache, reference archives, and the usage ledger. Mounted on every node.                  |

Fish Audio delivers the deployment at the Kubernetes service level. Ingress, DNS,
TLS, external load balancing, and network allowlists are yours to choose and
configure.

## Getting access

<Steps>
  <Step title="Agree the deployment scope">
    Self-hosting is enabled per team under an enterprise agreement. Reach out
    through [fish.audio/enterprise](https://fish.audio/enterprise) with your GPU
    target, expected concurrency, and whether you need air-gapped operation.
  </Step>

  <Step title="Get your team enabled">
    Once your agreement is in place, Fish Audio grants your team the artifacts
    it is entitled to: the Helm chart, the component images, and the All-in-One
    image where applicable.
  </Step>

  <Step title="Create a deploy token">
    Sign in to fish.audio and open **Developer → Self Host** to see the
    platforms and modes your team is granted and to create the token that
    authenticates against the registry. See
    [Registry & license](/developer-guide/self-hosting/registry-access).
  </Step>
</Steps>

## Next steps

<CardGroup cols={2}>
  <Card title="Requirements" icon="microchip" href="/developer-guide/self-hosting/requirements">
    GPU, CPU, memory, storage, and platform baselines.
  </Card>

  <Card title="Registry & license" icon="key" href="/developer-guide/self-hosting/registry-access">
    Create a deploy token and authenticate Docker and Helm.
  </Card>

  <Card title="Kubernetes deployment" icon="dharmachakra" href="/developer-guide/self-hosting/kubernetes">
    Install, upgrade, roll back, and validate the Helm release.
  </Card>

  <Card title="All-in-One container" icon="box" href="/developer-guide/self-hosting/all-in-one">
    Run the whole stack from a single `docker run`.
  </Card>

  <Card title="Air-gapped deployments" icon="network-wired" href="/developer-guide/self-hosting/air-gapped">
    Mirror artifacts, account for usage offline, and prove zero egress.
  </Card>

  <Card title="Operations" icon="chart-line" href="/developer-guide/self-hosting/operations">
    Monitoring signals, scaling, backups, and troubleshooting.
  </Card>

  <Card title="Releases" icon="code-branch" href="/developer-guide/self-hosting/enterprise-releases">
    How versions are published, and which one to deploy.
  </Card>
</CardGroup>
