@codigodoleo/wp-kit 3.1.1 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commands/init.js +19 -10
- package/lib/config/versions.js +5 -5
- package/lib/core/infer-ci-capabilities.js +17 -0
- package/lib/prompts/index.js +27 -17
- package/lib/utils/git.js +50 -13
- package/modules/blank-theme/index.js +71 -0
- package/modules/blank-theme/lint/.prettierrc.json +12 -0
- package/modules/blank-theme/lint/.stylelintrc.json +7 -0
- package/modules/{lint → blank-theme/lint}/eslint.config.mjs +2 -8
- package/modules/blank-theme/lint/pint.json +11 -0
- package/modules/blank-theme/prompts.js +36 -0
- package/modules/blank-theme/templates/.lando.yml.hbs +26 -0
- package/modules/blank-theme/templates/functions.php.hbs +46 -0
- package/modules/blank-theme/templates/package.json.hbs +16 -0
- package/modules/blank-theme/templates/style.css.hbs +7 -0
- package/modules/blank-theme/templates/vite.config.js.hbs +23 -0
- package/modules/deploy/.github/workflows/deploy-docker.yml +104 -0
- package/modules/deploy/.github/workflows/deploy-ssh.yml +128 -0
- package/modules/deploy/.github/workflows/release.yml +57 -0
- package/modules/deploy/index.js +77 -0
- package/modules/deploy/prompts.js +1 -3
- package/modules/deploy/templates/.github/workflows/ci.yml.hbs +29 -1
- package/modules/deploy/templates/.gitlab/ci/deploy-docker.yml.hbs +35 -0
- package/modules/deploy/templates/.gitlab/ci/deploy-ssh.yml.hbs +83 -0
- package/modules/deploy/templates/.gitlab/ci/lint-blank-theme.yml.hbs +35 -0
- package/modules/deploy/templates/.gitlab/ci/lint-mu-plugin.yml.hbs +19 -0
- package/modules/deploy/templates/.gitlab/ci/lint-plugin.yml.hbs +19 -0
- package/modules/deploy/templates/.gitlab/ci/lint-sage.yml.hbs +47 -0
- package/modules/deploy/templates/.gitlab/ci/release.yml.hbs +26 -0
- package/modules/git/.husky/commit-msg +8 -4
- package/modules/git/.husky/pre-commit +0 -3
- package/modules/git/templates/package.json.hbs +4 -4
- package/modules/git/templates/workspace.json.hbs +1 -1
- package/modules/lint/.commitlintrc.json +21 -0
- package/modules/lint/.prettierignore +15 -25
- package/modules/lint/.prettierrc.json +5 -16
- package/modules/lint/index.js +75 -8
- package/modules/lint/prompts.js +1 -8
- package/modules/lint/templates/.lando.yml.hbs +3 -8
- package/modules/lint/templates/package.json.hbs +4 -4
- package/modules/lint/templates/workspace.json.hbs +3 -3
- package/modules/mu-plugin/index.js +49 -0
- package/modules/mu-plugin/lint/.prettierrc.json +7 -0
- package/modules/mu-plugin/lint/eslint.config.mjs +30 -0
- package/modules/mu-plugin/lint/pint.json +11 -0
- package/modules/mu-plugin/prompts.js +29 -0
- package/modules/mu-plugin/templates/.lando.yml.hbs +15 -0
- package/modules/mu-plugin/templates/composer.json.hbs +14 -0
- package/modules/mu-plugin/templates/plugin.php.hbs +15 -0
- package/modules/php/templates/composer.json.hbs +15 -1
- package/modules/plugin/index.js +45 -0
- package/modules/plugin/lint/.prettierrc.json +7 -0
- package/modules/plugin/lint/eslint.config.mjs +30 -0
- package/modules/plugin/lint/pint.json +11 -0
- package/modules/plugin/prompts.js +29 -0
- package/modules/plugin/templates/.lando.yml.hbs +15 -0
- package/modules/plugin/templates/composer.json.hbs +14 -0
- package/modules/plugin/templates/plugin.php.hbs +15 -0
- package/modules/sage/index.js +139 -15
- package/modules/sage/lint/.prettierrc.json +12 -0
- package/modules/sage/lint/.stylelintrc.json +7 -0
- package/modules/sage/lint/eslint.config.mjs +30 -0
- package/modules/sage/lint/pint.json +11 -0
- package/modules/sage/prompts.js +22 -1
- package/modules/sage/templates/.devcontainer/devcontainer.json.hbs +7 -0
- package/modules/sage/templates/.devcontainer/docker-compose.override.yml.hbs +6 -0
- package/modules/sage/templates/.devcontainer/post-create.sh.hbs +11 -0
- package/modules/sage/templates/.lando.yml.hbs +43 -45
- package/modules/sage/templates/server/cmd/setup-sage-node.sh.hbs +23 -0
- package/modules/sage/templates/server/cmd/setup-sage-php.sh.hbs +24 -0
- package/modules/sage/templates/theme/app/Blocks/.gitkeep.hbs +0 -0
- package/modules/sage/templates/theme/app/Fields/.gitkeep.hbs +0 -0
- package/modules/sage/templates/theme/composer.json.hbs +25 -3
- package/modules/sage/templates/theme/package.json.hbs +15 -3
- package/modules/sage/templates/theme/resources/views/blocks/.gitkeep.hbs +0 -0
- package/modules/sage/templates/theme/vite.config.js.hbs +55 -13
- package/modules/sage/templates/workspace.json.hbs +94 -6
- package/modules/skills/index.js +18 -0
- package/modules/skills/prompts.js +21 -0
- package/modules/test/index.js +19 -0
- package/modules/test/prompts.js +8 -0
- package/modules/test/templates/composer.json.hbs +16 -0
- package/modules/test/templates/package.json.hbs +11 -0
- package/modules/test/templates/playwright.config.js.hbs +29 -0
- package/modules/test/tests/Pest.php +39 -0
- package/modules/test/tests/SmokeTest.php +15 -0
- package/modules/test/tests/e2e/example.spec.js +11 -0
- package/modules/test/tests/e2e/helpers/loginHelper.js +40 -0
- package/package.json +1 -1
- package/templates/.devcontainer/Dockerfile.hbs +24 -0
- package/templates/.devcontainer/config/nginx.conf +23 -0
- package/templates/.devcontainer/config/nginx.conf.hbs +23 -0
- package/templates/.devcontainer/devcontainer.json.hbs +29 -0
- package/templates/.devcontainer/docker-compose.yml.hbs +73 -0
- package/templates/.devcontainer/setup.sh.hbs +17 -0
- package/templates/.env.hbs +38 -15
- package/templates/.gitignore.hbs +84 -13
- package/templates/.lando.yml.hbs +61 -17
- package/templates/README.md.hbs +23 -7
- package/templates/composer.json.hbs +60 -12
- package/templates/package.json.hbs +0 -2
- package/templates/server/cmd/install-wp.sh.hbs +54 -43
- package/templates/server/cmd/setup-node.sh.hbs +11 -0
- package/templates/server/cmd/setup-php.sh.hbs +14 -0
- package/templates/server/www/vhosts.conf.hbs +54 -17
- package/templates/workspace.json.hbs +57 -1
- package/templates/wp-cli.yml.hbs +1 -0
- package/modules/lint/.eslintignore +0 -36
- package/modules/lint/.eslintrc.json +0 -8
- package/modules/lint/.stylelintignore +0 -19
- package/modules/lint/.stylelintrc.json +0 -9
- package/modules/lint/pint.json +0 -26
package/templates/.gitignore.hbs
CHANGED
|
@@ -1,13 +1,84 @@
|
|
|
1
|
-
# WordPress
|
|
2
|
-
|
|
3
|
-
content/
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
# WordPress
|
|
2
|
+
wp/
|
|
3
|
+
content/uploads/*
|
|
4
|
+
!content/uploads/.gitkeep
|
|
5
|
+
content/upgrade/*
|
|
6
|
+
content/backup-db/*
|
|
7
|
+
content/backups/*
|
|
8
|
+
content/blogs.dir/*
|
|
9
|
+
content/cache/*
|
|
10
|
+
content/advanced-cache.php
|
|
11
|
+
content/wp-cache-config.php
|
|
12
|
+
content/plugins/*
|
|
13
|
+
!content/plugins/.gitkeep
|
|
14
|
+
content/themes/*
|
|
15
|
+
content/languages/*
|
|
16
|
+
!content/languages/.gitkeep
|
|
17
|
+
content/mu-plugins/*
|
|
18
|
+
!content/mu-plugins/.gitkeep
|
|
19
|
+
|
|
20
|
+
# Theme{{#if enable_sage}}
|
|
21
|
+
!content/themes/{{projectName}}{{/if}}
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
# Composer
|
|
25
|
+
vendor/
|
|
26
|
+
composer.phar
|
|
27
|
+
|
|
28
|
+
# Node.js
|
|
29
|
+
node_modules/
|
|
30
|
+
npm-debug.log*
|
|
31
|
+
yarn-debug.log*
|
|
32
|
+
yarn-error.log*
|
|
33
|
+
.npm
|
|
34
|
+
.yarn-integrity
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
# IDE/Editor
|
|
38
|
+
*.swp
|
|
39
|
+
*.swo
|
|
40
|
+
*~
|
|
41
|
+
|
|
42
|
+
# OS
|
|
43
|
+
.DS_Store
|
|
44
|
+
.DS_Store?
|
|
45
|
+
._*
|
|
46
|
+
.Spotlight-V100
|
|
47
|
+
.Trashes
|
|
48
|
+
ehthumbs.db
|
|
49
|
+
Thumbs.db
|
|
50
|
+
|
|
51
|
+
# Logs
|
|
52
|
+
*.log
|
|
53
|
+
logs/
|
|
54
|
+
|
|
55
|
+
# Temporary files
|
|
56
|
+
*.tmp
|
|
57
|
+
*.temp
|
|
58
|
+
.cache/
|
|
59
|
+
|
|
60
|
+
# Build artifacts
|
|
61
|
+
dist/
|
|
62
|
+
build/
|
|
63
|
+
public/build/
|
|
64
|
+
|
|
65
|
+
# Database
|
|
66
|
+
*.sql
|
|
67
|
+
*.sqlite
|
|
68
|
+
|
|
69
|
+
# Backup files
|
|
70
|
+
*.bak
|
|
71
|
+
*.backup
|
|
72
|
+
*.old
|
|
73
|
+
|
|
74
|
+
# Lando
|
|
75
|
+
.lando.local.yml
|
|
76
|
+
|
|
77
|
+
# PHP
|
|
78
|
+
*.php~
|
|
79
|
+
*.php.bak
|
|
80
|
+
php_errors.log
|
|
81
|
+
|
|
82
|
+
# Testing
|
|
83
|
+
coverage/
|
|
84
|
+
.phpunit.result.cache
|
package/templates/.lando.yml.hbs
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
name: {{projectName}}
|
|
2
2
|
recipe: wordpress
|
|
3
|
+
env_file:
|
|
4
|
+
- .env
|
|
5
|
+
excludes:
|
|
6
|
+
- vendor
|
|
7
|
+
- node_modules
|
|
3
8
|
config:
|
|
4
9
|
webroot: ./
|
|
5
10
|
via: nginx
|
|
6
|
-
php: "
|
|
11
|
+
php: "8.4"
|
|
12
|
+
database: mariadb
|
|
13
|
+
cache: redis
|
|
7
14
|
xdebug: true
|
|
8
15
|
extra_php_extensions:
|
|
9
16
|
- bcmath
|
|
@@ -16,29 +23,66 @@ config:
|
|
|
16
23
|
config:
|
|
17
24
|
php: ./server/php/php.ini
|
|
18
25
|
vhosts: ./server/www/vhosts.conf
|
|
19
|
-
env_file:
|
|
20
|
-
- .env
|
|
21
26
|
services:
|
|
22
27
|
appserver:
|
|
23
|
-
|
|
24
|
-
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
build:
|
|
29
|
+
- bash /app/server/cmd/setup-php.sh
|
|
30
|
+
overrides:
|
|
31
|
+
extra_hosts:
|
|
32
|
+
- "host.docker.internal:host-gateway"
|
|
33
|
+
environment:
|
|
34
|
+
PHP_IDE_CONFIG: "${PHP_IDE_CONFIG:-serverName=appserver}"
|
|
35
|
+
XDEBUG_MODE: "${XDEBUG_MODE:-develop,debug}"
|
|
36
|
+
XDEBUG_CONFIG: "${XDEBUG_CONFIG:-client_host=host.docker.internal discover_client_host=true}"
|
|
37
|
+
build:
|
|
38
|
+
type: node:24
|
|
39
|
+
ssl: true
|
|
40
|
+
build:
|
|
41
|
+
- bash /app/server/cmd/setup-node.sh
|
|
42
|
+
scanner: false
|
|
43
|
+
overrides:
|
|
44
|
+
ports:
|
|
45
|
+
- 5173:5173
|
|
46
|
+
database:
|
|
47
|
+
type: mariadb:10.11
|
|
48
|
+
portforward: true
|
|
49
|
+
cache:
|
|
50
|
+
type: redis
|
|
51
|
+
portforward: true
|
|
52
|
+
mailhog:
|
|
53
|
+
type: mailhog
|
|
54
|
+
portforward: true
|
|
55
|
+
hogfrom:
|
|
56
|
+
- appserver
|
|
30
57
|
events:
|
|
31
58
|
post-start:
|
|
32
59
|
- bash ./server/cmd/install-wp.sh
|
|
33
|
-
- composer install --no-interaction --no-progress --optimize-autoloader
|
|
34
60
|
tooling:
|
|
35
|
-
|
|
61
|
+
node:
|
|
62
|
+
service: build
|
|
63
|
+
npm:
|
|
64
|
+
service: build
|
|
65
|
+
dev:
|
|
66
|
+
service: build
|
|
67
|
+
description: Run the Vite development server
|
|
68
|
+
cmd: npm run dev
|
|
69
|
+
redis-cli:
|
|
70
|
+
service: cache
|
|
71
|
+
acorn:
|
|
36
72
|
service: appserver
|
|
37
|
-
|
|
73
|
+
cmd: wp acorn
|
|
74
|
+
flush:
|
|
38
75
|
service: appserver
|
|
39
|
-
|
|
40
|
-
|
|
76
|
+
description: Flush WordPress and Redis caches
|
|
77
|
+
cmd:
|
|
78
|
+
- appserver: wp rewrite flush
|
|
79
|
+
- appserver: wp cache flush
|
|
80
|
+
- cache: redis-cli FLUSHDB
|
|
81
|
+
dir: /app
|
|
82
|
+
reset-deps:
|
|
41
83
|
service: appserver
|
|
84
|
+
description: Clean and reinstall all dependencies
|
|
42
85
|
cmd:
|
|
43
|
-
- rm -rf node_modules
|
|
44
|
-
-
|
|
86
|
+
- appserver: rm -rf /app/vendor /app/node_modules
|
|
87
|
+
- appserver: bash /app/server/cmd/setup-php.sh
|
|
88
|
+
- build: bash /app/server/cmd/setup-node.sh
|
package/templates/README.md.hbs
CHANGED
|
@@ -1,11 +1,27 @@
|
|
|
1
|
-
#
|
|
2
|
-
{{projectName}}
|
|
1
|
+
# {{projectName}}
|
|
3
2
|
|
|
4
|
-
Scaffolded by wp-devops.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
Scaffolded by wp-devops.
|
|
4
|
+
|
|
5
|
+
## 🧱 Stack
|
|
6
|
+
|
|
7
|
+
- PHP {{phpVersion}}
|
|
8
|
+
- Node.js {{nodeVersion}}
|
|
9
|
+
|
|
10
|
+
## 🧩 Blocos com ACF Composer
|
|
11
|
+
|
|
12
|
+
Quando Sage estiver habilitado, o projeto usa o fluxo de blocos via ACF Composer.
|
|
13
|
+
|
|
14
|
+
- Classes de blocos: `content/themes/{{projectName}}/app/Blocks`
|
|
15
|
+
- Fields do ACF: `content/themes/{{projectName}}/app/Fields`
|
|
16
|
+
- Views Blade dos blocos: `content/themes/{{projectName}}/resources/views/blocks`
|
|
17
|
+
|
|
18
|
+
Fluxo rapido:
|
|
19
|
+
1. Criar classe do bloco com `wp acorn make:component NomeDoBloco`.
|
|
20
|
+
2. Definir fields em `app/Fields` com ACF Composer.
|
|
21
|
+
3. Renderizar o bloco em `resources/views/blocks`.
|
|
22
|
+
|
|
23
|
+
Requisito: plugin Advanced Custom Fields (ACF) ativo no WordPress.
|
|
8
24
|
|
|
9
25
|
## 👤 Author
|
|
10
26
|
|
|
11
|
-
{{author}}
|
|
27
|
+
{{author}}
|
|
@@ -1,12 +1,60 @@
|
|
|
1
|
-
{
|
|
2
|
-
"
|
|
3
|
-
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
"
|
|
12
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "{{projectName}}/wordpress",
|
|
3
|
+
"type": "project",
|
|
4
|
+
"description": "{{projectDescription}}",
|
|
5
|
+
"authors": [
|
|
6
|
+
{
|
|
7
|
+
"name": "{{author}}",
|
|
8
|
+
"email": "{{authorEmail}}"
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
"repositories": {
|
|
12
|
+
"wpackagist": {
|
|
13
|
+
"type": "composer",
|
|
14
|
+
"url": "https://wpackagist.org"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"license": "MIT",
|
|
18
|
+
"require": {
|
|
19
|
+
"php": ">={{phpVersion}}",
|
|
20
|
+
"roots/wordpress": "{{wpCoreVersion}}",
|
|
21
|
+
"roots/bedrock-autoloader": "^1.0",
|
|
22
|
+
"inpsyde/wp-translation-downloader": "^2.5",
|
|
23
|
+
"vlucas/phpdotenv": "^5.5"
|
|
24
|
+
},
|
|
25
|
+
"config": {
|
|
26
|
+
"allow-plugins": {
|
|
27
|
+
"roots/wordpress-core-installer": true,
|
|
28
|
+
"inpsyde/wp-translation-downloader": true,
|
|
29
|
+
"composer/installers": true
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"extra": {
|
|
33
|
+
"wordpress-install-dir": "wp",
|
|
34
|
+
"installer-paths": {
|
|
35
|
+
"content/plugins/{$name}/": [
|
|
36
|
+
"type:wordpress-plugin"
|
|
37
|
+
],
|
|
38
|
+
"content/themes/{$name}/": [
|
|
39
|
+
"type:wordpress-theme"
|
|
40
|
+
],
|
|
41
|
+
"content/mu-plugins/{$name}/": [
|
|
42
|
+
"type:wordpress-muplugin"
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
"wp-translation-downloader": {
|
|
46
|
+
"languages": [
|
|
47
|
+
"pt_BR",
|
|
48
|
+
"en_US"
|
|
49
|
+
],
|
|
50
|
+
"languageRootDir": "content/languages",
|
|
51
|
+
"virtual-packages": [
|
|
52
|
+
{
|
|
53
|
+
"name": "wordpress/wordpress",
|
|
54
|
+
"type": "wordpress-core",
|
|
55
|
+
"version": "{{wpCoreVersion}}"
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -1,43 +1,54 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"$
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
--
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
echo
|
|
42
|
-
|
|
43
|
-
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
PROJECT_ROOT="${PROJECT_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)}"
|
|
5
|
+
WP_PATH="${WP_PATH:-${PROJECT_ROOT}/wp}"
|
|
6
|
+
|
|
7
|
+
# Read a value from .env — used when the variable is not exported into the shell environment
|
|
8
|
+
read_dotenv_var() {
|
|
9
|
+
local key="$1"
|
|
10
|
+
local env_file="${PROJECT_ROOT}/.env"
|
|
11
|
+
[ -f "${env_file}" ] || return 1
|
|
12
|
+
grep -E "^${key}=" "${env_file}" | head -n1 | cut -d'=' -f2- | sed "s/^['\"]//; s/['\"]$//"
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
# Resolve SITE_URL from environment or .env
|
|
16
|
+
SITE_URL="${WORDPRESS_SITE_URL:-${APP_URL:-}}"
|
|
17
|
+
if [ -z "${SITE_URL}" ]; then SITE_URL="$(read_dotenv_var WORDPRESS_SITE_URL || true)"; fi
|
|
18
|
+
if [ -z "${SITE_URL}" ]; then SITE_URL="$(read_dotenv_var APP_URL || true)"; fi
|
|
19
|
+
if [ -z "${SITE_URL}" ]; then SITE_URL="https://${PROJECT_DOMAIN:-$(read_dotenv_var PROJECT_DOMAIN || echo 'localhost')}"; fi
|
|
20
|
+
|
|
21
|
+
# WordPress core files are placed by `composer install` via roots/wordpress — no wp core download needed.
|
|
22
|
+
|
|
23
|
+
# Wait until the database is ready. Use PHP/PDO directly to avoid MariaDB CLI SSL negotiation issues.
|
|
24
|
+
echo "Waiting for database..."
|
|
25
|
+
DB_HOST="${WORDPRESS_DB_HOST:-database}"
|
|
26
|
+
DB_NAME="${WORDPRESS_DB_NAME:-wordpress}"
|
|
27
|
+
DB_USER="${WORDPRESS_DB_USER:-wordpress}"
|
|
28
|
+
DB_PASS="${WORDPRESS_DB_PASSWORD:-wordpress}"
|
|
29
|
+
max=30; i=0
|
|
30
|
+
until php -r "try { new PDO('mysql:host=${DB_HOST};dbname=${DB_NAME}', '${DB_USER}', '${DB_PASS}'); exit(0); } catch(Exception \$e) { exit(1); }" 2>/dev/null; do
|
|
31
|
+
i=$((i + 1))
|
|
32
|
+
[ "$i" -ge "$max" ] && echo "Database timeout after $((max * 2))s. Aborting." && exit 1
|
|
33
|
+
sleep 2
|
|
34
|
+
done
|
|
35
|
+
|
|
36
|
+
if wp core is-installed --path="${WP_PATH}" 2>/dev/null; then
|
|
37
|
+
echo "WordPress already installed at ${SITE_URL}"
|
|
38
|
+
exit 0
|
|
39
|
+
fi
|
|
40
|
+
|
|
41
|
+
echo "Installing WordPress..."
|
|
42
|
+
|
|
43
|
+
wp core install \
|
|
44
|
+
--url="${SITE_URL}" \
|
|
45
|
+
--title="${PROJECT_NAME:-WordPress Development}" \
|
|
46
|
+
--admin_user="${WORDPRESS_ADMIN_USER:-admin}" \
|
|
47
|
+
--admin_password="${WORDPRESS_ADMIN_PASSWORD:-admin}" \
|
|
48
|
+
--admin_email="${WORDPRESS_ADMIN_EMAIL:-admin@example.com}" \
|
|
49
|
+
--skip-email \
|
|
50
|
+
--path="${WP_PATH}"
|
|
51
|
+
|
|
52
|
+
wp rewrite structure '/%postname%/' --hard --path="${WP_PATH}"
|
|
53
|
+
|
|
54
|
+
echo "WordPress installed successfully."
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Installs root Node.js dependencies via npm.
|
|
3
|
+
# Invoked from: Lando (build service build step), Devcontainer (setup.sh), CI/CD.
|
|
4
|
+
set -euo pipefail
|
|
5
|
+
|
|
6
|
+
PROJECT_ROOT="${PROJECT_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)}"
|
|
7
|
+
|
|
8
|
+
echo "Installing Node.js dependencies..."
|
|
9
|
+
cd "${PROJECT_ROOT}"
|
|
10
|
+
npm install
|
|
11
|
+
echo "Node.js dependencies installed."
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Installs root PHP dependencies via Composer.
|
|
3
|
+
# Invoked from: Lando (appserver build step), Devcontainer (setup.sh), CI/CD.
|
|
4
|
+
set -euo pipefail
|
|
5
|
+
|
|
6
|
+
PROJECT_ROOT="${PROJECT_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)}"
|
|
7
|
+
|
|
8
|
+
echo "Installing PHP dependencies..."
|
|
9
|
+
composer install \
|
|
10
|
+
--working-dir="${PROJECT_ROOT}" \
|
|
11
|
+
--no-interaction \
|
|
12
|
+
--no-progress \
|
|
13
|
+
--optimize-autoloader
|
|
14
|
+
echo "PHP dependencies installed."
|
|
@@ -1,21 +1,58 @@
|
|
|
1
|
-
upstream php {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
upstream php {
|
|
2
|
+
server fpm:9000;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
server {
|
|
6
|
+
listen 80 default_server;
|
|
7
|
+
listen 443 ssl;
|
|
8
|
+
server_name localhost;
|
|
9
|
+
|
|
10
|
+
ssl_certificate /certs/cert.crt;
|
|
11
|
+
ssl_certificate_key /certs/cert.key;
|
|
12
|
+
ssl_verify_client off;
|
|
13
|
+
ssl_session_cache shared:SSL:1m;
|
|
14
|
+
ssl_session_timeout 5m;
|
|
15
|
+
ssl_ciphers HIGH:!aNULL:!MD5;
|
|
16
|
+
ssl_prefer_server_ciphers on;
|
|
17
|
+
port_in_redirect off;
|
|
18
|
+
client_max_body_size 100M;
|
|
19
|
+
|
|
20
|
+
root "/app";
|
|
21
|
+
index index.php;
|
|
22
|
+
|
|
23
|
+
location = /favicon.ico {
|
|
24
|
+
log_not_found off;
|
|
25
|
+
access_log off;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
location = /robots.txt {
|
|
29
|
+
allow all;
|
|
30
|
+
log_not_found off;
|
|
31
|
+
access_log off;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
add_header Server-Timing 'php=$request_time; db=$upstream_response_time';
|
|
10
35
|
|
|
11
36
|
{{#if useRocket}}
|
|
12
|
-
|
|
37
|
+
include /app/server/www/rocket.conf;
|
|
13
38
|
{{/if}}
|
|
14
39
|
|
|
15
|
-
location / {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
40
|
+
location / {
|
|
41
|
+
try_files $uri $uri/ /index.php?$args;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
location ~ \.php$ {
|
|
45
|
+
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
|
46
|
+
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;
|
|
47
|
+
include fastcgi_params;
|
|
48
|
+
fastcgi_intercept_errors on;
|
|
49
|
+
fastcgi_pass php;
|
|
50
|
+
fastcgi_buffers 16 16k;
|
|
51
|
+
fastcgi_buffer_size 32k;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
|
|
55
|
+
expires max;
|
|
56
|
+
log_not_found off;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
}
|
|
7
7
|
],
|
|
8
8
|
"settings": {
|
|
9
|
-
"git.inputValidation":
|
|
9
|
+
"git.inputValidation": true,
|
|
10
10
|
"git.inputValidationLength": 100,
|
|
11
11
|
"git.inputValidationSubjectLength": 100,
|
|
12
12
|
"git.confirmSync": false,
|
|
@@ -171,6 +171,62 @@
|
|
|
171
171
|
"panel": "shared"
|
|
172
172
|
},
|
|
173
173
|
"problemMatcher": []
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"label": "🐳 Devcontainer: Up",
|
|
177
|
+
"type": "shell",
|
|
178
|
+
"command": "docker",
|
|
179
|
+
"args": ["compose", "-f", ".devcontainer/docker-compose.yml", "up", "-d", "--build"],
|
|
180
|
+
"group": "build",
|
|
181
|
+
"presentation": {
|
|
182
|
+
"echo": true,
|
|
183
|
+
"reveal": "always",
|
|
184
|
+
"focus": false,
|
|
185
|
+
"panel": "shared"
|
|
186
|
+
},
|
|
187
|
+
"problemMatcher": []
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"label": "🐳 Devcontainer: Down",
|
|
191
|
+
"type": "shell",
|
|
192
|
+
"command": "docker",
|
|
193
|
+
"args": ["compose", "-f", ".devcontainer/docker-compose.yml", "down"],
|
|
194
|
+
"group": "build",
|
|
195
|
+
"presentation": {
|
|
196
|
+
"echo": true,
|
|
197
|
+
"reveal": "always",
|
|
198
|
+
"focus": false,
|
|
199
|
+
"panel": "shared"
|
|
200
|
+
},
|
|
201
|
+
"problemMatcher": []
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"label": "🐳 Devcontainer: Rebuild",
|
|
205
|
+
"type": "shell",
|
|
206
|
+
"command": "docker",
|
|
207
|
+
"args": ["compose", "-f", ".devcontainer/docker-compose.yml", "up", "-d", "--build", "--force-recreate"],
|
|
208
|
+
"group": "build",
|
|
209
|
+
"presentation": {
|
|
210
|
+
"echo": true,
|
|
211
|
+
"reveal": "always",
|
|
212
|
+
"focus": false,
|
|
213
|
+
"panel": "shared"
|
|
214
|
+
},
|
|
215
|
+
"problemMatcher": []
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"label": "🐳 Devcontainer: Bootstrap",
|
|
219
|
+
"type": "shell",
|
|
220
|
+
"command": "docker",
|
|
221
|
+
"args": ["compose", "-f", ".devcontainer/docker-compose.yml", "exec", "wordpress", "bash", ".devcontainer/setup.sh"],
|
|
222
|
+
"group": "build",
|
|
223
|
+
"presentation": {
|
|
224
|
+
"echo": true,
|
|
225
|
+
"reveal": "always",
|
|
226
|
+
"focus": false,
|
|
227
|
+
"panel": "shared"
|
|
228
|
+
},
|
|
229
|
+
"problemMatcher": []
|
|
174
230
|
}
|
|
175
231
|
]
|
|
176
232
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
path: wp
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# Node and vendor
|
|
2
|
-
node_modules/
|
|
3
|
-
vendor/
|
|
4
|
-
dist/
|
|
5
|
-
build/
|
|
6
|
-
|
|
7
|
-
# Tests
|
|
8
|
-
__tests__/
|
|
9
|
-
__test__/
|
|
10
|
-
*.test.js
|
|
11
|
-
*.spec.js
|
|
12
|
-
|
|
13
|
-
# IDE and system
|
|
14
|
-
.vscode/
|
|
15
|
-
.idea/
|
|
16
|
-
.history/
|
|
17
|
-
.cursor/
|
|
18
|
-
|
|
19
|
-
# WordPress and uploads
|
|
20
|
-
wp/
|
|
21
|
-
wp-content/uploads/
|
|
22
|
-
wp-content/upgrade/
|
|
23
|
-
wp-content/cache/
|
|
24
|
-
wp-content/ai1wm-backups/
|
|
25
|
-
|
|
26
|
-
# Misc
|
|
27
|
-
*.min.js
|
|
28
|
-
*.min.css
|
|
29
|
-
*.log
|
|
30
|
-
.cache/
|
|
31
|
-
.next/
|
|
32
|
-
out/
|
|
33
|
-
coverage/
|
|
34
|
-
.nyc_output/
|
|
35
|
-
.env
|
|
36
|
-
.env.*
|