Skip to content

Add enterprise appliance and release-history pages - #124

Open
M2Night wants to merge 1 commit into
mainfrom
fish-772-enterprise-versions
Open

Add enterprise appliance and release-history pages#124
M2Night wants to merge 1 commit into
mainfrom
fish-772-enterprise-versions

Conversation

@M2Night

@M2Night M2Night commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Enterprise self-host customers have had nowhere public to read how to run the appliance or what changed between versions — the existing Self-Hosting section covers the open-source fish-speech images, a different product for a different audience.

This is the docs half of FISH-772. The dashboard change (fishaudio/platform-web#2162) shows customers the version they should run and links to release notes when a newer one exists; those links need a page to point at, which is what enterprise-releases is.

Two pages

Enterprise Appliance — prerequisites, sign in and pull (including the air-gapped docker save / docker load path), the run command with the reasoning behind the flags that actually matter (JWT_SECRET, the shared volume, GPU pinning), the first-start compile time, and how to upgrade and roll back.

Appliance Releases — the version list, with an explanation of how to read a tag. One entry today.

Content is taken from the operator guide we have been sending customers by hand, trimmed to what a customer needs: no registry internals, no build pipeline.

Two things I deliberately did not write

Both are commitments only the business can make, and I would rather leave a gap than publish a promise we have not agreed to:

  • A support window. How long does an old version keep getting fixes?
  • Whether older tags stay pullable indefinitely. The page currently points people at their account manager instead.

Known gaps

  • The version list has a single entry; it needs a real second one the first time we ship an upgrade.
  • "How to read a version" assumes the current naming scheme holds.
  • Numbers (GPU models, VRAM, image size, compile time) come from our own validation runs and should be sanity-checked by whoever last measured them.

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Summary by CodeRabbit

  • Documentation
    • Added comprehensive guidance for deploying the Enterprise Appliance, including prerequisites, configuration, storage, health checks, and upgrades.
    • Added enterprise release history and versioning information, including offline deployment details and rollback guidance.
    • Updated self-hosting navigation to include the new Enterprise Appliance and Enterprise Releases pages.

Self-host enterprise customers had nowhere public to read how to run the
appliance or what changed between versions. The existing Self-Hosting section
covers the open-source fish-speech images, which is a different product for a
different audience.

Two pages:

  - Enterprise Appliance — prerequisites, sign in and pull (including the
    air-gapped save/load path), the run command with the reasons for each flag
    that matters, and upgrading.
  - Appliance Releases — the version list. The dashboard links here from "a newer
    version is available", so each entry has to say what changed and what an
    upgrade involves, not just a date.

Content comes from the operator guide we have been sending customers by hand,
trimmed to what a customer needs: no registry internals, no build pipeline.

Two things deliberately left out because they are commitments only the business
can make: a support window (how long an old version keeps getting fixes) and any
promise that older tags stay pullable indefinitely. Both should be added once
decided — the releases page currently points people at their account manager.

The version list has one entry. It needs a real second entry the first time we
ship an upgrade, and the "how to read a version" section assumes the naming
scheme stays as it is.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@mintlify

mintlify Bot commented Aug 6, 2026

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
hanabiaiinc 🟢 Ready View Preview Aug 6, 2026, 4:14 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The PR adds Enterprise Appliance deployment documentation, release history documentation, and Self-Hosting navigation entries. The deployment guide covers prerequisites, air-gapped image transfer, startup, health checks, persistent storage, upgrades, and rollback.

Changes

Enterprise self-hosting

Layer / File(s) Summary
Appliance deployment model and setup
developer-guide/self-hosting/enterprise-appliance.mdx
Documents Enterprise Appliance requirements, registry authentication, air-gapped image transfer, persistent storage, GPU settings, JWT configuration, and container startup.
Health checks and upgrades
developer-guide/self-hosting/enterprise-appliance.mdx
Adds a health-check command and documents version updates, cache reuse, container recreation, and rollback through previous image tags.
Release history and navigation
developer-guide/self-hosting/enterprise-releases.mdx, docs.json
Documents immutable release tags, the initial offline release, and older-version access. Adds Enterprise Appliance and Enterprise Releases to Self-Hosting navigation.

Estimated code review effort: 2 (Simple) | ~15 minutes

Possibly related PRs

  • fishaudio/docs#113: Earlier Enterprise self-hosting documentation that this PR extends with appliance deployment and release-history pages.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the two documentation pages added by the pull request.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fish-772-enterprise-versions

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@developer-guide/self-hosting/enterprise-appliance.mdx`:
- Line 122: Convert both internal links to relative paths: update
developer-guide/self-hosting/enterprise-appliance.mdx lines 122-122 to target
./enterprise-releases, and developer-guide/self-hosting/enterprise-releases.mdx
lines 7-7 to target ./enterprise-appliance.
- Around line 49-56: Add zstd to the prerequisites at the start of the
air-gapped host procedure in the enterprise appliance guide, explicitly covering
both the connected machine and target host used by the docker save/load
commands.
- Around line 60-70: Update the enterprise appliance JWT setup around
FISH_JWT_SECRET to document storing the generated secret in an approved secret
store, then restoring the exact same value before every docker run, including
upgrades or restarts. Replace the current session-only export guidance with
persistence and retrieval instructions while preserving the existing JWT_SECRET
environment-variable wiring.

In `@developer-guide/self-hosting/enterprise-releases.mdx`:
- Around line 19-25: Add the text language tag to the fenced version-format
example containing s2.1-pro-20260803-offline, without changing its contents or
explanatory annotations.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 4428c7ab-d19c-4e5d-a7b3-dcb4db26c9d5

📥 Commits

Reviewing files that changed from the base of the PR and between 2e68889 and 7b5a780.

📒 Files selected for processing (3)
  • developer-guide/self-hosting/enterprise-appliance.mdx
  • developer-guide/self-hosting/enterprise-releases.mdx
  • docs.json

Comment on lines +49 to +56
For an air-gapped host, pull on a machine that can reach the registry, then move the image:

```bash
docker save registry.fish.audio/self-hosted/enterprise/all-in-one:<version> \
| zstd -T0 -3 -o all-in-one.tar.zst
# on the target host:
zstd -d -c all-in-one.tar.zst | docker load
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Add zstd to the air-gapped prerequisites.

Both commands require zstd. List it as a prerequisite on the connected host and the target host, or provide an alternative transfer method.

As per coding guidelines, “Include prerequisites at the start of procedural content.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@developer-guide/self-hosting/enterprise-appliance.mdx` around lines 49 - 56,
Add zstd to the prerequisites at the start of the air-gapped host procedure in
the enterprise appliance guide, explicitly covering both the connected machine
and target host used by the docker save/load commands.

Source: Coding guidelines

Comment on lines +60 to +70
Generate a JWT secret **once**, store it, and reuse the same value on every run.

```bash
export FISH_JWT_SECRET="$(openssl rand -hex 32)"

docker run -d --name fish-tts \
--gpus all \
--shm-size 16g --ulimit memlock=-1 --ulimit stack=67108864 \
-p 8088:8088 \
-v fish-tts-shared:/mnt/shared \
-e JWT_SECRET="$FISH_JWT_SECRET" \

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

Document how to persist and restore JWT_SECRET.

The export command only sets the secret in the current shell. A later upgrade can pass an empty value or a new value, which can activate the development default or invalidate existing tokens. Require users to store the value in an approved secret store and load the same value before every docker run.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@developer-guide/self-hosting/enterprise-appliance.mdx` around lines 60 - 70,
Update the enterprise appliance JWT setup around FISH_JWT_SECRET to document
storing the generated secret in an approved secret store, then restoring the
exact same value before every docker run, including upgrades or restarts.
Replace the current session-only export guidance with persistence and retrieval
instructions while preserving the existing JWT_SECRET environment-variable
wiring.

only what actually changed. Keep the old image on the host until the new one has served traffic —
rolling back is then just starting the previous tag again.

See [Appliance Releases](/developer-guide/self-hosting/enterprise-releases) for the version list.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use relative paths for both internal links.

Both links use absolute internal paths.

  • developer-guide/self-hosting/enterprise-appliance.mdx#L122-L122: change the target to ./enterprise-releases.
  • developer-guide/self-hosting/enterprise-releases.mdx#L7-L7: change the target to ./enterprise-appliance.

As per coding guidelines, “Use relative paths for internal links” and “Do not use absolute URLs for internal links.”

📍 Affects 2 files
  • developer-guide/self-hosting/enterprise-appliance.mdx#L122-L122 (this comment)
  • developer-guide/self-hosting/enterprise-releases.mdx#L7-L7
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@developer-guide/self-hosting/enterprise-appliance.mdx` at line 122, Convert
both internal links to relative paths: update
developer-guide/self-hosting/enterprise-appliance.mdx lines 122-122 to target
./enterprise-releases, and developer-guide/self-hosting/enterprise-releases.mdx
lines 7-7 to target ./enterprise-appliance.

Source: Coding guidelines

Comment on lines +19 to +25
```
s2.1-pro-20260803-offline
└──┬───┘ └──┬───┘ └──┬──┘
│ │ └─ variant: `offline` records usage to a local signed ledger
│ └─ the date we published it
└─ the model generation it serves
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Add a language tag to the version-format block.

Use a text fence for this non-executable example.

As per coding guidelines, “Include language tags on all code blocks.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@developer-guide/self-hosting/enterprise-releases.mdx` around lines 19 - 25,
Add the text language tag to the fenced version-format example containing
s2.1-pro-20260803-offline, without changing its contents or explanatory
annotations.

Source: Coding guidelines

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant