Kode sumber & gambar Docker yang mendukung lipeng.ac dan proyek terkait lainnya
Antony-Nuxt (Nuxt.js / Vue.js v2) https://github.com/ttttonyhe/antony-nuxt →
Antony (Vue.js v2) https://github.com/ttttonyhe/antony →
Tony (Vue.js v2 / PHP) https://github.com/ttttonyhe/tony →
SSR/SSG/ISR sesuai permintaan
Palet perintah
Manajemen status Redux + Redux Saga
Sistem komentar selanjutnya
Sidebar daftar isi dinamis
Dasbor pribadi
Mode gelap
Sangat keras kepala, sepenuhnya berlebihan.
Skrip Ketik
Kerangka
Bereaksi (Berikutnya.js)
Implementasi Foundation/Adaptor akan segera dilakukan
Buku Cerita
turborepo
Pengambilan Data
Pemuatan Tak Terbatas
Validasi ulang
Ketegangan
swr
ambil (Rute API)
Manajemen Negara
Perangkat Redux
Kisah Redux
Gaya:
komponen bergaya
CSS penarik
Manajemen Konten:
WordPress (Qiniu - Penyimpanan file statis)
WP REST API (implementasi GraphQL segera hadir)
Tencent Cloud CVM (CentOS/Nginx/MySQL/PHP)
Berikutnya (LeanCloud)
Buletin (Listmonk)
Pencatatan Kesalahan & Metrik Vital Web
Penjaga
Linter
ESLint
Lebih cantik
CommitLint
CI/CD
Tindakan Github
Vercel
git clone [email protected]:ttttonyhe/ouorz-mono.git pnpm installcd apps/main
Buat file .env
dengan konfigurasi Anda, lihat di bawah untuk daftar variabel lingkungan yang digunakan dalam proyek ini:
LeanCloud:
BERIKUTNYA_PUBLIC_LC_KEY
BERIKUTNYA_PUBLIC_LC_ID
Penjaga:
NEXT_PUBLIC_SENTRY_DSN
SENTRY_AUTH_TOKEN
SENTRY_PROJECT
SENTRY_ORG
ISR sesuai permintaan:
REVALIDATION_REQUEST_TOKEN
pnpm run dev:main
Peringatan
Menjalankan WordPress dalam container Docker sangat lambat pada mesin dengan spesifikasi lebih rendah
>=1 GB RAM tanpa MySQL 8, atau >=2 GB RAM dengan MySQL 8 direkomendasikan
Proyek ini dibungkus dalam wadah Docker yang dibuat berdasarkan image resmi Docker WordPress: wordpress:php8.0-apache.
Setiap build menghasilkan gambar Docker statis (mirip dengan aplikasi dalam container pada umumnya) yang berarti memperbarui WordPress itu sendiri atau menambahkan tema/plugin baru memerlukan penerapan ulang.
Semua unggahan disimpan di penyimpanan eksternal (Qiniu, mirip dengan AWS S3), oleh karena itu wp-content/uploads
dapat diperlakukan sebagai data sementara.
aplikasi main
menggunakan WordPress REST API untuk mengambil data, aplikasi wordpress
berfungsi sebagai CMS tanpa kepala. peg
tema digunakan untuk menyesuaikan perilaku titik akhir REST API, oleh karena itu peg/functions.php
harus menjadi fokus utama dalam pengembangan aplikasi wordpress
.
Basis Data MySQL:
WORDPRESS_DB_HOST
WORDPRESS_DB_NAME
WORDPRESS_DB_PASSWORD
WORDPRESS_DB_USER
WORDPRESS_TABLE_PREFIX
Pengaturan:
WORDPRESS_DEBUG
Secara opsional, WORDPRESS_CONFIG_EXTRA
dapat diatur untuk menyertakan konfigurasi lain:
Koneksi SSL MySQL:
define("MYSQL_CLIENT_FLAGS", MYSQLI_CLIENT_SSL);
Matikan Peringatan & Pemberitahuan PHP:
ini_set("error_reporting", E_ALL & ~E_NOTICE);
ini_set("display_errors","Off")
Cache Objek Redis:
define("WP_REDIS_HOST", "redis_database_host");
define("WP_REDIS_PASSWORD", "redis_database_pwd");"
define("WP_REDIS_PORT", "redis_database_port")
docker 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=[nama_database_dev] -e WORDPRESS_DEBUG=benar -e WORDPRESS_CONFIG_EXTRA="define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL);" -e WORDPRESS_TABLE_PREFIX=[dev_database_prefix] ouorz-wordpress
Proyek ini didasarkan pada Umami
Ikuti instruksi di sini → untuk mendaftar Maxmind GeoLite2, dan mengambil kunci lisensi
git clone [email protected]:ttttonyhe/ouorz-mono.git pnpm installcd aplikasi/analytics
Buat file .env
dengan konfigurasi Anda, lihat di bawah untuk daftar variabel lingkungan yang digunakan dalam proyek ini:
DATABASE_URL
HASH_SALT
MAXMIND_LICENSE_KEY
pnpm --filter @ouorz/analytics run build-postgresql-client pnpm run dev:analytics
Pustaka toolkit front-end yang sangat berpendirian keras
Buku Cerita: https://ui.twilight-toolkit.ouorz.com →
Saat ini hanya tersedia di React, implementasi Foundation/Adaptor akan segera hadir.
Pekerjaan sedang berlangsung
Membangun sistem: Turborepo dengan Remote Caching
Pengelola Monorepo : PNpm
Gunakan alias proyek untuk menjalankan perintah dalam paket berbeda dengan lebih mudah:
pnpm --filter @ouorz/peningkatan jalankan utama
Gunakan skrip Turborepo yang telah ditentukan sebelumnya setiap kali kesadaran konten (yaitu caching) diperlukan:
pnpm jalankan build: utama
Root package.json
seharusnya hanya berisi dependensi pengembangan
WIP
Tapi tidak benar-benar mengikuti ini...
Pelari ujian: Cypress
Mulai server:
pnpm jalankan build: utama pnpm jalankan start:main# aplikasi orcd/main pnpm jalankan dev:test
Jalankan tes:
tes jalankan pnpm: utama
apps/main
menggunakan Cypress Dashboard, nonaktifkan dengan mengubah file konfigurasi yang sesuai.
Bangun lalu terapkan image Docker melalui apps/wordpress/Dockerfile
.
Catatan: secara default, gambar didengarkan pada port 80, bukan 8080 yang lebih umum
Proyek ini menggunakan kombinasi Rendering Sisi Server (SSR) dan Generasi Statis Inkremental (ISG) (Sesuai Permintaan):
pnpm jalankan build: utama pnpm jalankan mulai: utama
pnpm jalankan build:analytics pnpm jalankan start:analytics
Untuk menerapkan buku cerita, ekspor buku tersebut sebagai aplikasi web statis:
pnpm jalankan build:twilight:ui:buku cerita
File konfigurasi fly.toml
dapat ditemukan di bawah apps/wordpress
. Penyimpanan persisten harus dipasang ke /var/www/html/wp-content
.
peluncuran terbang kumpulan rahasia terbang WORDPRESS_DB_HOST=[dev_database_host] WORDPRESS_DB_USER=[pengguna_database_dev] WORDPRESS_DB_PASSWORD=[dev_database_pwd] WORDPRESS_DB_NAME=[nama_database_dev] WORDPRESS_DEBUG=salah WORDPRESS_TABLE_PREFIX=[dev_database_prefix] terbang menyebarkan
Secara opsional, volume dengan nama yang sama dapat dibuat di beberapa wilayah Fly.io yang memungkinkan Fly menjalankan satu atau lebih contoh aplikasi di beberapa wilayah:
volume terbang buat ouorz_wordpress_wp_content --region yyz --size 1 --no-encryption volume terbang buat ouorz_wordpress_wp_content --region fra --size 1 --no-encryption volume terbang buat ouorz_wordpress_wp_content --region hkg --size 1 --no-encryption
skala terbang hitungan 3
Secara opsional, Fly.io menawarkan database Redis terkelola penuh yang dapat dibuat menggunakan perintah berikut:
terbang redis buat
Lalu lintas secara otomatis dirutekan melalui alamat IPv6 pribadi yang dibatasi untuk organisasi Fly Anda.
Pastikan untuk menyetel jalur direktori root ke apps/<project-name>
, lalu perbarui perintah build sebagai berikut:
cd ../.. && pnpm jalankan build:<nama-proyek>
Mengaktifkan penerapan berbasis diff sangat disarankan:
git diff --tenang KEPALA^ KEPALA ./
GPL-3.0