diff --git a/fern/products/sdks/guides/self-host-fern-generators.mdx b/fern/products/sdks/guides/self-host-fern-generators.mdx deleted file mode 100644 index 1cf638893..000000000 --- a/fern/products/sdks/guides/self-host-fern-generators.mdx +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Self host Fern's SDK generators ---- - -Fern supports self-hosting so that you can run Fern's SDK generators on your own infrastructure. - -Docs are coming soon for this page.

Please [book a demo](https://buildwithfern.com/book-demo) or [reach out to us](https://buildwithfern.com/book-demo) to get set up with this feature.
diff --git a/fern/products/sdks/guides/self-hosted.mdx b/fern/products/sdks/guides/self-hosted.mdx new file mode 100644 index 000000000..d5152573e --- /dev/null +++ b/fern/products/sdks/guides/self-hosted.mdx @@ -0,0 +1,53 @@ +--- +title: Self-Hosted SDKs +description: Fern supports self-hosting SDK generation so that you can run SDK generation + on your own infrastructure. +--- + +Self-hosted SDK generation is only available for the enterprise plan. + +Fern SDK generation runs on Fern's infrastructure by default. Self-hosting allows you to run SDK generation on your own infrastructure to meet specific security or compliance requirements. + +## When to use self-hosting + +Self-hosting is typically required for organizations that operate without internet access, have strict compliance requirements, or need full control over their SDK generation process. + +When you self-host, you're responsible for server setup, security, maintenance, and deciding how to distribute your generated SDKs. Self-hosted SDK generation includes [all Fern SDK features](/sdks/capabilities.mdx). + + +Unless you have specific requirements that prevent using Fern's default hosting, we recommend **using our managed cloud generation solution** for easier setup and maintenance. + + +## How it works + +When you run `fern generate`, Fern uses Docker containers to execute SDK generation logic. By default, Fern runs **cloud generation** by allocating compute space and running the container remotely. With **self-hosted (local) generation**, you download and run the same Docker container on your own infrastructure. + +Both approaches generate partial SDK files to your configured output location, then Fern verifies your organization registration and completes the SDK by adding package distribution files. + +The self-hosted process works as follows: + +1. **Download the Docker image** - Fern provides the location of the most up-to-date Docker image containing the SDK generation logic +1. **Upload your fern folder** - Add your API definition and other configuration files to the container +1. **Run the container** - Execute SDK generation using standard Docker commands +1. **Partial SDK output** - Core SDK files are generated and saved to your configured output location (local file system, GitHub repository, package registry, etc.) +1. **Organization verification** - Fern verifies your organization registration and completes SDK generation by adding package distribution files like `pyproject.toml`, READMEs, and dependency configurations +1. **Receive updated Docker images** - Fern releases new versions of the Docker image that your team can evaluate and deploy when ready + +### Architecture diagram + +```mermaid +sequenceDiagram + autonumber + participant F as Fern + participant C as Customer + participant S as Customer Server + F->>C: Provides Docker image + C->>S: Uploads fern folder + C->>S: Runs Docker command + S->>S: Output partial SDK + F->>F: Checks organization registration + F->>S: Completes SDK generation + F->>C: Releases updated Docker image + C->>C: Evaluates new version + C->>S: Deploys updated image +``` \ No newline at end of file diff --git a/fern/products/sdks/sdks.yml b/fern/products/sdks/sdks.yml index 7d6db1d07..83aaf6a49 100644 --- a/fern/products/sdks/sdks.yml +++ b/fern/products/sdks/sdks.yml @@ -202,15 +202,14 @@ navigation: - page: Filter Your Endpoints (Audiences) path: ./guides/filter-your-endpoints-audiences.mdx slug: audiences - - page: Customize the README for your SDKs + - page: Customize your README path: ./guides/configure-readme.mdx slug: readme - - page: Self-host Fern's SDK Generators - hidden: true - path: ./guides/self-host-fern-generators.mdx - slug: self-host-generators - page: Retries with Backoff path: ./guides/retries-with-backoff.mdx + - page: Self-Hosted SDKs + path: ./guides/self-hosted.mdx + slug: self-hosted - section: Reference contents: - page: generators.yml