Исходный код и образ Docker, которые используются в Lipeng.ac и других связанных проектах.
Antony-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
Система комментариев Nexment
Динамическая боковая панель оглавления
Персональный кабинет
Темный режим
Супер самоуверенный, совершенно излишний.
Машинопись
Рамки
Реагировать (Next.js)
Скоро появится реализация Foundation/Adaptor
Сборник рассказов
Турборепо
Получение данных
Бесконечная загрузка
Ревалидация
Саспенс
КСВ
выборка (маршруты API)
Государственное управление
Инструментарий Redux
Редукс Сага
Стиль:
стилизованные компоненты
CSS попутного ветра
Управление контентом:
WordPress (Qiniu — статическое хранилище файлов)
WP REST API (скоро появится реализация GraphQL)
Tencent Cloud CVM (CentOS/Nginx/MySQL/PHP)
Нексмент (LeanCloud)
Информационный бюллетень (Listmonk)
Регистрация ошибок и метрика Web Vitals
Часовой
Линтеры
ESLint
красивее
КоммитЛинт
CI/CD
Действия на Гитхабе
Версель
git clone [email protected]:ttttonyhe/ouorz-mono.git pnpm installcd приложения/основной
Создайте файл .env
с вашей конфигурацией. Список переменных среды, используемых в этом проекте, см. ниже:
ЛинКлауд:
NEXT_PUBLIC_LC_KEY
NEXT_PUBLIC_LC_ID
Часовой:
NEXT_PUBLIC_SENTRY_DSN
SENTRY_AUTH_TOKEN
SENTRY_PROJECT
SENTRY_ORG
ISR по требованию:
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
работает как headless CMS. peg
темы используется для настройки поведения конечных точек REST API, поэтому при разработке приложения wordpress
в центре внимания должен быть peg/functions.php
.
База данных MySQL:
WORDPRESS_DB_HOST
WORDPRESS_DB_NAME
WORDPRESS_DB_PASSWORD
WORDPRESS_DB_USER
WORDPRESS_TABLE_PREFIX
Настройки:
ВОРДПРЕСС_DEBUG
При желании WORDPRESS_CONFIG_EXTRA
можно настроить для включения других конфигураций:
SSL-соединение MySQL:
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")
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=истина -e WORDPRESS_CONFIG_EXTRA="define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL);" -e WORDPRESS_TABLE_PREFIX=[dev_database_prefix] ouorz-wordpress
Этот проект основан на Умами
Следуйте инструкциям здесь →, чтобы зарегистрироваться в Maxmind GeoLite2 и получить лицензионный ключ.
git clone [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 с удаленным кэшированием.
Менеджер монорепо: PNpm
Используйте псевдонимы проектов для более удобного запуска команд в разных пакетах:
pnpm --filter @ouorz/обновление основного запуска
Используйте предварительно определенные сценарии Turborepo всякий раз, когда требуется осведомленность о содержимом (т. е. кэширование):
pnpm запустить сборку:основную
Корневой package.json
должен содержать только зависимости разработки.
НЗП
Хотя не особо за этим следую...
Тестовый участник: Cypress
Запустить сервер:
pnpm запустить сборку:основную pnpm run start:main# orcd apps/main pnpm запустить разработчик: тест
Запустите тесты:
pnpm запустить тест:основной
apps/main
использует Cypress Dashboard, отключите его, изменив соответствующим образом файл конфигурации.
Соберите, а затем разверните образ Docker через apps/wordpress/Dockerfile
.
Примечание. По умолчанию изображение прослушивает порт 80, а не более распространенный порт 8080.
В этом проекте используется комбинация серверного рендеринга (SSR) и добавочной статической генерации (ISG) (по требованию):
pnpm запустить сборку:основную pnpm запуск запуска:основной
pnpm запустить сборку: аналитика запуск запуска pnpm: аналитика
Чтобы развернуть сборник рассказов, экспортируйте его как статическое веб-приложение:
pnpm run build:twilight:ui:storybook
Файл конфигурации fly.toml
можно найти в папке apps/wordpress
. Постоянное хранилище должно монтироваться в /var/www/html/wp-content
.
летающий запуск набор секретов Fly 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:<имя-проекта>
Настоятельно рекомендуется включить развертывание на основе различий:
git diff --quiet HEAD^ HEAD ./
GPL-3.0