Código-fonte e imagem Docker que alimentam lipeng.ac e outros projetos relacionados
Antony-Nuxt (Nuxt.js/Vue.js v2) https://github.com/ttttonyhe/antony-nuxt →
Antônio (Vue.js v2) https://github.com/ttttonyhe/antony →
Tony (Vue.js v2/PHP) https://github.com/ttttonyhe/tony →
SSR/SSG/ISR sob demanda
Paleta de comandos
Gerenciamento de estado Redux + Redux Saga
Sistema de comentários Nexment
Barra lateral dinâmica do índice
Painel pessoal
Modo escuro
Super teimoso, completamente exagerado.
Texto datilografado
Estrutura
Reagir (Next.js)
Implementação da Fundação/Adaptador em breve
Livro de histórias
Turborepo
Busca de dados
Carregamento infinito
Revalidação
Suspense
swr
buscar (rotas de API)
Gestão Estadual
Kit de ferramentas Redux
Saga Redux
Estilo:
componentes estilizados
CSS do vento favorável
Gerenciamento de conteúdo:
WordPress (Qiniu - armazenamento de arquivos estáticos)
API WP REST (implementação do GraphQL em breve)
Tencent Cloud CVM (CentOS/Nginx/MySQL/PHP)
Nexment (LeanCloud)
Boletim Informativo (Listmonk)
Registro de erros e métricas do Web Vitals
Sentinela
Linters
ESLint
Mais bonito
CommitLint
CI/CD
Ações do Github
Vercel
git clone [email protected]:ttttonyhe/ouorz-mono.git pnpm installcd aplicativos/principal
Crie um arquivo .env
com sua configuração, veja abaixo uma lista de variáveis de ambiente utilizadas neste projeto:
LeanCloud:
NEXT_PUBLIC_LC_KEY
NEXT_PUBLIC_LC_ID
Sentinela:
NEXT_PUBLIC_SENTRY_DSN
SENTRY_AUTH_TOKEN
SENTRY_PROJECT
SENTRY_ORG
ISR sob demanda:
REVALIDATION_REQUEST_TOKEN
pnpm run dev:main
Aviso
Executar o WordPress em um contêiner Docker é extremamente lento em máquinas com especificações mais baixas
>=1 GB de RAM sem MySQL 8, ou >=2 GB de RAM com MySQL 8 é recomendado
Este projeto está encerrado em um contêiner Docker construído com base na imagem oficial do Docker do WordPress: wordpress:php8.0-apache.
Cada compilação gera uma imagem estática do Docker (semelhante a um aplicativo em contêiner típico), o que significa que atualizar o próprio WordPress ou adicionar novos temas/plugins requer reimplantação.
Todos os uploads são armazenados em um armazenamento externo (Qiniu, semelhante ao AWS S3), portanto, wp-content/uploads
podem ser tratados como dados temporários.
O aplicativo main
usa a API REST do WordPress para buscar dados, o aplicativo wordpress
funciona como um CMS sem cabeça. O tema peg
é usado para customizar o comportamento dos endpoints da API REST, portanto peg/functions.php
deve ser o foco principal quando se trata de desenvolvimento de aplicativo wordpress
.
Banco de dados MySQL:
WORDPRESS_DB_HOST
WORDPRESS_DB_NAME
WORDPRESS_DB_PASSWORD
WORDPRESS_DB_USER
WORDPRESS_TABLE_PREFIX
Configurações:
WORDPRESS_DEBUG
Opcionalmente, WORDPRESS_CONFIG_EXTRA
pode ser definido para incluir outras configurações:
Conexão SSL MySQL:
define("MYSQL_CLIENT_FLAGS", MYSQLI_CLIENT_SSL);
Desative os avisos e avisos do PHP:
ini_set("error_reporting", E_ALL & ~E_NOTICE);
ini_set("display_errors","Off")
Cache de objetos 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=[dev_database_name] -e WORDPRESS_DEBUG = verdadeiro -e WORDPRESS_CONFIG_EXTRA="define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL);" -e WORDPRESS_TABLE_PREFIX=[dev_database_prefix] ouorz-wordpress
Este projeto é baseado em Umami
Siga as instruções aqui → para se inscrever no Maxmind GeoLite2 e recuperar uma chave de licença
git clone [email protected]:ttttonyhe/ouorz-mono.git pnpm installcd aplicativos/análises
Crie um arquivo .env
com sua configuração, veja abaixo uma lista de variáveis de ambiente utilizadas neste projeto:
BANCO DE DADOS_URL
HASH_SALT
MAXMIND_LICENSE_KEY
pnpm --filter @ouorz/analytics run build-postgresql-client pnpm run dev:analytics
Uma biblioteca de kit de ferramentas front-end super opinativa
Livro de histórias: https://ui.twilight-toolkit.ouorz.com →
Atualmente disponível apenas no React, a implementação do Foundation/Adaptor estará disponível em breve.
Trabalho em andamento
Sistema de compilação: Turborepo com cache remoto
Gerente Monorepo: PNpm
Use aliases de projeto para executar comandos em diferentes pacotes com mais facilidade:
pnpm --filter @ouorz/main executar atualização
Use scripts Turborepo predefinidos sempre que for necessário reconhecimento de conteúdo (ou seja, cache):
pnpm execute build:principal
Root package.json
deve conter apenas dependências de desenvolvimento
WIP
Na verdade, não estou acompanhando isso ...
Executor de testes: Cypress
Iniciar servidor:
pnpm execute build:principal pnpm run start:main# orcd apps/main pnpm execute dev:teste
Execute testes:
teste de execução pnpm: principal
apps/main
usa Cypress Dashboard, desative-o alterando o arquivo de configuração de acordo.
Crie e implante a imagem do Docker por meio de apps/wordpress/Dockerfile
.
Nota: por padrão, a imagem escuta na porta 80, em vez da 8080 mais comum
Este projeto utiliza uma combinação de renderização do lado do servidor (SSR) e geração estática incremental (ISG) (sob demanda):
pnpm execute build:principal pnpm executar início: principal
pnpm executar compilação:análises pnpm executar início:análises
Para implantar o livro de histórias, exporte-o como um aplicativo Web estático:
pnpm execute build:twilight:ui:storybook
O arquivo de configuração fly.toml
pode ser encontrado em apps/wordpress
. O armazenamento persistente deve ser montado em /var/www/html/wp-content
.
lançamento de mosca conjunto de segredos de voo 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] implantar voar
Opcionalmente, volumes com o mesmo nome podem ser criados em múltiplas regiões Fly.io, o que permite que Fly execute uma ou mais instâncias do aplicativo em múltiplas regiões:
voar volumes criar ouorz_wordpress_wp_content --region yyz --size 1 --no-encryption voar volumes criar ouorz_wordpress_wp_content --region fra --size 1 --no-encryption voar volumes criar ouorz_wordpress_wp_content --region hkg --size 1 --no-encryption
contagem de escala de mosca 3
Opcionalmente, Fly.io oferece bancos de dados Redis totalmente gerenciados que podem ser criados usando os seguintes comandos:
voar redis criar
O tráfego é roteado automaticamente através de um endereço IPv6 privado restrito à sua organização Fly.
Certifique-se de definir o caminho do diretório raiz para apps/<project-name>
e atualize o comando build para o seguinte:
cd ../.. && pnpm run build:<nome do projeto>
Habilitar a implantação baseada em diferenças é altamente recomendado:
git diff --quiet HEAD^ HEAD ./
GPL-3.0