كود المصدر وصورة Docker التي تعمل على تشغيل lipeng.ac والمشاريع الأخرى ذات الصلة
أنتوني-نوكست (Nuxt.js / Vue.js v2) https://github.com/ttttonyhe/antony-nuxt →
أنتوني (Vue.js v2) https://github.com/ttttonyhe/antony →
توني (Vue.js v2 / PHP) https://github.com/ttttonyhe/tony →
SSR / SSG / ISR عند الطلب
لوحة الأوامر
إدارة حالة Redux + Redux Saga
نظام التعليق Nexment
الجدول الديناميكي للمحتويات الشريط الجانبي
لوحة القيادة الشخصية
الوضع المظلم
عنيد للغاية، مبالغة تمامًا.
تايب سكريبت
نطاق
رد الفعل (Next.js)
سيتم تنفيذ الأساس/المحول قريبًا
القصص القصيرة
توربوريبو
جلب البيانات
تحميل لانهائي
إعادة التحقق
تشويق
swr
جلب (طرق API)
إدارة الدولة
مجموعة أدوات الإعادة
ريدوكس ساغا
التصميم:
مكونات على غرار
الريح الخلفية CSS
إدارة المحتوى:
WordPress (Qiniu - تخزين الملفات الثابتة)
WP REST API (سيتوفر تطبيق GraphQL قريبًا)
Tencent Cloud CVM (CentOS/Nginx/MySQL/PHP)
نكسمينت (لين كلاود)
النشرة الإخبارية (Listmonk)
تسجيل الأخطاء ومقياس مؤشرات أداء الويب
خفير
الوبر
ESLint
أجمل
CommitLint
سي آي/سي دي
إجراءات جيثب
فيرسل
git clone [email protected]:ttttonyhe/ouorz-mono.git تطبيقات pnpm installcd/main
قم بإنشاء ملف .env
مع التكوين الخاص بك، انظر أدناه للحصول على قائمة بمتغيرات البيئة المستخدمة في هذا المشروع:
لين كلاود:
NEXT_PUBLIC_LC_KEY
NEXT_PUBLIC_LC_ID
خفير:
NEXT_PUBLIC_SENTRY_DSN
SENTRY_AUTH_TOKEN
سنتري_بروجيكت
SENTRY_ORG
الاستخبارات والمراقبة والاستطلاع عند الطلب:
REVALIDATION_REQUEST_TOKEN
pnpm run dev:main
تحذير
يعد تشغيل WordPress في حاوية Docker بطيئًا للغاية على الأجهزة ذات المواصفات المنخفضة
>= 1 غيغابايت من ذاكرة الوصول العشوائي بدون MySQL 8، أو >= 2 غيغابايت من ذاكرة الوصول العشوائي مع MySQL 8 يوصى بها
تم تغليف هذا المشروع في حاوية Docker مبنية على صورة WordPress Docker الرسمية: wordpress:php8.0-Apache.
يُخرج كل إصدار صورة Docker ثابتة (مماثلة لتطبيق حاوية نموذجي) مما يعني أن تحديث WordPress نفسه أو إضافة سمات/مكونات إضافية جديدة يتطلب إعادة النشر.
يتم تخزين جميع التحميلات في متجر خارجي (Qiniu، مشابه لـ AWS S3)، لذلك يمكن التعامل مع wp-content/uploads
على أنها بيانات مؤقتة.
يستخدم التطبيق main
WordPress REST API لجلب البيانات، ويعمل تطبيق wordpress
كنظام إدارة محتوى بدون رأس. يتم استخدام peg
السمة لتخصيص سلوك نقاط نهاية REST API، وبالتالي يجب أن يكون peg/functions.php
هو محور التركيز الرئيسي عندما يتعلق الأمر بتطوير تطبيق wordpress
.
قاعدة بيانات ماي إس كيو إل:
ووردبريس_DB_HOST
ووردبريس_DB_NAME
WORDPRESS_DB_PASSWORD
ووردبريس_DB_USER
WORDPRESS_TABLE_PREFIX
إعدادات:
ووردبريس_DEBUG
اختياريًا، يمكن ضبط WORDPRESS_CONFIG_EXTRA
ليتضمن تكوينات أخرى:
اتصال MySQL SSL:
define("MYSQL_CLIENT_FLAGS", MYSQLI_CLIENT_SSL);
قم بإيقاف تشغيل تحذيرات وإشعارات PHP:
ini_set("error_reporting", E_ALL & ~E_NOTICE);
ini_set("display_errors","Off")
Redis ذاكرة التخزين المؤقت للكائن:
define("WP_REDIS_HOST", "redis_database_host");
define("WP_REDIS_PASSWORD", "redis_database_pwd");"
define("WP_REDIS_PORT", "redis_database_port")
بناء عامل ميناء --tag ouorz-wordpress .docker run -p 8080:80 -e WORDPRESS_DB_HOST=[dev_database_host] -e WORDPRESS_DB_USER=[dev_database_user] -e WORDPRESS_DB_PASSWORD=[dev_database_pwd] -e WORDPRESS_DB_NAME=[dev_database_name] -e WORDPRESS_DEBUG=صحيح -e WORDPRESS_CONFIG_EXTRA = "تعريف ('MYSQL_CLIENT_FLAGS'، MYSQLI_CLIENT_SSL)؛" -e WORDPRESS_TABLE_PREFIX=[dev_database_prefix] ouorz-ووردبريس
يعتمد هذا المشروع على أومامي
اتبع التعليمات هنا → للتسجيل في Maxmind GeoLite2، واسترداد مفتاح الترخيص
git clone [email protected]:ttttonyhe/ouorz-mono.git تطبيقات/تحليلات pnpm installcd
قم بإنشاء ملف .env
مع التكوين الخاص بك، انظر أدناه للحصول على قائمة بمتغيرات البيئة المستخدمة في هذا المشروع:
DATABASE_URL
HASH_SALT
MAXMIND_LICENSE_KEY
pnpm --filter @ouorz/analytics run build-postgresql-client pnpm run dev:analytics
مكتبة أدوات أمامية فائقة الرأي
القصص المصورة: https://ui.twilight-toolkit.ouorz.com →
متوفر حاليًا فقط في React، وسيأتي تنفيذ Foundation/Adaptor قريبًا.
العمل قيد التقدم
نظام البناء: Turborepo مع التخزين المؤقت عن بعد
مدير مونوريبو: PNpm
استخدم الأسماء المستعارة للمشروع لتشغيل الأوامر في حزم مختلفة بسهولة أكبر:
pnpm --filter @ouorz/ترقية التشغيل الرئيسي
استخدم نصوص Turborepo المحددة مسبقًا عندما تكون هناك حاجة إلى الوعي بالمحتوى (أي التخزين المؤقت):
بناء تشغيل pnpm: main
يجب أن يحتوي ملف root package.json
على تبعيات التطوير فقط
قيد التنفيذ
رغم ذلك لا أتابع هذا حقًا..
عداء الاختبار: السرو
بدء الخادم:
بناء تشغيل pnpm: main بدء تشغيل pnpm: main# تطبيقات orcd/main تشغيل pnpm dev:test
تشغيل الاختبارات:
اختبار تشغيل pnpm: main
apps/main
يستخدم Cypress Dashboard، وقم بتعطيله عن طريق تغيير ملف التكوين وفقًا لذلك.
أنشئ صورة Docker ثم انشرها عبر apps/wordpress/Dockerfile
.
ملاحظة: بشكل افتراضي، يتم الاستماع إلى الصورة على المنفذ 80، بدلاً من المنفذ 8080 الأكثر شيوعًا
يستخدم هذا المشروع مزيجًا من العرض من جانب الخادم (SSR) والتوليد الثابت التزايدي (حسب الطلب) (ISG):
بناء تشغيل pnpm: main بداية تشغيل pnpm: main
بناء تشغيل pnpm: التحليلات بدء تشغيل pnpm: التحليلات
لنشر كتاب القصص، قم بتصديره كتطبيق ويب ثابت:
تشغيل pnpm build:twilight:ui:storybook
يمكن العثور على ملف التكوين fly.toml
ضمن apps/wordpress
. يجب أن يتم تثبيت التخزين الدائم على /var/www/html/wp-content
.
إطلاق الطيران مجموعة أسرار الطيران WORDPRESS_DB_HOST=[dev_database_host] WORDPRESS_DB_USER=[dev_database_user] WORDPRESS_DB_PASSWORD=[dev_database_pwd] WORDPRESS_DB_NAME=[dev_database_name] WORDPRESS_DEBUG=خطأ WORDPRESS_TABLE_PREFIX=[dev_database_prefix] يطير نشر
اختياريًا، يمكن إنشاء وحدات تخزين بنفس الاسم في مناطق Fly.io متعددة مما يسمح لـ Fly بتشغيل مثيل واحد أو أكثر من التطبيق في مناطق متعددة:
إنشاء وحدات تخزين متطايرة ouorz_wordpress_wp_content --region yyz --size 1 --no-encryption إنشاء مجلدات الطيران ouorz_wordpress_wp_content --region fra --size 1 --no-encryption إنشاء وحدات تخزين متطايرة ouorz_wordpress_wp_content --region hkg --size 1 --no-encryption
عدد مقياس الطيران 3
اختياريًا، يقدم Fly.io قواعد بيانات Redis مُدارة بالكامل والتي يمكن إنشاؤها باستخدام الأوامر التالية:
يطير redis خلق
يتم توجيه حركة المرور تلقائيًا عبر عنوان IPv6 خاص يقتصر على مؤسسة Fly الخاصة بك.
تأكد من تعيين مسار الدليل الجذر إلى apps/<project-name>
، ثم قم بتحديث أمر الإنشاء إلى ما يلي:
cd ../.. && pnpm run build:<project-name>
يوصى بشدة بتمكين النشر المستند إلى الاختلاف:
git diff - رأس هادئ ^ رأس ./
جي بي إل-3.0