Skip to main content

النشر القياسي

يعيد استخدام الواجهة الخلفية المشتركة الرسمية ويعمل فور التشغيل. قم بعمل Fork للمشروع أولًا، ثم انشر باستخدام إحدى الطرق التالية.

المتطلبات: Node.js 20.0 أو أحدث، على macOS أو Windows (بما في ذلك WSL) أو Linux.

هيكلية النشر القياسي: بعد عمل Fork، انشر عبر البناء المحلي أو Vercel أو Cloudflare Pages أو Docker — وكلها تعيد استخدام الواجهة الخلفية المشتركة الرسمية (تسجيل الدخول، المفضلة، المجتمع، التعليقات، المزامنة عبر الأجهزة)

البناء المحلي

# install dependencies
yarn

# local development
yarn start

# build: outputs static files to the build directory, using the defaultLocale in scripts/i18nLocales.mjs
yarn build

بناء لغات محددة فقط: استخدم yarn build --locale <locale> (مثل zh-Hans أو en أو ja... راجع القائمة الكاملة في scripts/i18nLocales.mjs). للسلسلة: yarn build --locale zh-Hans && yarn build --locale en.

نشر Vercel

انقر فوق الزر أدناه للنشر بنقرة واحدة على Vercel:

Vercel

ملاحظة: قد يفشل الإصدار المجاني من Vercel بسبب محدودية الذاكرة. انشر لغة واحدة بدلًا من ذلك — انتقل إلى Settings → Build & Deployment → Build Command في المشروع، وانقر Override، واضبط أمر لغة واحدة (yarn build --locale zh-Hans للصينية، أو yarn build --locale pt للبرتغالية، إلخ).

نشر Cloudflare Pages

أولًا 👉 Fork this project، ثم انشر:

  1. سجّل الدخول إلى Cloudflare Pages واختر Create a project
  2. اربط المستودع الذي قمت بعمل Fork له للتو
  3. اضبط إعدادات البناء:
    • Build command: yarn build --locale zh-Hans (استبدل اللغة بالمطلوبة، مثل yarn build --locale pt للبرتغالية)
    • Output directory: build
  4. انقر Deploy وانتظر حتى ينتهي Cloudflare Pages من البناء

كل push لاحق يُشغّل البناء والنشر تلقائيًا.

نشر Docker

نشر بسطر واحد:

# ghcr.io
docker run -d -p 3000:3000 --name chatgpt-shortcut ghcr.io/rockbenben/chatgpt-shortcut:latest

# docker hub
docker run -d -p 3000:3000 --name chatgpt-shortcut rockben/chatgpt-shortcut:latest

أو باستخدام docker-compose:

services:
chatgpt-shortcut:
container_name: chatgpt-shortcut
image: ghcr.io/rockbenben/chatgpt-shortcut:latest
ports:
- "3000:3000"
restart: unless-stopped