lipeng.ac 및 기타 관련 프로젝트를 지원하는 소스 코드 및 Docker 이미지
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 상태 관리
넥스트댓글 시스템
동적 목차 사이드바
개인 대시보드
다크 모드
매우 자기 주장이 강하고 완전히 과잉입니다.
타입스크립트
뼈대
반응(Next.js)
기초/어댑터 구현 예정
스토리북
터보레포
데이터 가져오기
무한 로딩
재검증
미결
SW
가져오기(API 경로)
상태 관리
Redux 툴킷
리덕스 사가
스타일링:
스타일 구성 요소
순풍 CSS
콘텐츠 관리:
WordPress(Qiniu - 정적 파일 저장)
WP REST API(GraphQL 구현 예정)
텐센트 클라우드 CVM(CentOS/Nginx/MySQL/PHP)
넥스먼트(LeanCloud)
뉴스레터(리스트몽크)
오류 로깅 및 웹 바이탈 지표
보초
린터
ESLint
더 예뻐요
커밋린트
CI/CD
Github 작업
베르셀
자식 클론 [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
경고
Docker 컨테이너에서 WordPress를 실행하는 것은 저사양 컴퓨터에서 매우 느립니다.
MySQL 8이 없는 경우 1GB 이상의 RAM 또는 MySQL 8이 있는 경우 2GB 이상의 RAM이 권장됩니다.
이 프로젝트는 공식 WordPress Docker 이미지(wordpress:php8.0-apache)를 기반으로 구축된 Docker 컨테이너에 포함되어 있습니다.
각 빌드는 정적 Docker 이미지(일반적인 컨테이너화된 애플리케이션과 유사)를 출력합니다. 이는 WordPress 자체를 업데이트하거나 새 테마/플러그인을 추가하려면 재배포가 필요함을 의미합니다.
모든 업로드는 외부 저장소(AWS S3와 유사한 Qiniu)에 저장되므로 wp-content/uploads
임시 데이터로 처리될 수 있습니다.
main
앱은 WordPress REST API를 사용하여 데이터를 가져오고, wordpress
앱은 헤드리스 CMS로 작동합니다. 테마 peg
REST API 엔드포인트의 동작을 사용자 정의하는 데 사용되므로 wordpress
앱 개발 시 peg/functions.php
주요 초점이 되어야 합니다.
MySQL 데이터베이스:
WORDPRESS_DB_HOST
WORDPRESS_DB_NAME
WORDPRESS_DB_PASSWORD
WORDPRESS_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")
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=true -e WORDPRESS_CONFIG_EXTRA="define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL);" -e WORDPRESS_TABLE_PREFIX=[dev_database_prefix] ouorz-워드프레스
이 프로젝트는 Umami를 기반으로 합니다.
Maxmind GeoLite2에 가입하고 라이센스 키를 검색하려면 여기의 지침을 따르십시오.
자식 클론 [email protected]:ttttonyhe/ouorz-mono.git pnpm installcd 앱/분석
구성을 사용하여 .env
파일을 만듭니다. 이 프로젝트에 사용되는 환경 변수 목록은 아래를 참조하세요.
DATABASE_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/main run 업그레이드
콘텐츠 인식(예: 캐싱)이 필요할 때마다 사전 정의된 Turborepo 스크립트를 사용하십시오.
pnpm 실행 빌드:메인
루트 package.json
개발 종속성만 포함되어야 합니다.
WIP
실제로 이것을 따르지는 않습니다 ...
테스트 러너: Cypress
서버 시작:
pnpm 실행 빌드:메인 pnpm run start:main# orcd apps/main pnpm 실행 개발:테스트
테스트 실행:
pnpm 실행 테스트:메인
apps/main
Cypress Dashboard를 사용하므로 이에 따라 구성 파일을 변경하여 비활성화합니다.
apps/wordpress/Dockerfile
통해 Docker 이미지를 빌드한 후 배포합니다.
참고: 기본적으로 이미지는 일반적인 8080 포트가 아닌 포트 80에서 수신 대기합니다.
이 프로젝트는 서버 측 렌더링(SSR)과 (주문형) 증분 정적 생성(ISG)의 조합을 활용합니다.
pnpm 실행 빌드:메인 pnpm 실행 시작:메인
pnpm 실행 빌드:분석 pnpm 실행 시작:분석
스토리북을 배포하려면 정적 웹 앱으로 내보내세요.
pnpm 실행 빌드: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 데이터베이스를 제공합니다.
플라이 레디스 생성
트래픽은 Fly 조직으로 제한된 개인 IPv6 주소를 통해 자동으로 라우팅됩니다.
루트 디렉터리 경로를 apps/<project-name>
으로 설정한 후 빌드 명령을 다음으로 업데이트하세요.
cd ../.. && pnpm run build:<프로젝트 이름>
diff 기반 배포를 활성화하는 것이 좋습니다.
git diff --quiet HEAD^ HEAD ./
GPL-3.0