Código fuente e imagen de Docker que impulsan lipeng.ac y otros proyectos relacionados
Antony-Nuxt (Nuxt.js / Vue.js v2) https://github.com/ttttonyhe/antony-nuxt →
Antonio (Vue.js v2) https://github.com/ttttonyhe/antony →
Tony (Vue.js v2 / PHP) https://github.com/ttttonyhe/tony →
SSR/SSG/ISR bajo demanda
paleta de comandos
Gestión del estado de Redux + Redux Saga
Sistema de comentarios Nexment
Barra lateral de tabla de contenido dinámica
Panel personal
modo oscuro
Súper obstinado, completamente exagerado.
Mecanografiado
Estructura
Reaccionar (Siguiente.js)
Próximamente la implementación de Foundation/Adaptor
libro de cuentos
Turborepo
Obtención de datos
Carga infinita
Revalidación
Suspense
swr
buscar (rutas API)
Gestión del Estado
Kit de herramientas Redux
Saga Redux
Estilo:
componentes con estilo
CSS de viento de cola
Gestión de contenidos:
WordPress (Qiniu - Almacenamiento de archivos estático)
API REST de WP (la implementación de GraphQL estará disponible próximamente)
Tencent Cloud CVM (CentOS/Nginx/MySQL/PHP)
Siguiente (LeanCloud)
Boletín (Listmonk)
Registro de errores y métricas de Web Vitals
Centinela
Linters
ESLint
mas bonita
cometerLint
CI/CD
Acciones de Github
Vercel
git clone [email protected]:ttttonyhe/ouorz-mono.git pnpm installcd aplicaciones/principal
Cree un archivo .env
con su configuración; consulte a continuación una lista de variables de entorno utilizadas en este proyecto:
LeanCloud:
NEXT_PUBLIC_LC_KEY
NEXT_PUBLIC_LC_ID
Centinela:
NEXT_PUBLIC_SENTRY_DSN
SENTRY_AUTH_TOKEN
SENTRY_PROJECT
SENTRY_ORG
ISR bajo demanda:
REVALIDATION_REQUEST_TOKEN
pnpm run dev:main
Advertencia
Ejecutar WordPress en un contenedor Docker es extremadamente lento en máquinas con especificaciones más bajas
Se recomienda >=1 GB de RAM sin MySQL 8, o >=2 GB de RAM con MySQL 8
Este proyecto está envuelto en un contenedor Docker creado en base a la imagen oficial de Docker de WordPress: wordpress:php8.0-apache.
Cada compilación genera una imagen estática de Docker (similar a una aplicación en contenedores típica), lo que significa que actualizar WordPress o agregar nuevos temas/complementos requiere una nueva implementación.
Todas las cargas se almacenan en una tienda externa (Qiniu, similar a AWS S3), por lo tanto, wp-content/uploads
se pueden tratar como datos temporales.
La aplicación main
utiliza la API REST de WordPress para recuperar datos, la aplicación wordpress
funciona como un CMS sin cabeza. El tema peg
se utiliza para personalizar el comportamiento de los puntos finales de la API REST, por lo tanto, peg/functions.php
debe ser el foco principal cuando se trata del desarrollo de una aplicación wordpress
.
Base de datos MySQL:
WORDPRESS_DB_HOST
WORDPRESS_DB_NAME
WORDPRESS_DB_PASSWORD
WORDPRESS_DB_USER
WORDPRESS_TABLE_PREFIX
Ajustes:
WORDPRESS_DEBUG
Opcionalmente, WORDPRESS_CONFIG_EXTRA
se puede configurar para incluir otras configuraciones:
Conexión MySQL SSL:
define("MYSQL_CLIENT_FLAGS", MYSQLI_CLIENT_SSL);
Desactive las advertencias y avisos de PHP:
ini_set("error_reporting", E_ALL & ~E_NOTICE);
ini_set("display_errors","Off")
Caché de objetos de Redis:
define("WP_REDIS_HOST", "redis_database_host");
define("WP_REDIS_PASSWORD", "redis_database_pwd");"
define("WP_REDIS_PORT", "redis_database_port")
compilación de Docker --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=verdadero -e WORDPRESS_CONFIG_EXTRA="define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL);" -e WORDPRESS_TABLE_PREFIX=[dev_database_prefix] ouorz-wordpress
Este proyecto está basado en Umami.
Siga las instrucciones aquí → para registrarse en Maxmind GeoLite2 y recuperar una clave de licencia
git clone [email protected]:ttttonyhe/ouorz-mono.git pnpm installcd aplicaciones/análisis
Cree un archivo .env
con su configuración; consulte a continuación una lista de variables de entorno utilizadas en este proyecto:
BASE DE DATOS_URL
HASH_SALT
MAXMIND_LICENSE_KEY
pnpm --filter @ouorz/analytics run build-postgresql-client pnpm run dev:analytics
Una biblioteca de herramientas de front-end muy obstinada
Libro de cuentos: https://ui.twilight-toolkit.ouorz.com →
Actualmente solo está disponible en React, la implementación de Foundation/Adaptor llegará pronto.
Trabajo en progreso
Sistema de compilación: Turborepo con almacenamiento en caché remoto
Gerente de Monorepo: PNpm
Utilice alias de proyecto para ejecutar comandos en diferentes paquetes más fácilmente:
pnpm --filter @ouorz/main ejecutar actualización
Utilice secuencias de comandos Turborepo predefinidas siempre que sea necesario conocer el contenido (es decir, almacenamiento en caché):
pnpm ejecutar compilación: principal
Root package.json
solo debe contener dependencias de desarrollo
WIP
Aunque realmente no estoy siguiendo esto...
Corredor de prueba: ciprés
Iniciar servidor:
pnpm ejecutar compilación: principal inicio de ejecución pnpm: principal# orcd apps/principal pnpm ejecutar dev: prueba
Ejecutar pruebas:
prueba de ejecución pnpm: principal
apps/main
usa Cypress Dashboard, desactívelo cambiando el archivo de configuración en consecuencia.
Compile y luego implemente la imagen de Docker a través de apps/wordpress/Dockerfile
.
Nota: de forma predeterminada, la imagen escucha en el puerto 80, en lugar del 8080 más común.
Este proyecto utiliza una combinación de renderizado del lado del servidor (SSR) y generación estática incremental (ISG) (bajo demanda):
pnpm ejecutar compilación: principal inicio de ejecución pnpm: principal
pnpm ejecutar compilación: análisis inicio de ejecución pnpm: análisis
Para implementar el libro de cuentos, expórtelo como una aplicación web estática:
pnpm ejecutar build:crepúsculo:ui:storybook
El archivo de configuración fly.toml
se puede encontrar en apps/wordpress
. El almacenamiento persistente debe montarse en /var/www/html/wp-content
.
lanzamiento de mosca conjunto de secretos de mosca 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=falso WORDPRESS_TABLE_PREFIX=[dev_database_prefix] desplegar mosca
Opcionalmente, se pueden crear volúmenes con el mismo nombre en múltiples regiones de Fly.io, lo que permite a Fly ejecutar una o más instancias de la aplicación en múltiples regiones:
volúmenes voladores crean ouorz_wordpress_wp_content --región yyz --tamaño 1 --sin cifrado volúmenes voladores crean ouorz_wordpress_wp_content --region fra --size 1 --no-encryption volúmenes voladores crean ouorz_wordpress_wp_content --región hkg --tamaño 1 --sin cifrado
cuenta de escala de mosca 3
Opcionalmente, Fly.io ofrece bases de datos Redis completamente administradas que se pueden crear usando los siguientes comandos:
volar redis crear
El tráfico se enruta automáticamente a través de una dirección IPv6 privada restringida a su organización Fly.
Asegúrese de establecer la ruta del directorio raíz en apps/<project-name>
y luego actualice el comando de compilación a lo siguiente:
cd ../.. && pnpm ejecutar compilación:<nombre-proyecto>
Se recomienda encarecidamente habilitar la implementación basada en diferencias:
git diff --quiet CABEZA^ CABEZA ./
GPL-3.0