ซอร์สโค้ดและอิมเมจ Docker ที่ขับเคลื่อน lipeng.ac และโปรเจ็กต์อื่นๆ ที่เกี่ยวข้อง
แอนโทนี-Nuxt (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
ระบบแสดงความคิดเห็นถัดไป
แถบด้านข้างสารบัญแบบไดนามิก
แดชบอร์ดส่วนบุคคล
โหมดมืด
ดื้อดึงสุดๆ เกินกำลังไปโดยสิ้นเชิง
TypeScript
กรอบ
ตอบสนอง (Next.js)
การใช้งาน Foundation/Adaptor ในเร็วๆ นี้
หนังสือนิทาน
เทอร์โบเรโป
การดึงข้อมูล
กำลังโหลดไม่สิ้นสุด
การตรวจสอบความถูกต้องอีกครั้ง
ใจจดใจจ่อ
สว
ดึงข้อมูล (เส้นทาง API)
การจัดการของรัฐ
ชุดเครื่องมือ Redux
รีดักซ์ ซากา
จัดแต่งทรงผม:
ส่วนประกอบที่มีสไตล์
CSS ท้ายลม
การจัดการเนื้อหา:
WordPress (Qiniu - พื้นที่จัดเก็บไฟล์แบบคงที่)
WP REST API (การใช้งาน GraphQL ในเร็วๆ นี้)
Tencent คลาวด์ CVM (CentOS/Nginx/MySQL/PHP)
เน็กซ์เมนท์ (LeanCloud)
จดหมายข่าว (Listmonk)
การบันทึกข้อผิดพลาดและเมตริก Web Vitals
ยาม
ลินเตอร์ส
ESLint
สวยกว่า
คอมมิตLint
ซีไอ/ซีดี
การดำเนินการ Github
เวอร์เซล
โคลนคอมไพล์ [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
ISR ตามความต้องการ:
REVALIDATION_REQUEST_TOKEN
pnpm run dev:main
คำเตือน
การใช้งาน WordPress ในคอนเทนเนอร์ Docker นั้นช้ามากบนเครื่องที่มีสเปคต่ำกว่า
แนะนำให้ใช้ RAM >=1 GB โดยไม่มี MySQL 8 หรือแนะนำให้ใช้ RAM >=2 GB พร้อม MySQL 8
โปรเจ็กต์นี้รวมอยู่ในคอนเทนเนอร์ Docker ที่สร้างขึ้นจากอิมเมจ WordPress Docker อย่างเป็นทางการ: wordpress:php8.0-apache
แต่ละบิลด์จะแสดงอิมเมจ Docker แบบคงที่ (คล้ายกับแอปพลิเคชันคอนเทนเนอร์ทั่วไป) ซึ่งหมายถึงการอัปเดต WordPress เองหรือการเพิ่มธีม/ปลั๊กอินใหม่จำเป็นต้องมีการปรับใช้ใหม่
การอัปโหลดทั้งหมดจะถูกจัดเก็บไว้ในร้านค้าภายนอก (Qiniu ซึ่งคล้ายกับ AWS S3) ดังนั้น wp-content/uploads
จึงถือเป็นข้อมูลชั่วคราวได้
แอป main
ใช้ WordPress REST API เพื่อดึงข้อมูล แอป wordpress
ทำหน้าที่เป็น CMS ที่ไม่มีหัว peg
ธีมใช้เพื่อปรับแต่งพฤติกรรมของจุดสิ้นสุด REST API ดังนั้น peg/functions.php
จึงควรเป็นจุดสนใจหลักในการพัฒนาแอป wordpress
ฐานข้อมูล MySQL:
เวิร์ดเพรส_DB_HOST
เวิร์ดเพรส_DB_NAME
เวิร์ดเพรส_DB_รหัสผ่าน
เวิร์ดเพรส_DB_USER
WORDPRESS_TABLE_PREFIX
การตั้งค่า:
WORDPRESS_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")
นักเทียบท่า build --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 และรับรหัสลิขสิทธิ์
โคลนคอมไพล์ [email protected]:ttttonyhe/ouorz-mono.git pnpm installcd แอพ/การวิเคราะห์
สร้างไฟล์ .env
ด้วยการกำหนดค่าของคุณ ดูรายการตัวแปรสภาพแวดล้อมที่ใช้ในโปรเจ็กต์นี้ด้านล่าง:
ฐานข้อมูล_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 พร้อมการแคชระยะไกล
ผู้จัดการฝ่าย Monorepo: PNpm
ใช้นามแฝงโปรเจ็กต์เพื่อรันคำสั่งในแพ็คเกจต่างๆ ได้ง่ายขึ้น:
pnpm --filter @ouorz/การอัพเกรดการรันหลัก
ใช้สคริปต์ Turborepo ที่กำหนดไว้ล่วงหน้าทุกครั้งที่จำเป็นต้องมีการรับรู้เนื้อหา (เช่น การแคช):
รัน pnpm build: main
Root package.json
ควรมีเฉพาะการพึ่งพาการพัฒนาเท่านั้น
วีไอพี
ไม่ได้ติดตามเรื่องนี้จริงๆ...
นักวิ่งทดสอบ: Cypress
เริ่มเซิร์ฟเวอร์:
รัน pnpm build: main pnpm run start:main# orcd apps/main pnpm รัน dev: ทดสอบ
ทำการทดสอบ:
การทดสอบการทำงาน pnpm: main
apps/main
ใช้ Cypress Dashboard ปิดการใช้งานโดยเปลี่ยนไฟล์กำหนดค่าตามลำดับ
Build จากนั้นปรับใช้อิมเมจ Docker ผ่าน apps/wordpress/Dockerfile
หมายเหตุ: ตามค่าเริ่มต้น รูปภาพจะฟังบนพอร์ต 80 แทนที่จะเป็น 8080 ทั่วไป
โปรเจ็กต์นี้ใช้การผสมผสานระหว่างการเรนเดอร์ฝั่งเซิร์ฟเวอร์ (SSR) และการสร้างแบบคงที่แบบเพิ่มหน่วย (ตามต้องการ) (ISG):
รัน pnpm build: main pnpm ทำงานเริ่มต้น: main
เรียกใช้ pnpm build: การวิเคราะห์ pnpm run start: การวิเคราะห์
หากต้องการปรับใช้หนังสือนิทาน ให้ส่งออกเป็นแอปพลิเคชันเว็บแบบคงที่:
เรียกใช้ 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>
จากนั้นอัปเดตคำสั่ง build เป็นดังนี้:
cd ../.. && pnpm run build:<ชื่อโครงการ>
ขอแนะนำให้เปิดใช้งานการปรับใช้แบบ diff-based:
git diff --quiet HEAD^ HEAD ./
GPL-3.0