From 77457131968bad7f40695523ae1f342dc897d83d Mon Sep 17 00:00:00 2001 From: Devin Logan Date: Wed, 13 Aug 2025 11:03:54 -0400 Subject: [PATCH 1/3] add self-hosted SDKs page --- fern/products/sdks/guides/self-hosted.mdx | 52 +++++++++++++++++++++++ fern/products/sdks/sdks.yml | 4 +- 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 fern/products/sdks/guides/self-hosted.mdx diff --git a/fern/products/sdks/guides/self-hosted.mdx b/fern/products/sdks/guides/self-hosted.mdx new file mode 100644 index 000000000..26e815429 --- /dev/null +++ b/fern/products/sdks/guides/self-hosted.mdx @@ -0,0 +1,52 @@ +--- +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 + 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..605dd1720 100644 --- a/fern/products/sdks/sdks.yml +++ b/fern/products/sdks/sdks.yml @@ -202,7 +202,7 @@ 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 @@ -211,6 +211,8 @@ navigation: slug: self-host-generators - page: Retries with Backoff path: ./guides/retries-with-backoff.mdx + - page: Self-Hosted SDKs + path: ./guides/self-hosted.mdx - section: Reference contents: - page: generators.yml From 7bae000820c3e058d8cdd48c6c2d166e68515cb5 Mon Sep 17 00:00:00 2001 From: Devin Logan Date: Wed, 13 Aug 2025 11:11:59 -0400 Subject: [PATCH 2/3] update slug --- fern/products/sdks/guides/self-host-fern-generators.mdx | 7 ------- fern/products/sdks/sdks.yml | 5 +---- 2 files changed, 1 insertion(+), 11 deletions(-) delete mode 100644 fern/products/sdks/guides/self-host-fern-generators.mdx 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/sdks.yml b/fern/products/sdks/sdks.yml index 605dd1720..83aaf6a49 100644 --- a/fern/products/sdks/sdks.yml +++ b/fern/products/sdks/sdks.yml @@ -205,14 +205,11 @@ navigation: - 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 From c564d4723525a044dfce11ce05101f553f5ba799 Mon Sep 17 00:00:00 2001 From: Devin Logan Date: Wed, 13 Aug 2025 11:38:48 -0400 Subject: [PATCH 3/3] add numbers to diagram --- fern/products/sdks/guides/self-hosted.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/fern/products/sdks/guides/self-hosted.mdx b/fern/products/sdks/guides/self-hosted.mdx index 26e815429..d5152573e 100644 --- a/fern/products/sdks/guides/self-hosted.mdx +++ b/fern/products/sdks/guides/self-hosted.mdx @@ -37,6 +37,7 @@ The self-hosted process works as follows: ```mermaid sequenceDiagram + autonumber participant F as Fern participant C as Customer participant S as Customer Server