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

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. 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. 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 for the Helm platform and All-in-One container for the single-container platform.

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 in those modes. 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

The table describes the Helm deployment; the All-in-One runs the same components inside one container. 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

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.

Next steps

Requirements

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

Registry & license

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.

Releases

How versions are published, and which one to deploy.