From 0c907337e10269f27911961cf32767ac894c9a7d Mon Sep 17 00:00:00 2001 From: "web@ppanel" Date: Sat, 8 Mar 2025 12:54:58 +0700 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(cdn):=20Add=20CDN=20URL=20conf?= =?UTF-8?q?iguration=20and=20update=20related=20references?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/user/.env.template | 1 + apps/user/config/constants.ts | 2 ++ apps/user/utils/tutorial.ts | 7 ++++--- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/apps/user/.env.template b/apps/user/.env.template index 220084d..8b81c94 100644 --- a/apps/user/.env.template +++ b/apps/user/.env.template @@ -4,6 +4,7 @@ NEXT_PUBLIC_DEFAULT_LANGUAGE=en-US # Site URL and API URL NEXT_PUBLIC_SITE_URL=https://user.ppanel.dev NEXT_PUBLIC_API_URL=https://api.ppanel.dev +NEXT_PUBLIC_CDN_URL=https://cdn.jsdelivr.net # Home Page Settings NEXT_PUBLIC_HOME_USER_COUNT=999 diff --git a/apps/user/config/constants.ts b/apps/user/config/constants.ts index ecd6b76..7211d89 100644 --- a/apps/user/config/constants.ts +++ b/apps/user/config/constants.ts @@ -9,6 +9,8 @@ export const NEXT_PUBLIC_DEFAULT_LANGUAGE = export const NEXT_PUBLIC_SITE_URL = env('NEXT_PUBLIC_SITE_URL') ?? process.env.NEXT_PUBLIC_SITE_URL; export const NEXT_PUBLIC_API_URL = env('NEXT_PUBLIC_API_URL') ?? process.env.NEXT_PUBLIC_API_URL; +export const NEXT_PUBLIC_CDN_URL = + env('NEXT_PUBLIC_CDN_URL') || process.env.NEXT_PUBLIC_CDN_URL || 'https://fastly.jsdelivr.net'; export const NEXT_PUBLIC_DEFAULT_USER_EMAIL = env('NEXT_PUBLIC_DEFAULT_USER_EMAIL') ?? process.env.NEXT_PUBLIC_DEFAULT_USER_EMAIL; diff --git a/apps/user/utils/tutorial.ts b/apps/user/utils/tutorial.ts index a635c03..c6dcb4c 100644 --- a/apps/user/utils/tutorial.ts +++ b/apps/user/utils/tutorial.ts @@ -1,14 +1,15 @@ +import { NEXT_PUBLIC_CDN_URL } from '@/config/constants'; import matter from 'gray-matter'; -const BASE_URL = 'https://cdn.jsdelivr.net/gh/perfect-panel/ppanel-tutorial'; +const BASE_URL = `${NEXT_PUBLIC_CDN_URL}/gh/perfect-panel/ppanel-tutorial`; async function getVersion() { // API rate limit: 60 requests per hour const response = await fetch( - 'https://api.github.com/repos/perfect-panel/ppanel-tutorial/commits', + 'https://data.jsdelivr.com/v1/stats/packages/gh/perfect-panel/ppanel-tutorial/versions', ); const json = await response.json(); - return json[0].sha; + return json[0].version; } async function getVersionPath() {