Publishing your docs

When you are ready for your docs to be publicly accessible, you can publish them using the Fern CLI.

Usage

$fern generate --docs

Example

$fern generate --docs
>[docs]: Found 0 errors and 1 warnings. Run fern check --warnings to print out the warnings.
>[docs]: ✓ All checks passed
>[docs]: Published docs to https://plantstore.docs.buildwithfern.com
>┌─
>│ ✓ https://plantstore.docs.buildwithfern.com
>└─

Usage in GitHub Actions

To automate the publishing process, you can use a GitHub Action workflow to publish your docs when a push is made to the main branch. Be sure to add the FERN_TOKEN for your organization to the repository.

.github/workflows/publish-docs.yml
1name: Publish Docs
2
3on:
4 push:
5 branches:
6 - main
7
8jobs:
9 run:
10 runs-on: ubuntu-latest
11 if: ${{ github.event_name == 'push' && contains(github.ref, 'refs/heads/main') && github.run_number > 1 }}
12 steps:
13 - name: Checkout repository
14 uses: actions/checkout@v4
15
16 - name: Install Fern
17 run: npm install -g fern-api
18
19 - name: Publish Docs
20 env:
21 FERN_TOKEN: ${{ secrets.FERN_TOKEN }}
22 run: fern generate --docs

Hosting

When you publish your docs, Fern takes care of hosting them for you. You can also publish your docs to a custom domain.

Self-hosting your docs

If you need access to your docs offline or would like to host your docs on your own server, Fern offers that option as well. Self-hosted docs have limited access to certain features (including Ask Fern and analytics).

Unpublishing your docs

If you need to take down your docs site, you cannot directly unpublish it. However, you can replace your content with an empty site to effectively remove all of your documentation.

1

Clear your navigation

Replace the navigation object in your docs.yml file with an empty list.

docs.yml
1instances:
2 - <organization>.docs.buildwithfern.com
3navigation: []
2

Deploy the empty site

Publish the updated configuration by running fern generate --docs. This will remove all content from your site, and users visiting any page will see a 404 error.