From 3a4088020a1f7e5731ad23c86a22278c37da7e27 Mon Sep 17 00:00:00 2001 From: Mahdi Butcher Date: Sat, 1 Aug 2026 22:29:41 +0000 Subject: [PATCH] fix(docs): site audit cleanup - update canonical domain, fix SSL links, and localize navigation --- content/docs/en/panel/installation.mdx | 2 +- content/docs/fa/panel/installation.mdx | 2 +- content/docs/ru/learn/meta.json | 4 ++-- content/docs/ru/panel/installation.mdx | 2 +- content/docs/zh/learn/meta.json | 4 ++-- content/docs/zh/panel/installation.mdx | 2 +- src/app/[lang]/[...slug]/page.tsx | 2 +- src/app/[lang]/page.tsx | 4 ++-- src/app/layout.tsx | 6 +++--- src/data/community-projects.ts | 2 +- src/lib/og-image-utils.ts | 4 ++-- 11 files changed, 17 insertions(+), 17 deletions(-) diff --git a/content/docs/en/panel/installation.mdx b/content/docs/en/panel/installation.mdx index 777f135..1326265 100644 --- a/content/docs/en/panel/installation.mdx +++ b/content/docs/en/panel/installation.mdx @@ -77,7 +77,7 @@ Once the installation is complete: - The PasarGuard files will be located at `/opt/pasarguard` - The configuration file can be found at `/opt/pasarguard/.env` (refer to [configurations](#configuration) section to see variables) - The data files will be placed at `/var/lib/pasarguard` -- For security reasons, the PasarGuard dashboard is not accessible via IP address. Therefore, you must [obtain SSL certificate](https://PasarGuard.github.io/PasarGuard/en/examples/issue-ssl-certificate) and access your PasarGuard dashboard by opening a web browser and navigating to `https://YOUR_DOMAIN:8000/dashboard/` (replace YOUR_DOMAIN with your actual domain) +- For security reasons, the PasarGuard dashboard is not accessible via IP address. Therefore, you must [obtain SSL certificate](/en/learn/ssl-certificate-cli) and access your PasarGuard dashboard by opening a web browser and navigating to `https://YOUR_DOMAIN:8000/dashboard/` (replace YOUR_DOMAIN with your actual domain) - You can also use SSH port forwarding to access the PasarGuard dashboard locally without a domain. Replace `user@serverip` with your actual SSH username and server IP and Run the command below: ```bash diff --git a/content/docs/fa/panel/installation.mdx b/content/docs/fa/panel/installation.mdx index b087e39..ba4e435 100644 --- a/content/docs/fa/panel/installation.mdx +++ b/content/docs/fa/panel/installation.mdx @@ -77,7 +77,7 @@ icon: Download - فایل‌های PasarGuard تو `/opt/pasarguard` قرار می‌گیرن - فایل تنظیمات رو می‌تونید تو `/opt/pasarguard/.env` پیدا کنید (برای دیدن متغیرها به بخش [پیکربندی](#configuration) مراجعه کنید) - فایل‌های دیتا تو `/var/lib/pasarguard` ذخیره می‌شن -- برای امنیت، داشبورد PasarGuard با IP قابل دسترسی نیست. پس باید [گواهی SSL بگیرید](https://PasarGuard.github.io/PasarGuard/en/examples/issue-ssl-certificate) و بعد با مرورگر وب به `https://YOUR_DOMAIN:8000/dashboard/` برید (YOUR_DOMAIN رو با دامنه واقعی خودتون جایگزین کنید) +- برای امنیت، داشبورد PasarGuard با IP قابل دسترسی نیست. پس باید [گواهی SSL بگیرید](/fa/learn/ssl-certificate-cli) و بعد با مرورگر وب به `https://YOUR_DOMAIN:8000/dashboard/` برید (YOUR_DOMAIN رو با دامنه واقعی خودتون جایگزین کنید) - می‌تونید از SSH port forwarding هم استفاده کنید تا بدون دامنه به داشبورد دسترسی داشته باشید. `user@serverip` رو با یوزرنیم SSH و IP سرورتون عوض کنید و این دستور رو بزنید: ```bash diff --git a/content/docs/ru/learn/meta.json b/content/docs/ru/learn/meta.json index 843495a..bfea6c7 100644 --- a/content/docs/ru/learn/meta.json +++ b/content/docs/ru/learn/meta.json @@ -1,6 +1,6 @@ { - "title": "Learn", - "description": "Step-by-step guides for advanced configurations", + "title": "Руководства", + "description": "Пошаговые руководства по расширенной настройке", "pages": [ "ssl-certificate-cli", "ssl-activation-cli", diff --git a/content/docs/ru/panel/installation.mdx b/content/docs/ru/panel/installation.mdx index a0b748b..eb00e98 100644 --- a/content/docs/ru/panel/installation.mdx +++ b/content/docs/ru/panel/installation.mdx @@ -77,7 +77,7 @@ PasarGuard Panel поддерживает несколько бэкендов б - Файлы PasarGuard будут расположены в `/opt/pasarguard` - Файл конфигурации можно найти в `/opt/pasarguard/.env` (обратитесь к разделу [конфигурации](#configuration) для просмотра переменных) - Файлы данных будут размещены в `/var/lib/pasarguard` -- По соображениям безопасности, панель управления PasarGuard недоступна по IP-адресу. Поэтому вы должны [получить SSL-сертификат](https://PasarGuard.github.io/PasarGuard/en/examples/issue-ssl-certificate) и получить доступ к панели управления PasarGuard, открыв веб-браузер и перейдя по адресу `https://YOUR_DOMAIN:8000/dashboard/` (замените YOUR_DOMAIN на ваш фактический домен) +- По соображениям безопасности, панель управления PasarGuard недоступна по IP-адресу. Поэтому вы должны [получить SSL-сертификат](/ru/learn/ssl-certificate-cli) и получить доступ к панели управления PasarGuard, открыв веб-браузер и перейдя по адресу `https://YOUR_DOMAIN:8000/dashboard/` (замените YOUR_DOMAIN на ваш фактический домен) - Вы также можете использовать переадресацию портов SSH для доступа к панели управления PasarGuard локально без домена. Замените `user@serverip` на ваше фактическое имя пользователя SSH и IP-адрес сервера и выполните команду ниже: ```bash diff --git a/content/docs/zh/learn/meta.json b/content/docs/zh/learn/meta.json index 843495a..c2f977a 100644 --- a/content/docs/zh/learn/meta.json +++ b/content/docs/zh/learn/meta.json @@ -1,6 +1,6 @@ { - "title": "Learn", - "description": "Step-by-step guides for advanced configurations", + "title": "教程指南", + "description": "高级配置逐步指南", "pages": [ "ssl-certificate-cli", "ssl-activation-cli", diff --git a/content/docs/zh/panel/installation.mdx b/content/docs/zh/panel/installation.mdx index d2fa5f8..bf00210 100644 --- a/content/docs/zh/panel/installation.mdx +++ b/content/docs/zh/panel/installation.mdx @@ -77,7 +77,7 @@ PasarGuard 面板支持多个数据库后端: - PasarGuard 文件将位于 `/opt/pasarguard` - 配置文件可以在 `/opt/pasarguard/.env` 找到(请参考[配置](#configuration)部分查看变量) - 数据文件将放置在 `/var/lib/pasarguard` -- 出于安全考虑,PasarGuard 仪表板无法通过 IP 地址访问。因此,您必须[获取 SSL 证书](https://PasarGuard.github.io/PasarGuard/en/examples/issue-ssl-certificate)并通过打开网页浏览器并导航到 `https://YOUR_DOMAIN:8000/dashboard/` 来访问您的 PasarGuard 仪表板(将 YOUR_DOMAIN 替换为您的实际域名) +- 出于安全考虑,PasarGuard 仪表板无法通过 IP 地址访问。因此,您必须[获取 SSL 证书](/zh/learn/ssl-certificate-cli)并通过打开网页浏览器并导航到 `https://YOUR_DOMAIN:8000/dashboard/` 来访问您的 PasarGuard 仪表板(将 YOUR_DOMAIN 替换为您的实际域名) - 您也可以使用 SSH 端口转发在没有域名的情况下本地访问 PasarGuard 仪表板。将 `user@serverip` 替换为您的实际 SSH 用户名和服务器 IP,然后运行以下命令: ```bash diff --git a/src/app/[lang]/[...slug]/page.tsx b/src/app/[lang]/[...slug]/page.tsx index 7898b9f..8fb6f7b 100644 --- a/src/app/[lang]/[...slug]/page.tsx +++ b/src/app/[lang]/[...slug]/page.tsx @@ -79,7 +79,7 @@ export async function generateMetadata(props: { const canonicalUrl = `/${lang}${slug}`; return { - metadataBase: new URL('https://pasarguard.github.io'), + metadataBase: new URL('https://docs.pasarguard.org'), title: pageTitle, description: pageDescription, icons: { diff --git a/src/app/[lang]/page.tsx b/src/app/[lang]/page.tsx index fd5daa6..641c256 100644 --- a/src/app/[lang]/page.tsx +++ b/src/app/[lang]/page.tsx @@ -118,7 +118,7 @@ export async function generateMetadata({ params }: { params: Promise<{ lang: str // Default to English if invalid language const translations = loadTranslations('en'); return { - metadataBase: new URL('https://pasarguard.github.io'), + metadataBase: new URL('https://docs.pasarguard.org'), title: translations.appName, description: translations.appDescription, icons: { @@ -153,7 +153,7 @@ export async function generateMetadata({ params }: { params: Promise<{ lang: str const translations = loadTranslations(lang); return { - metadataBase: new URL('https://pasarguard.github.io'), + metadataBase: new URL('https://docs.pasarguard.org'), title: translations.appName, description: translations.appDescription, icons: { diff --git a/src/app/layout.tsx b/src/app/layout.tsx index d7f7cb5..00e1b46 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -2,7 +2,7 @@ import './global.css'; import { Metadata } from 'next'; export const metadata: Metadata = { - metadataBase: new URL('https://pasarguard.github.io'), + metadataBase: new URL('https://docs.pasarguard.org'), title: { default: 'PasarGuard - Unified GUI Censorship Resistant Solution', template: '%s | PasarGuard Documentation' @@ -31,7 +31,7 @@ export const metadata: Metadata = { openGraph: { type: 'website', locale: 'en_US', - url: 'https://pasarguard.github.io', + url: 'https://docs.pasarguard.org', siteName: 'PasarGuard', title: 'PasarGuard - Unified GUI Censorship Resistant Solution', description: 'PasarGuard is a proxy management tool that provides a simple and easy-to-use user interface for managing hundreds of proxy accounts powered by Xray-core.', @@ -52,7 +52,7 @@ export const metadata: Metadata = { creator: '@pasarguard', }, alternates: { - canonical: 'https://pasarguard.github.io', + canonical: 'https://docs.pasarguard.org', languages: { 'en': '/en', 'fa': '/fa', diff --git a/src/data/community-projects.ts b/src/data/community-projects.ts index 2caef26..487494a 100644 --- a/src/data/community-projects.ts +++ b/src/data/community-projects.ts @@ -58,7 +58,7 @@ export const communityCategories: CommunityCategory[] = [ repo: 'MatinDehghanian/LightWaySub', name: 'LightWaySub', description: - 'Lightweight and fast subscription page template built with React, shadcn/ui, and Tailwind CSS.', + 'An optimized, high-performance subscription template leveraging modern web technologies for speed.', }, ], }, diff --git a/src/lib/og-image-utils.ts b/src/lib/og-image-utils.ts index 524b268..ea4ac6f 100644 --- a/src/lib/og-image-utils.ts +++ b/src/lib/og-image-utils.ts @@ -3,7 +3,7 @@ */ export function getOGImagePath(lang: string, slug?: string[]): string { - const baseUrl = 'https://pasarguard.github.io'; + const baseUrl = 'https://docs.pasarguard.org'; if (!slug || slug.length === 0) { // Home page @@ -21,7 +21,7 @@ export function getOGImagePath(lang: string, slug?: string[]): string { } export function getOGImagePathForPage(lang: string, pageTitle: string, pageDescription?: string): string { - const baseUrl = 'https://pasarguard.github.io'; + const baseUrl = 'https://docs.pasarguard.org'; // For dynamic pages, we'll use a fallback to the logo // In a real implementation, you might want to generate images on-demand