From c58c551f9e95bbcdace94d5cc1dad996657514d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samy=20Pess=C3=A9?= Date: Fri, 7 Mar 2025 18:17:44 +0100 Subject: [PATCH] Simplify envs management for deployments (#2943) --- .../composite/deploy-cloudflare/action.yaml | 71 +++++++------------ .github/composite/deploy-vercel/action.yaml | 49 ++++++++----- .github/workflows/deploy-preview.yaml | 48 ++++++------- .github/workflows/deploy-production.yaml | 27 +++---- .github/workflows/deploy-staging.yaml | 29 ++++---- packages/gitbook-v2/next.config.mjs | 13 ++-- .../gitbook-v2/src/app/~gitbook/env/route.ts | 8 +++ packages/gitbook-v2/src/lib/env/globals.ts | 6 +- packages/gitbook/src/lib/assets.ts | 2 +- 9 files changed, 127 insertions(+), 126 deletions(-) diff --git a/.github/composite/deploy-cloudflare/action.yaml b/.github/composite/deploy-cloudflare/action.yaml index ca2053c3a..dafd32db3 100644 --- a/.github/composite/deploy-cloudflare/action.yaml +++ b/.github/composite/deploy-cloudflare/action.yaml @@ -1,6 +1,12 @@ name: 'Deploy cloudflare' description: 'Deploy GitBook to Cloudflare' inputs: + opItem: + description: '1Password item to load secrets from' + required: true + opServiceAccount: + description: '1Password service account token' + required: true apiToken: description: 'Cloudflare API token' required: true @@ -8,44 +14,11 @@ inputs: description: 'Cloudflare account ID' required: true environment: - description: 'Environment to deploy to' + description: 'Cloudflare environment to deploy to (staging, production, preview)' required: true deploy: description: 'Deploy as main version for all traffic instead of uploading versions' required: true - NEXT_SERVER_ACTIONS_ENCRYPTION_KEY: - description: 'Next server actions encryption key' - required: true - GITBOOK_URL: - description: 'GitBook URL' - required: true - GITBOOK_SECRET: - description: 'GitBook secret' - required: true - GITBOOK_APP_URL: - description: 'GitBook app URL' - required: false - GITBOOK_API_URL: - description: 'GitBook API URL' - required: false - GITBOOK_INTEGRATIONS_HOST: - description: 'GitBook integrations host' - required: false - GITBOOK_IMAGE_RESIZE_SIGNING_KEY: - description: 'GitBook image resize signing key' - required: true - GITBOOK_IMAGE_RESIZE_URL: - description: 'GitBook image resize URL' - required: true - GITBOOK_ICONS_URL: - description: 'GitBook icons URL' - required: true - GITBOOK_ICONS_TOKEN: - description: 'GitBook icons token' - required: true - GITBOOK_ASSETS_PREFIX: - description: 'GitBook assets prefix' - required: false outputs: deployment-url: description: "Deployment URL" @@ -60,21 +33,25 @@ runs: shell: bash env: PUPPETEER_SKIP_DOWNLOAD: 1 + - name: Load secret + uses: 1password/load-secrets-action@v2 + env: + OP_SERVICE_ACCOUNT_TOKEN: ${{ inputs.opServiceAccount }} + GITBOOK_URL: ${{ inputs.opItem }}/GITBOOK_URL + GITBOOK_ICONS_URL: ${{ inputs.opItem }}/GITBOOK_ICONS_URL + GITBOOK_ICONS_TOKEN: ${{ inputs.opItem }}/GITBOOK_ICONS_TOKEN + NEXT_SERVER_ACTIONS_ENCRYPTION_KEY: ${{ inputs.opItem }}/NEXT_SERVER_ACTIONS_ENCRYPTION_KEY + GITBOOK_SECRET: ${{ inputs.opItem }}/GITBOOK_SECRET + GITBOOK_APP_URL: ${{ inputs.opItem }}/GITBOOK_APP_URL + GITBOOK_API_URL: ${{ inputs.opItem }}/GITBOOK_API_URL + GITBOOK_API_TOKEN: ${{ inputs.opItem }}/GITBOOK_API_TOKEN + GITBOOK_INTEGRATIONS_HOST: ${{ inputs.opItem }}/GITBOOK_INTEGRATIONS_HOST + GITBOOK_IMAGE_RESIZE_SIGNING_KEY: ${{ inputs.opItem }}/GITBOOK_IMAGE_RESIZE_SIGNING_KEY + GITBOOK_IMAGE_RESIZE_URL: ${{ inputs.opItem }}/GITBOOK_IMAGE_RESIZE_URL + GITBOOK_ASSETS_PREFIX: ${{ inputs.opItem }}/GITBOOK_ASSETS_PREFIX - name: Build worker run: bun run turbo build:v2:cloudflare shell: bash - env: - NEXT_SERVER_ACTIONS_ENCRYPTION_KEY: ${{ inputs.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY }} - GITBOOK_URL: ${{ inputs.GITBOOK_URL }} - GITBOOK_SECRET: ${{ inputs.GITBOOK_SECRET }} - GITBOOK_APP_URL: ${{ inputs.GITBOOK_APP_URL }} - GITBOOK_API_URL: ${{ inputs.GITBOOK_API_URL }} - GITBOOK_INTEGRATIONS_HOST: ${{ inputs.GITBOOK_INTEGRATIONS_HOST }} - GITBOOK_IMAGE_RESIZE_SIGNING_KEY: ${{ inputs.GITBOOK_IMAGE_RESIZE_SIGNING_KEY }} - GITBOOK_IMAGE_RESIZE_URL: ${{ inputs.GITBOOK_IMAGE_RESIZE_URL }} - GITBOOK_ICONS_URL: ${{ inputs.GITBOOK_ICONS_URL }} - GITBOOK_ICONS_TOKEN: ${{ inputs.GITBOOK_ICONS_TOKEN }} - GITBOOK_ASSETS_PREFIX: ${{ inputs.GITBOOK_ASSETS_PREFIX }} - id: deploy name: Deploy to Cloudflare uses: cloudflare/wrangler-action@v3.14.0 @@ -84,7 +61,7 @@ runs: workingDirectory: ./ wranglerVersion: '3.112.0' environment: ${{ inputs.environment }} - command: ${{ inputs.deploy && 'deploy' || 'versions upload' }} --config ./packages/gitbook-v2/wrangler.toml + command: ${{ fromJSON(inputs.deploy) == true && 'deploy' || 'versions upload' }} --config ./packages/gitbook-v2/wrangler.toml - name: Outputs shell: bash env: diff --git a/.github/composite/deploy-vercel/action.yaml b/.github/composite/deploy-vercel/action.yaml index 12c144ec7..4d803be94 100644 --- a/.github/composite/deploy-vercel/action.yaml +++ b/.github/composite/deploy-vercel/action.yaml @@ -1,15 +1,21 @@ name: 'Deploy vercel' description: 'Deploy GitBook to Vercel' inputs: - vercel-org: + vercelOrg: description: 'Vercel organization' required: true - vercel-project: + vercelProject: description: 'Vercel project' required: true - vercel-token: + vercelToken: description: 'Vercel token' required: true + opItem: + description: '1Password item to load secrets from' + required: true + opServiceAccount: + description: '1Password service account token' + required: true environment: description: 'Environment to deploy to' required: true @@ -27,31 +33,42 @@ runs: shell: bash env: PUPPETEER_SKIP_DOWNLOAD: 1 - - name: Sets env vars for environment - shell: bash - run: | - echo "VERCEL_ENVIRONMENT=${{ inputs.environment }}" >> $GITHUB_ENV - name: Pull Vercel Environment Information - run: bun run vercel pull --yes --environment=$VERCEL_ENVIRONMENT --token=${{ inputs.vercel-token }} + run: bun run vercel pull --yes --environment=${{ inputs.environment }} --token=${{ inputs.vercelToken }} shell: bash env: - VERCEL_ORG_ID: ${{ inputs.vercel-org }} - VERCEL_PROJECT_ID: ${{ inputs.vercel-project }} + VERCEL_ORG_ID: ${{ inputs.vercelOrg }} + VERCEL_PROJECT_ID: ${{ inputs.vercelProject }} + - name: Load secret + uses: 1password/load-secrets-action@v2 + env: + OP_SERVICE_ACCOUNT_TOKEN: ${{ inputs.opServiceAccount }} + GITBOOK_URL: ${{ inputs.opItem }}/GITBOOK_URL + GITBOOK_ICONS_URL: ${{ inputs.opItem }}/GITBOOK_ICONS_URL + GITBOOK_ICONS_TOKEN: ${{ inputs.opItem }}/GITBOOK_ICONS_TOKEN + GITBOOK_SECRET: ${{ inputs.opItem }}/GITBOOK_SECRET + GITBOOK_APP_URL: ${{ inputs.opItem }}/GITBOOK_APP_URL + GITBOOK_API_URL: ${{ inputs.opItem }}/GITBOOK_API_URL + GITBOOK_API_TOKEN: ${{ inputs.opItem }}/GITBOOK_API_TOKEN + GITBOOK_INTEGRATIONS_HOST: ${{ inputs.opItem }}/GITBOOK_INTEGRATIONS_HOST + GITBOOK_IMAGE_RESIZE_SIGNING_KEY: ${{ inputs.opItem }}/GITBOOK_IMAGE_RESIZE_SIGNING_KEY + GITBOOK_IMAGE_RESIZE_URL: ${{ inputs.opItem }}/GITBOOK_IMAGE_RESIZE_URL + GITBOOK_ASSETS_PREFIX: ${{ inputs.opItem }}/GITBOOK_ASSETS_PREFIX - name: Build Project Artifacts - run: bun run vercel build --target=$VERCEL_ENVIRONMENT --token=${{ inputs.vercel-token }} + run: bun run vercel build --target=${{ inputs.environment }} --token=${{ inputs.vercelToken }} shell: bash env: - VERCEL_ORG_ID: ${{ inputs.vercel-org }} - VERCEL_PROJECT_ID: ${{ inputs.vercel-project }} + VERCEL_ORG_ID: ${{ inputs.vercelOrg }} + VERCEL_PROJECT_ID: ${{ inputs.vercelProject }} - name: Deploy Project Artifacts to Vercel id: deploy shell: bash run: | - DEPLOYMENT_URL=$(bun run vercel deploy --prebuilt --target=$VERCEL_ENVIRONMENT --token=${{ inputs.vercel-token }}) + DEPLOYMENT_URL=$(bun run vercel deploy --prebuilt --target=${{ inputs.environment }} --token=${{ inputs.vercelToken }}) echo "deployment-url=$DEPLOYMENT_URL" >> "$GITHUB_OUTPUT" env: - VERCEL_ORG_ID: ${{ inputs.vercel-org }} - VERCEL_PROJECT_ID: ${{ inputs.vercel-project }} + VERCEL_ORG_ID: ${{ inputs.vercelOrg }} + VERCEL_PROJECT_ID: ${{ inputs.vercelProject }} - name: Outputs shell: bash run: | diff --git a/.github/workflows/deploy-preview.yaml b/.github/workflows/deploy-preview.yaml index c2941d88f..fdc31e90f 100644 --- a/.github/workflows/deploy-preview.yaml +++ b/.github/workflows/deploy-preview.yaml @@ -10,6 +10,9 @@ jobs: deploy-v1-cloudflare: name: Deploy v1 to Cloudflare Pages runs-on: ubuntu-latest + environment: + name: ${{ github.ref == 'refs/heads/main' && '1c-production' || '1c-preview' }} + url: ${{ steps.deploy.outputs.deployment-url }} permissions: contents: read deployments: write @@ -63,56 +66,45 @@ jobs: deploy-v2-vercel: name: Deploy v2 to Vercel (preview) runs-on: ubuntu-latest - permissions: - contents: read - deployments: write - issues: write - pull-requests: write - checks: write - statuses: write + environment: + name: 2v-preview + url: ${{ steps.deploy.outputs.deployment-url }} outputs: deployment-url: ${{ steps.deploy.outputs.deployment-url }} steps: - name: Checkout uses: actions/checkout@v4 - - name: Deploy ${{ github.ref == 'refs/heads/main' && 'production' || 'preview' }} + - name: Deploy to Vercel id: deploy uses: ./.github/composite/deploy-vercel with: - environment: ${{ github.ref == 'refs/heads/main' && 'production' || 'preview' }} - vercel-org: ${{ secrets.VERCEL_ORG_ID }} - vercel-project: ${{ secrets.VERCEL_PROJECT_ID }} - vercel-token: ${{ secrets.VERCEL_TOKEN }} + environment: preview + vercelOrg: ${{ secrets.VERCEL_ORG_ID }} + vercelProject: ${{ secrets.VERCEL_PROJECT_ID }} + vercelToken: ${{ secrets.VERCEL_TOKEN }} + opItem: op://gitbook-open/2v-preview + opServiceAccount: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} deploy-v2-cloudflare: name: Deploy v2 to Cloudflare Worker (preview) runs-on: ubuntu-latest - permissions: - contents: read - deployments: write - issues: write - pull-requests: write - checks: write - statuses: write + environment: + name: 2c-preview + url: ${{ steps.deploy.outputs.deployment-url }} outputs: deployment-url: ${{ steps.deploy.outputs.deployment-url }} steps: - name: Checkout uses: actions/checkout@v4 - - name: Deploy ${{ github.ref == 'refs/heads/main' && 'production' || 'preview' }} + - name: Deploy to Cloudflare id: deploy uses: ./.github/composite/deploy-cloudflare with: - environment: ${{ github.ref == 'refs/heads/main' && 'production' || 'preview' }} + environment: preview deploy: ${{ github.ref == 'refs/heads/main' }} apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} - NEXT_SERVER_ACTIONS_ENCRYPTION_KEY: ${{ secrets.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY }} - GITBOOK_URL: ${{ github.ref == 'refs/heads/main' && vars.PRODUCTION_2C_GITBOOK_URL || vars.PREVIEW_2C_GITBOOK_URL }} - GITBOOK_IMAGE_RESIZE_SIGNING_KEY: ${{ secrets.PREVIEW_GITBOOK_IMAGE_RESIZE_SIGNING_KEY }} - GITBOOK_IMAGE_RESIZE_URL: ${{ vars.GITBOOK_IMAGE_RESIZE_URL }} - GITBOOK_ICONS_URL: ${{ vars.GITBOOK_ICONS_URL }} - GITBOOK_ICONS_TOKEN: ${{ vars.GITBOOK_ICONS_TOKEN }} - GITBOOK_SECRET: ${{ github.ref == 'refs/heads/main' && secrets.PRODUCTION_GITBOOK_SECRET|| '' }} + opItem: op://gitbook-open/2c-preview + opServiceAccount: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - name: Outputs run: | echo "URL: ${{ steps.deploy.outputs.deployment-url }}" diff --git a/.github/workflows/deploy-production.yaml b/.github/workflows/deploy-production.yaml index d52834389..335b779b4 100644 --- a/.github/workflows/deploy-production.yaml +++ b/.github/workflows/deploy-production.yaml @@ -9,6 +9,9 @@ jobs: deploy-v2-vercel: name: Deploy v2 to Vercel (production) runs-on: ubuntu-latest + environment: + name: 2v-production + url: ${{ steps.deploy.outputs.deployment-url }} outputs: deployment-url: ${{ steps.deploy.outputs.deployment-url }} steps: @@ -18,13 +21,18 @@ jobs: id: deploy uses: ./.github/composite/deploy-vercel with: - environment: production - vercel-org: ${{ secrets.VERCEL_ORG_ID }} - vercel-project: ${{ secrets.VERCEL_PROJECT_ID }} - vercel-token: ${{ secrets.VERCEL_TOKEN }} + environment: production + vercelOrg: ${{ secrets.VERCEL_ORG_ID }} + vercelProject: ${{ secrets.VERCEL_PROJECT_ID }} + vercelToken: ${{ secrets.VERCEL_TOKEN }} + opItem: op://gitbook-open/2v-production + opServiceAccount: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} deploy-v2-cloudflare: name: Deploy v2 to Cloudflare Worker (production) runs-on: ubuntu-latest + environment: + name: 2c-production + url: ${{ steps.deploy.outputs.deployment-url }} outputs: deployment-url: ${{ steps.deploy.outputs.deployment-url }} steps: @@ -34,16 +42,11 @@ jobs: id: deploy uses: ./.github/composite/deploy-cloudflare with: - environment: staging + environment: production apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} - NEXT_SERVER_ACTIONS_ENCRYPTION_KEY: ${{ secrets.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY }} - GITBOOK_URL: ${{ vars.STAGING_2C_GITBOOK_URL }} - GITBOOK_IMAGE_RESIZE_SIGNING_KEY: ${{ secrets.STAGING_GITBOOK_IMAGE_RESIZE_SIGNING_KEY }} - GITBOOK_IMAGE_RESIZE_URL: ${{ vars.GITBOOK_IMAGE_RESIZE_URL }} - GITBOOK_ICONS_URL: ${{ vars.GITBOOK_ICONS_URL }} - GITBOOK_ICONS_TOKEN: ${{ vars.GITBOOK_ICONS_TOKEN }} - GITBOOK_ASSETS_PREFIX: ${{ vars.STAGING_2C_GITBOOK_ASSETS_PREFIX }} + opItem: op://gitbook-open/2c-production + opServiceAccount: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - name: Outputs run: | echo "URL: ${{ steps.deploy.outputs.deployment-url }}" \ No newline at end of file diff --git a/.github/workflows/deploy-staging.yaml b/.github/workflows/deploy-staging.yaml index ae60ce91e..a1e1df62e 100644 --- a/.github/workflows/deploy-staging.yaml +++ b/.github/workflows/deploy-staging.yaml @@ -9,6 +9,9 @@ jobs: deploy-v2-vercel: name: Deploy v2 to Vercel (staging) runs-on: ubuntu-latest + environment: + name: 2v-staging + url: ${{ steps.deploy.outputs.deployment-url }} outputs: deployment-url: ${{ steps.deploy.outputs.deployment-url }} steps: @@ -18,13 +21,18 @@ jobs: id: deploy uses: ./.github/composite/deploy-vercel with: - environment: staging - vercel-org: ${{ secrets.VERCEL_ORG_ID }} - vercel-project: ${{ secrets.VERCEL_PROJECT_ID }} - vercel-token: ${{ secrets.VERCEL_TOKEN }} + environment: staging + vercelOrg: ${{ secrets.VERCEL_ORG_ID }} + vercelProject: ${{ secrets.VERCEL_PROJECT_ID }} + vercelToken: ${{ secrets.VERCEL_TOKEN }} + opItem: op://gitbook-open/2v-staging + opServiceAccount: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} deploy-v2-cloudflare: name: Deploy v2 to Cloudflare Worker (staging) runs-on: ubuntu-latest + environment: + name: 2c-staging + url: ${{ steps.deploy.outputs.deployment-url }} outputs: deployment-url: ${{ steps.deploy.outputs.deployment-url }} steps: @@ -38,17 +46,8 @@ jobs: deploy: true apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} - NEXT_SERVER_ACTIONS_ENCRYPTION_KEY: ${{ secrets.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY }} - GITBOOK_URL: ${{ vars.STAGING_2C_GITBOOK_URL }} - GITBOOK_SECRET: ${{ secrets.STAGING_GITBOOK_SECRET }} - GITBOOK_APP_URL: https://app.gitbook-staging.com - GITBOOK_API_URL: https://api.gitbook-staging.com - GITBOOK_INTEGRATIONS_HOST: https://integrations.gitbook-staging.com - GITBOOK_IMAGE_RESIZE_SIGNING_KEY: ${{ secrets.STAGING_GITBOOK_IMAGE_RESIZE_SIGNING_KEY }} - GITBOOK_IMAGE_RESIZE_URL: ${{ vars.GITBOOK_IMAGE_RESIZE_URL }} - GITBOOK_ICONS_URL: ${{ vars.GITBOOK_ICONS_URL }} - GITBOOK_ICONS_TOKEN: ${{ vars.GITBOOK_ICONS_TOKEN }} - GITBOOK_ASSETS_PREFIX: ${{ vars.STAGING_2C_GITBOOK_ASSETS_PREFIX }} + opItem: op://gitbook-open/2c-staging + opServiceAccount: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - name: Outputs run: | echo "URL: ${{ steps.deploy.outputs.deployment-url }}" \ No newline at end of file diff --git a/packages/gitbook-v2/next.config.mjs b/packages/gitbook-v2/next.config.mjs index 9a433f954..ee02a27f4 100644 --- a/packages/gitbook-v2/next.config.mjs +++ b/packages/gitbook-v2/next.config.mjs @@ -10,16 +10,21 @@ const nextConfig = { env: { BUILD_VERSION: (process.env.GITHUB_SHA ?? '').slice(0, 7), - GITBOOK_URL: process.env.GITBOOK_URL, - GITBOOK_SECRET: process.env.GITBOOK_SECRET, + + // GitBook envs GITBOOK_API_URL: process.env.GITBOOK_API_URL, GITBOOK_APP_URL: process.env.GITBOOK_APP_URL, GITBOOK_INTEGRATIONS_HOST: process.env.GITBOOK_INTEGRATIONS_HOST, - GITBOOK_IMAGE_RESIZE_SIGNING_KEY: process.env.GITBOOK_IMAGE_RESIZE_SIGNING_KEY, GITBOOK_IMAGE_RESIZE_URL: process.env.GITBOOK_IMAGE_RESIZE_URL, - GITBOOK_ASSETS_PREFIX: process.env.GITBOOK_ASSETS_PREFIX, GITBOOK_ICONS_URL: process.env.GITBOOK_ICONS_URL, GITBOOK_ICONS_TOKEN: process.env.GITBOOK_ICONS_TOKEN, + GITBOOK_URL: process.env.GITBOOK_URL, + GITBOOK_API_TOKEN: process.env.GITBOOK_API_TOKEN, + GITBOOK_ASSETS_PREFIX: process.env.GITBOOK_ASSETS_PREFIX, + GITBOOK_SECRET: process.env.GITBOOK_SECRET, + GITBOOK_IMAGE_RESIZE_SIGNING_KEY: process.env.GITBOOK_IMAGE_RESIZE_SIGNING_KEY, + + // Next.js envs NEXT_SERVER_ACTIONS_ENCRYPTION_KEY: process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY, // Used to detect if the app is running in V2 mode diff --git a/packages/gitbook-v2/src/app/~gitbook/env/route.ts b/packages/gitbook-v2/src/app/~gitbook/env/route.ts index 9e7043d25..e00a918ce 100644 --- a/packages/gitbook-v2/src/app/~gitbook/env/route.ts +++ b/packages/gitbook-v2/src/app/~gitbook/env/route.ts @@ -1,12 +1,15 @@ import { type NextRequest, NextResponse } from 'next/server'; import { + GITBOOK_API_TOKEN, GITBOOK_API_URL, GITBOOK_APP_URL, GITBOOK_ASSETS_URL, GITBOOK_DISABLE_TRACKING, GITBOOK_ICONS_URL, + GITBOOK_IMAGE_RESIZE_SIGNING_KEY, GITBOOK_INTEGRATIONS_HOST, + GITBOOK_SECRET, GITBOOK_URL, GITBOOK_USER_AGENT, } from '@v2/lib/env'; @@ -24,5 +27,10 @@ export async function GET(_req: NextRequest) { GITBOOK_USER_AGENT, GITBOOK_INTEGRATIONS_HOST, GITBOOK_DISABLE_TRACKING, + + // Secret envs + GITBOOK_SECRET: !!GITBOOK_SECRET, + GITBOOK_API_TOKEN: !!GITBOOK_API_TOKEN, + GITBOOK_IMAGE_RESIZE_SIGNING_KEY: !!GITBOOK_IMAGE_RESIZE_SIGNING_KEY, }); } diff --git a/packages/gitbook-v2/src/lib/env/globals.ts b/packages/gitbook-v2/src/lib/env/globals.ts index 315c6c4d0..b6e50732a 100644 --- a/packages/gitbook-v2/src/lib/env/globals.ts +++ b/packages/gitbook-v2/src/lib/env/globals.ts @@ -22,7 +22,7 @@ export const GITBOOK_URL = export const GITBOOK_ASSETS_URL = process.env.NODE_ENV === 'development' ? 'http://localhost:3000' - : process.env.GITBOOK_ASSETS_PREFIX || GITBOOK_URL; + : process.env.GITBOOK_ASSETS_PREFIX; /** * GitBook app URL. @@ -38,7 +38,7 @@ export const GITBOOK_API_URL = process.env.GITBOOK_API_URL || 'https://api.gitbo * Default GitBook API token. * It can be use to avoid rate-limiting. */ -export const GITBOOK_API_TOKEN = process.env.GITBOOK_API_TOKEN ?? null; +export const GITBOOK_API_TOKEN = process.env.GITBOOK_API_TOKEN || null; /** * User agent to use for API requests. @@ -71,7 +71,7 @@ export const GITBOOK_IMAGE_RESIZE_SIGNING_KEY = * Endpoint where icons are served. */ export const GITBOOK_ICONS_URL = - process.env.GITBOOK_ICONS_URL || `${GITBOOK_ASSETS_URL}/~gitbook/static/icons`; + process.env.GITBOOK_ICONS_URL || `${GITBOOK_ASSETS_URL || ''}/~gitbook/static/icons`; /** * Token passed to the icons endpoint. diff --git a/packages/gitbook/src/lib/assets.ts b/packages/gitbook/src/lib/assets.ts index 582a43612..b073422ca 100644 --- a/packages/gitbook/src/lib/assets.ts +++ b/packages/gitbook/src/lib/assets.ts @@ -4,5 +4,5 @@ import { GITBOOK_ASSETS_URL } from '@v2/lib/env'; * Create a public URL for an asset. */ export function getAssetURL(path: string): string { - return `${GITBOOK_ASSETS_URL}/~gitbook/static/${path}`; + return `${GITBOOK_ASSETS_URL || ''}/~gitbook/static/${path}`; }