Skip to main content
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

Delivery forms

The same engine ships in three forms. Your enterprise agreement determines which ones your team is granted. Both Helm forms share one deployment procedure and differ only in a few values. See Kubernetes deployment for the Helm forms and All-in-One container for the single-container form.

What is included

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 on those forms. Contact Fish Audio if your deployment needs timestamps.
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

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

1

Agree the deployment scope

Self-hosting is enabled per team under an enterprise agreement. Reach out through fish.audio/enterprise with your GPU target, expected concurrency, and whether you need air-gapped operation.
2

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.
3

Collect your connection values

Sign in to fish.audio and open Developer → Self Host. That page shows the registry host, your login username, the Helm chart base, your team ID, and the exact artifacts your team can pull. Create a deploy token there to authenticate. See Registry access.
Connection values are per-team and are only shown in the dashboard. This documentation uses placeholders such as <registry-host> and <deploy-token> wherever a value from that page belongs.

Next steps

Requirements

GPU, CPU, memory, storage, and platform baselines.

Registry access

Create a deploy token and authenticate Docker and Helm.

Kubernetes deployment

Install, upgrade, roll back, and validate the Helm release.

All-in-One container

Run the whole stack from a single docker run.

Air-gapped deployments

Mirror artifacts, account for usage offline, and prove zero egress.

Operations

Monitoring signals, scaling, backups, and troubleshooting.