@codigodoleo/wp-kit 1.0.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/.cspell.json +104 -0
- package/.editorconfig +13 -0
- package/.eslintignore +3 -0
- package/.eslintrc.json +24 -0
- package/.github/workflows/publish-npm.yml +32 -0
- package/.github/workflows/release-please.yml +25 -0
- package/.gitkeep +0 -0
- package/.husky/_/post-merge +0 -0
- package/.prettierignore +4 -0
- package/.prettierrc +8 -0
- package/.vscode/settings.json +19 -0
- package/CHANGELOG.md +47 -0
- package/README.md +115 -0
- package/VSCODE_EXTENSIONS.md +11 -0
- package/bin/index.js +4 -0
- package/docs/HOOKS-SYSTEM.md +172 -0
- package/git-deploy.sh +74 -0
- package/index.php +17 -0
- package/lib/cli.js +15 -0
- package/lib/commands/init.js +132 -0
- package/lib/core/generator.js +261 -0
- package/lib/core/hook-manager.js +172 -0
- package/lib/core/infer-ci-capabilities.js +119 -0
- package/lib/prompts/index.js +105 -0
- package/lib/prompts/loadModulePrompts.js +27 -0
- package/lib/utils/generate-from-template.js +17 -0
- package/lib/utils/git.js +17 -0
- package/lib/utils/logger.js +28 -0
- package/modules/deploy/index.js +39 -0
- package/modules/deploy/prompts.js +27 -0
- package/modules/deploy/templates/.github/workflows/ci.yml.hbs +103 -0
- package/modules/deploy/templates/.gitlab/gitlab-ci.yml.hbs +154 -0
- package/modules/deploy/templates/bitbucket-pipelines.yml.hbs +97 -0
- package/modules/docs/index.js +3 -0
- package/modules/docs/prompts.js +8 -0
- package/modules/docs/templates/README.md.hbs +160 -0
- package/modules/docs/templates/docs/Arquitetura.md +399 -0
- package/modules/docs/templates/docs/Deploy-Pipeline.md +113 -0
- package/modules/docs/templates/docs/Desenvolvimento.md +1116 -0
- package/modules/docs/templates/docs/Getting-Started.md +493 -0
- package/modules/docs/templates/docs/Infraestrutura.md +211 -0
- package/modules/docs/templates/docs/Monitoramento.md +302 -0
- package/modules/docs/templates/docs/Sync-the-Production-DB-with-the-Staging-DB.md +8 -0
- package/modules/docs/templates/docs/Troubleshooting.md +3 -0
- package/modules/git/.commitlintrc.json +136 -0
- package/modules/git/.github/PULL_REQUEST_TEMPLATE.md +42 -0
- package/modules/git/.gitlab/merge_request_templates/default.md +42 -0
- package/modules/git/.gitmessage +29 -0
- package/modules/git/.husky/commit-msg +4 -0
- package/modules/git/.husky/pre-commit +27 -0
- package/modules/git/.lintstagedrc.json +7 -0
- package/modules/git/.vscode/commit-instructions.md +59 -0
- package/modules/git/.vscode/conventional-commits.code-snippets +62 -0
- package/modules/git/.vscode/copilot.json +39 -0
- package/modules/git/docs/CONVENTIONAL-COMMITS.md +131 -0
- package/modules/git/index.js +137 -0
- package/modules/git/prompts.js +23 -0
- package/modules/git/templates/.lando.yml.hbs +13 -0
- package/modules/git/templates/package.json.hbs +15 -0
- package/modules/git/templates/workspace.json.hbs +114 -0
- package/modules/lint/.eslintignore +36 -0
- package/modules/lint/.eslintrc.json +8 -0
- package/modules/lint/.prettierignore +36 -0
- package/modules/lint/.prettierrc.json +29 -0
- package/modules/lint/.stylelintignore +19 -0
- package/modules/lint/.stylelintrc.json +9 -0
- package/modules/lint/index.js +15 -0
- package/modules/lint/pint.json +26 -0
- package/modules/lint/prompts.js +16 -0
- package/modules/lint/templates/.lando.yml.hbs +10 -0
- package/modules/lint/templates/package.json.hbs +16 -0
- package/modules/lint/templates/workspace.json.hbs +56 -0
- package/modules/php/index.js +3 -0
- package/modules/php/prompts.js +8 -0
- package/modules/php/scripts/php-wrapper.sh +38 -0
- package/modules/php/scripts/pint-wrapper.sh +44 -0
- package/modules/php/templates/.lando.yml.hbs +11 -0
- package/modules/php/templates/composer.json.hbs +6 -0
- package/modules/php/templates/workspace.json.hbs +74 -0
- package/modules/redis/prompts.js +8 -0
- package/modules/redis/templates/.lando.yml.hbs +8 -0
- package/modules/sage/index.js +20 -0
- package/modules/sage/prompts.js +16 -0
- package/modules/sage/templates/.lando.yml.hbs +64 -0
- package/modules/sage/templates/theme/composer.json.hbs +18 -0
- package/modules/sage/templates/theme/package.json.hbs +11 -0
- package/modules/sage/templates/theme/style.css.hbs +13 -0
- package/modules/sage/templates/theme/vite.config.js.hbs +53 -0
- package/modules/sage/templates/workspace.json.hbs +67 -0
- package/modules/test-directory/assets/module-file.txt +1 -0
- package/modules/test-directory/index.js +19 -0
- package/modules/test-directory/prompts.js +8 -0
- package/modules/test-directory/test-assets/file1.txt +1 -0
- package/modules/test-directory/test-assets/file2.txt +1 -0
- package/modules/test-directory/test-assets/subfolder/config.json +4 -0
- package/package.json +54 -0
- package/release-please-config.json +17 -0
- package/server/php/php.ini +48 -0
- package/server/www/rocket.conf +283 -0
- package/templates/.editorconfig.hbs +39 -0
- package/templates/.env.hbs +48 -0
- package/templates/.gitignore.hbs +86 -0
- package/templates/.lando.yml.hbs +44 -0
- package/templates/README.md.hbs +12 -0
- package/templates/composer.json.hbs +60 -0
- package/templates/package.json.hbs +47 -0
- package/templates/server/cmd/install-wp.sh.hbs +58 -0
- package/templates/server/www/vhosts.conf.hbs +71 -0
- package/templates/workspace.json.hbs +177 -0
- package/test-copy-directory.js +43 -0
- package/test-overwrite.js +45 -0
- package/wp-config.php +190 -0
|
@@ -0,0 +1,493 @@
|
|
|
1
|
+
# 🚀 Getting Started
|
|
2
|
+
|
|
3
|
+
Guia completo para configurar o ambiente de desenvolvimento local do site Pipefy.
|
|
4
|
+
|
|
5
|
+
## 📋 **Pré-requisitos**
|
|
6
|
+
|
|
7
|
+
### Obrigatórios
|
|
8
|
+
- **[Lando](https://lando.dev/)** (v3.0+) - Ambiente de desenvolvimento local
|
|
9
|
+
- **[Docker](https://docker.com/)** (v20.0+) - Containerização
|
|
10
|
+
- **[Git](https://git-scm.com/)** - Controle de versão
|
|
11
|
+
- **Acesso ao GitLab** - Para download do banco de dados
|
|
12
|
+
|
|
13
|
+
### Recomendados
|
|
14
|
+
- **[Visual Studio Code](https://code.visualstudio.com/)** - Editor recomendado
|
|
15
|
+
- **[GitLab CLI](https://gitlab.com/gitlab-org/cli)** - Para interação com GitLab
|
|
16
|
+
|
|
17
|
+
### Verificação dos Pré-requisitos
|
|
18
|
+
```bash
|
|
19
|
+
# Verificar instalações
|
|
20
|
+
lando version # v3.0+
|
|
21
|
+
docker --version # v20.0+
|
|
22
|
+
git --version # Qualquer versão recente
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## 🏁 **Setup Inicial**
|
|
26
|
+
|
|
27
|
+
### 1. **Clone do Repositório**
|
|
28
|
+
```bash
|
|
29
|
+
# SSH (recomendado)
|
|
30
|
+
git clone git@gitlab.com:pipefy/wordpress/pipefy-website.git
|
|
31
|
+
cd pipefy-website
|
|
32
|
+
|
|
33
|
+
# HTTPS (alternativo)
|
|
34
|
+
git clone https://gitlab.com/pipefy/wordpress/pipefy-website.git
|
|
35
|
+
cd pipefy-website
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### 2. **📥 Download do Banco de Dados (OBRIGATÓRIO)**
|
|
39
|
+
|
|
40
|
+
**⚠️ Importante**: Antes de inicializar o Lando, você precisa baixar o banco de dados de produção.
|
|
41
|
+
|
|
42
|
+
#### No GitLab:
|
|
43
|
+
1. **Acesse**: [CI/CD → Schedules](https://gitlab.com/pipefy/wordpress/pipefy-website/-/pipeline_schedules)
|
|
44
|
+
2. **Execute**: Clique no botão ▶️ (play) no pipeline **"Download Prod Database"**
|
|
45
|
+
3. **Aguarde**: O pipeline executar completamente
|
|
46
|
+
4. **Acesse**: Recarregue a página (Ctrl+F5) e clique no **Pipeline ID** na coluna "Last Pipeline"
|
|
47
|
+
5. **Download**: Na aba **"Jobs"**, clique no ícone de download 📥 do artifact
|
|
48
|
+
6. **Extraia**: Descompacte o arquivo baixado
|
|
49
|
+
7. **Mova**: Coloque o arquivo `.sql` na pasta `database/` na raiz do projeto
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# Estrutura esperada após download
|
|
53
|
+
pipefy-website/
|
|
54
|
+
├── 📂 database/
|
|
55
|
+
│ └── 📄 production-dump-YYYY-MM-DD.sql # Arquivo baixado
|
|
56
|
+
├── 📄 .lando.yml
|
|
57
|
+
└── ... outros arquivos
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### 3. **Inicialização do Lando**
|
|
61
|
+
```bash
|
|
62
|
+
# Inicializar ambiente
|
|
63
|
+
lando start
|
|
64
|
+
|
|
65
|
+
# Verificar status
|
|
66
|
+
lando info
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 4. **💾 Restauração do Banco de Dados**
|
|
70
|
+
```bash
|
|
71
|
+
# Importar banco de produção ANTES da inicialização
|
|
72
|
+
lando db-import database/production-dump-YYYY-MM-DD.sql
|
|
73
|
+
|
|
74
|
+
# Verificar importação
|
|
75
|
+
lando wp db check
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### 5. **⚡ Configuração WordPress (Tooling Customizado)**
|
|
79
|
+
```bash
|
|
80
|
+
# Usar nosso tooling para inicialização
|
|
81
|
+
lando init-wp --user=seu-email@pipefy.com
|
|
82
|
+
|
|
83
|
+
# Aguardar conclusão da configuração
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 6. **Verificação do Setup**
|
|
87
|
+
```bash
|
|
88
|
+
# Verificar se WordPress está funcionando
|
|
89
|
+
curl -I https://pipefy.lndo.site
|
|
90
|
+
|
|
91
|
+
# Deve retornar HTTP/2 200
|
|
92
|
+
|
|
93
|
+
# Verificar se dados de produção estão disponíveis
|
|
94
|
+
lando wp post list --post_type=page --posts_per_page=5
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## 🔄 **Sincronização com Produção**
|
|
98
|
+
|
|
99
|
+
> **📌 Nota Importante**: Sempre que precisar sincronizar seu ambiente local com a produção (dados atualizados, novos conteúdos, etc.), repita os seguintes passos:
|
|
100
|
+
|
|
101
|
+
### Processo de Sincronização:
|
|
102
|
+
```bash
|
|
103
|
+
# 1. Download do banco atualizado
|
|
104
|
+
# Repita os passos da seção "Download do Banco de Dados"
|
|
105
|
+
|
|
106
|
+
# 2. Restauração do banco
|
|
107
|
+
lando db-import database/production-dump-NOVA-DATA.sql
|
|
108
|
+
|
|
109
|
+
# 3. Re-inicialização usando nosso tooling
|
|
110
|
+
lando init-wp --user=seu-email@pipefy.com
|
|
111
|
+
|
|
112
|
+
# 4. Verificação
|
|
113
|
+
lando wp post list --post_type=page --posts_per_page=5
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Quando Sincronizar:
|
|
117
|
+
- **🗓️ Semanalmente**: Para ter conteúdo sempre atualizado
|
|
118
|
+
- **🚀 Antes de features**: Que dependem de dados específicos de produção
|
|
119
|
+
- **🔧 Troubleshooting**: Quando houver problemas com dados locais
|
|
120
|
+
- **📊 Testes**: Quando precisar testar com dados reais
|
|
121
|
+
|
|
122
|
+
## 🌐 **Acessos Locais**
|
|
123
|
+
|
|
124
|
+
| Serviço | URL | Credenciais |
|
|
125
|
+
|---------|-----|-------------|
|
|
126
|
+
| **Site Frontend** | [https://pipefy.lndo.site](https://pipefy.lndo.site) | - |
|
|
127
|
+
| **WordPress Admin** | [https://pipefy.lndo.site/wp-admin](https://pipefy.lndo.site/wp-admin) | Definidas no setup |
|
|
128
|
+
| **Database (phpMyAdmin)** | [https://pipefy.lndo.site:8080](https://pipefy.lndo.site:8080) | Ver `.lando.yml` |
|
|
129
|
+
| **MailHog** | [https://pipefy.lndo.site:8025](https://pipefy.lndo.site:8025) | - |
|
|
130
|
+
|
|
131
|
+
## 🛠️ **Comandos Essenciais**
|
|
132
|
+
|
|
133
|
+
### Lando Básico
|
|
134
|
+
```bash
|
|
135
|
+
# Iniciar ambiente
|
|
136
|
+
lando start
|
|
137
|
+
|
|
138
|
+
# Parar ambiente
|
|
139
|
+
lando stop
|
|
140
|
+
|
|
141
|
+
# Reiniciar ambiente
|
|
142
|
+
lando restart
|
|
143
|
+
|
|
144
|
+
# Reconstruir ambiente (quando mudar .lando.yml)
|
|
145
|
+
lando rebuild
|
|
146
|
+
|
|
147
|
+
# Destruir ambiente
|
|
148
|
+
lando destroy
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### ⚡ **Toolings Customizados (Configurados no .lando.yml)**
|
|
152
|
+
```bash
|
|
153
|
+
# Inicialização completa do WordPress
|
|
154
|
+
lando init-wp --user=seu-email@pipefy.com
|
|
155
|
+
|
|
156
|
+
# Acesso ao bash do container
|
|
157
|
+
lando bash
|
|
158
|
+
|
|
159
|
+
# Logs em tempo real
|
|
160
|
+
lando logs-live
|
|
161
|
+
|
|
162
|
+
# Backup rápido do banco
|
|
163
|
+
lando backup-db
|
|
164
|
+
|
|
165
|
+
# Limpeza de cache
|
|
166
|
+
lando clear-cache
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### WordPress via Lando
|
|
170
|
+
```bash
|
|
171
|
+
# WP-CLI (todas as ferramentas dentro do container)
|
|
172
|
+
lando wp --help
|
|
173
|
+
lando wp user list
|
|
174
|
+
lando wp plugin list
|
|
175
|
+
|
|
176
|
+
# Logs
|
|
177
|
+
lando logs
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Database
|
|
181
|
+
```bash
|
|
182
|
+
# Backup usando nosso tooling
|
|
183
|
+
lando backup-db
|
|
184
|
+
|
|
185
|
+
# Restaurar banco específico
|
|
186
|
+
lando db-import database/production-dump-YYYY-MM-DD.sql
|
|
187
|
+
|
|
188
|
+
# Acesso direto ao MySQL
|
|
189
|
+
lando mysql
|
|
190
|
+
|
|
191
|
+
# Verificar integridade do banco
|
|
192
|
+
lando wp db check
|
|
193
|
+
|
|
194
|
+
# Reparar tabelas (se necessário)
|
|
195
|
+
lando wp db repair
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### Ferramentas de Build
|
|
199
|
+
```bash
|
|
200
|
+
# Node.js/NPM dentro do container
|
|
201
|
+
lando node --version
|
|
202
|
+
lando npm --version
|
|
203
|
+
|
|
204
|
+
# Build usando nossos toolings (se configurado)
|
|
205
|
+
lando build-theme
|
|
206
|
+
lando watch-theme
|
|
207
|
+
|
|
208
|
+
# Ou comandos tradicionais para o tema
|
|
209
|
+
lando bash -c "cd /app/dist/wp-content/themes/pipefy-2020 && npm install"
|
|
210
|
+
lando bash -c "cd /app/dist/wp-content/themes/pipefy-2020 && npm run dev"
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
## 📁 **Estrutura de Desenvolvimento**
|
|
214
|
+
|
|
215
|
+
### Arquivos Importantes
|
|
216
|
+
```
|
|
217
|
+
pipefy-website/
|
|
218
|
+
├── 📄 .lando.yml # ⭐ Configuração com toolings customizados
|
|
219
|
+
├── 📄 .env.example # Variáveis de ambiente exemplo
|
|
220
|
+
├── 📂 database/ # Dumps do banco de dados
|
|
221
|
+
│ ├── 📄 production-dump-2025-06-05.sql
|
|
222
|
+
│ ├── 📄 production-dump-2025-05-29.sql
|
|
223
|
+
│ └── 📄 backup-local.sql
|
|
224
|
+
├── 📂 development/
|
|
225
|
+
│ ├── 📄 config/ # Configurações específicas
|
|
226
|
+
│ └── 📄 scripts/ # Scripts de automação (usados pelos toolings)
|
|
227
|
+
├── 📂 dist/ # WordPress core
|
|
228
|
+
│ └── 📂 wp-content/
|
|
229
|
+
│ ├── 📂 themes/pipefy-2020/ # Tema principal
|
|
230
|
+
│ ├── 📂 plugins/ # Plugins
|
|
231
|
+
│ └── 📂 uploads/ # Media files
|
|
232
|
+
└── 📂 logs/ # Logs locais
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### Workflow de Desenvolvimento
|
|
236
|
+
```bash
|
|
237
|
+
# 1. Sincronizar com produção (quando necessário)
|
|
238
|
+
# Baixar nova versão via GitLab CI/CD → Schedules
|
|
239
|
+
lando db-import database/production-dump-YYYY-MM-DD.sql
|
|
240
|
+
|
|
241
|
+
# 2. Criar nova feature
|
|
242
|
+
git checkout development
|
|
243
|
+
git pull origin development
|
|
244
|
+
git checkout -b feature/nova-funcionalidade
|
|
245
|
+
|
|
246
|
+
# 3. Desenvolver localmente
|
|
247
|
+
# Fazer alterações nos arquivos
|
|
248
|
+
# Usar nossos toolings para build/watch se necessário
|
|
249
|
+
lando watch-theme # Se configurado
|
|
250
|
+
|
|
251
|
+
# 4. Testar em https://pipefy.lndo.site
|
|
252
|
+
|
|
253
|
+
# 5. Commit e push
|
|
254
|
+
git add .
|
|
255
|
+
git commit -m "feat: adicionar nova funcionalidade"
|
|
256
|
+
git push origin feature/nova-funcionalidade
|
|
257
|
+
|
|
258
|
+
# 6. Criar Merge Request
|
|
259
|
+
# Via GitLab interface ou CLI
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
## 🔧 **Configurações Avançadas**
|
|
263
|
+
|
|
264
|
+
### Variáveis de Ambiente
|
|
265
|
+
```bash
|
|
266
|
+
# Copiar arquivo exemplo
|
|
267
|
+
cp .env.example .env
|
|
268
|
+
|
|
269
|
+
# Editar conforme necessário
|
|
270
|
+
nano .env
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### Customizar .lando.yml (se necessário)
|
|
274
|
+
```yaml
|
|
275
|
+
# Exemplo de override local
|
|
276
|
+
# .lando.local.yml
|
|
277
|
+
services:
|
|
278
|
+
appserver:
|
|
279
|
+
xdebug: true
|
|
280
|
+
config:
|
|
281
|
+
php: development/config/php.ini
|
|
282
|
+
|
|
283
|
+
# Adicionar novos toolings
|
|
284
|
+
tooling:
|
|
285
|
+
meu-comando:
|
|
286
|
+
service: appserver
|
|
287
|
+
cmd: /app/development/scripts/meu-script.sh
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
### Xdebug (Debugging)
|
|
291
|
+
```bash
|
|
292
|
+
# Habilitar Xdebug
|
|
293
|
+
lando xdebug-on
|
|
294
|
+
|
|
295
|
+
# Desabilitar Xdebug
|
|
296
|
+
lando xdebug-off
|
|
297
|
+
|
|
298
|
+
# Status do Xdebug
|
|
299
|
+
lando php -m | grep xdebug
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
## 🎨 **Desenvolvimento do Tema**
|
|
303
|
+
|
|
304
|
+
### Estrutura do Tema Pipefy 2020
|
|
305
|
+
```
|
|
306
|
+
themes/pipefy-2020/
|
|
307
|
+
├── 📄 style.css # CSS principal
|
|
308
|
+
├── 📄 functions.php # Funções do tema
|
|
309
|
+
├── 📄 index.php # Template principal
|
|
310
|
+
├── 📂 assets/ # CSS, JS, imagens
|
|
311
|
+
├── 📂 blocks/ # Blocos Gutenberg customizados
|
|
312
|
+
├── 📂 inc/ # Includes e utilitários
|
|
313
|
+
└── 📂 templates/ # Templates de página
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
### Build Process (usando nossos toolings)
|
|
317
|
+
```bash
|
|
318
|
+
# Usar toolings customizados (se configurados)
|
|
319
|
+
lando build-theme # Build de produção
|
|
320
|
+
lando watch-theme # Watch para desenvolvimento
|
|
321
|
+
lando clear-cache # Limpeza de cache
|
|
322
|
+
|
|
323
|
+
# Ou acesso direto ao bash
|
|
324
|
+
lando bash
|
|
325
|
+
|
|
326
|
+
# Dentro do container
|
|
327
|
+
cd /app/dist/wp-content/themes/pipefy-2020/
|
|
328
|
+
npm install
|
|
329
|
+
npm run dev
|
|
330
|
+
npm run watch
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
## 🧪 **Testes Locais**
|
|
334
|
+
|
|
335
|
+
### Verificações de Saúde
|
|
336
|
+
```bash
|
|
337
|
+
# Testar URLs principais
|
|
338
|
+
curl -I https://pipefy.lndo.site/
|
|
339
|
+
curl -I https://pipefy.lndo.site/wp-admin/
|
|
340
|
+
|
|
341
|
+
# Verificar plugins ativos
|
|
342
|
+
lando wp plugin list --status=active
|
|
343
|
+
|
|
344
|
+
# Verificar temas
|
|
345
|
+
lando wp theme list
|
|
346
|
+
|
|
347
|
+
# Verificar se dados de produção foram importados
|
|
348
|
+
lando wp post list --post_type=page --posts_per_page=5
|
|
349
|
+
|
|
350
|
+
# Verificar URLs internas (devem apontar para local)
|
|
351
|
+
lando wp option get home
|
|
352
|
+
lando wp option get siteurl
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
### Performance Local
|
|
356
|
+
```bash
|
|
357
|
+
# Verificar queries pesadas (Query Monitor plugin)
|
|
358
|
+
# Acessar: https://pipefy.lndo.site/?qm_debug=1
|
|
359
|
+
|
|
360
|
+
# Logs de erro PHP usando nosso tooling
|
|
361
|
+
lando logs-live
|
|
362
|
+
|
|
363
|
+
# Logs WordPress específicos
|
|
364
|
+
lando bash -c "tail -f /app/dist/wp-content/debug.log"
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
## 🆘 **Troubleshooting Comum**
|
|
368
|
+
|
|
369
|
+
### Problemas com Banco de Dados
|
|
370
|
+
```bash
|
|
371
|
+
# Erro na importação
|
|
372
|
+
lando db-import database/dump.sql --no-autocommit
|
|
373
|
+
|
|
374
|
+
# Banco corrompido
|
|
375
|
+
lando mysql -e "REPAIR TABLE wp_posts;"
|
|
376
|
+
|
|
377
|
+
# URLs erradas após importação
|
|
378
|
+
lando wp search-replace 'www.pipefy.com' 'pipefy.lndo.site'
|
|
379
|
+
lando wp search-replace 'https://www.pipefy.com' 'https://pipefy.lndo.site'
|
|
380
|
+
|
|
381
|
+
# Reset completo usando nossos toolings
|
|
382
|
+
lando destroy -y
|
|
383
|
+
lando start
|
|
384
|
+
lando db-import database/production-dump-YYYY-MM-DD.sql
|
|
385
|
+
lando init-wp --user=seu-email@pipefy.com
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
### Problemas de SSL
|
|
389
|
+
```bash
|
|
390
|
+
# Regenerar certificados SSL
|
|
391
|
+
lando poweroff
|
|
392
|
+
lando start
|
|
393
|
+
|
|
394
|
+
# Verificar certificados
|
|
395
|
+
lando info | grep ssl
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
### Problemas de Permissões
|
|
399
|
+
```bash
|
|
400
|
+
# Usar tooling para corrigir permissões (se configurado)
|
|
401
|
+
lando fix-permissions
|
|
402
|
+
|
|
403
|
+
# Ou comandos manuais
|
|
404
|
+
lando bash -c "find /app/dist/ -type f -exec chmod 644 {} \;"
|
|
405
|
+
lando bash -c "find /app/dist/ -type d -exec chmod 755 {} \;"
|
|
406
|
+
lando bash -c "chmod 600 /app/dist/wp-config.php"
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
### Cache Issues
|
|
410
|
+
```bash
|
|
411
|
+
# Usar nosso tooling para limpeza
|
|
412
|
+
lando clear-cache
|
|
413
|
+
|
|
414
|
+
# Limpar cache WordPress específico
|
|
415
|
+
lando wp cache flush
|
|
416
|
+
|
|
417
|
+
# Limpar cache do navegador
|
|
418
|
+
# Ctrl+Shift+R (hard refresh)
|
|
419
|
+
|
|
420
|
+
# Rebuild completo do Lando
|
|
421
|
+
lando rebuild -y
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
### Debug e Logs
|
|
425
|
+
```bash
|
|
426
|
+
# Usar nosso tooling para logs em tempo real
|
|
427
|
+
lando logs-live
|
|
428
|
+
|
|
429
|
+
# Logs específicos
|
|
430
|
+
lando bash -c "tail -f /var/log/apache2/error.log"
|
|
431
|
+
lando bash -c "tail -f /app/dist/wp-content/debug.log"
|
|
432
|
+
|
|
433
|
+
# Verificar configuração PHP
|
|
434
|
+
lando bash -c "php -i | grep -i memory"
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
## 🚀 **Toolings Disponíveis**
|
|
438
|
+
|
|
439
|
+
Confira todos os toolings configurados no nosso `.lando.yml`:
|
|
440
|
+
|
|
441
|
+
```bash
|
|
442
|
+
# Ver todos os comandos disponíveis
|
|
443
|
+
lando --help
|
|
444
|
+
|
|
445
|
+
# Nossos toolings customizados incluem:
|
|
446
|
+
# - lando init-wp # Inicialização completa
|
|
447
|
+
# - lando bash # Acesso ao container
|
|
448
|
+
# - lando logs-live # Logs em tempo real
|
|
449
|
+
# - lando backup-db # Backup rápido
|
|
450
|
+
# - lando clear-cache # Limpeza de cache
|
|
451
|
+
# - lando build-theme # Build do tema (se configurado)
|
|
452
|
+
# - lando watch-theme # Watch do tema (se configurado)
|
|
453
|
+
# - lando fix-permissions # Correção de permissões (se configurado)
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
## ✅ **Verificação Final**
|
|
457
|
+
|
|
458
|
+
Após completar o setup, verifique:
|
|
459
|
+
|
|
460
|
+
- [ ] ✅ **Banco baixado** da produção via GitLab CI/CD
|
|
461
|
+
- [ ] ✅ **Banco restaurado** ANTES da inicialização
|
|
462
|
+
- [ ] ✅ **WordPress inicializado** com `lando init-wp`
|
|
463
|
+
- [ ] ✅ **Site carrega** em `https://pipefy.lndo.site`
|
|
464
|
+
- [ ] ✅ **Admin acessível** em `https://pipefy.lndo.site/wp-admin`
|
|
465
|
+
- [ ] ✅ **Tema Pipefy 2020** ativo
|
|
466
|
+
- [ ] ✅ **Plugins principais** instalados
|
|
467
|
+
- [ ] ✅ **Dados de produção** visíveis (posts, páginas)
|
|
468
|
+
- [ ] ✅ **URLs corretas** (apontando para local)
|
|
469
|
+
- [ ] ✅ **Sem erros** no console do navegador
|
|
470
|
+
- [ ] ✅ **Emails capturados** no MailHog
|
|
471
|
+
|
|
472
|
+
## 🎯 **Próximos Passos**
|
|
473
|
+
|
|
474
|
+
Agora que seu ambiente está funcionando:
|
|
475
|
+
|
|
476
|
+
1. **[Arquitetura](Arquitetura)** - Entenda a estrutura do projeto
|
|
477
|
+
2. **[Desenvolvimento](Desenvolvimento)** - Guias de desenvolvimento
|
|
478
|
+
3. **[Deploy Pipeline](Deploy-Pipeline)** - Como fazer deploy
|
|
479
|
+
|
|
480
|
+
## 📞 **Precisa de Ajuda?**
|
|
481
|
+
|
|
482
|
+
- **Issues técnicos**: [GitLab Issues](https://gitlab.com/pipefy/wordpress/pipefy-website/-/issues)
|
|
483
|
+
- **Dúvidas**: Confira [FAQ](FAQ) ou [Troubleshooting](Troubleshooting)
|
|
484
|
+
- **Equipe**: Consulte [CODEOWNERS](https://gitlab.com/pipefy/wordpress/pipefy-website/-/blob/master/CODEOWNERS)
|
|
485
|
+
|
|
486
|
+
---
|
|
487
|
+
|
|
488
|
+
📝 **Tempo estimado de setup**: 15-30 minutos (usando nossos toolings)
|
|
489
|
+
🔄 **Última atualização**: Junho 2025
|
|
490
|
+
✨ **Ambiente local**: `pipefy.lndo.site`
|
|
491
|
+
💾 **Banco de dados**: Produção via GitLab CI/CD Schedules
|
|
492
|
+
🔄 **Sincronização**: Processo repetível para manter ambiente atualizado
|
|
493
|
+
⚡ **Toolings**: Usando comandos customizados do `.lando.yml`
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
# 🏗️ Infraestrutura
|
|
2
|
+
|
|
3
|
+
Documentação da infraestrutura do Pipefy Website, incluindo componentes, configurações e pontos que necessitam detalhamento pela equipe SRE.
|
|
4
|
+
|
|
5
|
+
## 🌍 **Visão Geral da Infraestrutura**
|
|
6
|
+
|
|
7
|
+
### **Cloud Provider**
|
|
8
|
+
- **Provedor**: Oracle Cloud Infrastructure (OCI)
|
|
9
|
+
- **Região**: `[SRE_DETAIL: Especificar região e availability zones]`
|
|
10
|
+
- **Recursos principais**: Compute instances, Load Balancer, Block Storage
|
|
11
|
+
|
|
12
|
+
### **Arquitetura de Rede**
|
|
13
|
+
- **VPC**: `[SRE_DETAIL: CIDR blocks e subnets configuradas]`
|
|
14
|
+
- **Load Balancer**: OCI Load Balancer
|
|
15
|
+
- **CDN**: CloudFlare
|
|
16
|
+
- **DNS**: `[SRE_DETAIL: Configuração DNS e subdominios]`
|
|
17
|
+
|
|
18
|
+
## 🎛️ **Kubernetes Cluster**
|
|
19
|
+
|
|
20
|
+
### **Cluster Configuration**
|
|
21
|
+
- **Tipo**: `[SRE_DETAIL: Managed ou self-hosted]`
|
|
22
|
+
- **Versão**: `[SRE_DETAIL: Versão atual do K8s]`
|
|
23
|
+
- **Node Groups**: `[SRE_DETAIL: Tipos de instância e scaling policies]`
|
|
24
|
+
- **Networking**: `[SRE_DETAIL: CNI, Network policies, Ingress controller]`
|
|
25
|
+
|
|
26
|
+
### **Namespaces**
|
|
27
|
+
| Namespace | Ambiente | Finalidade |
|
|
28
|
+
|-----------|----------|------------|
|
|
29
|
+
| `website-dev` | Development | Testes contínuos |
|
|
30
|
+
| `website-stg` | Staging | Homologação |
|
|
31
|
+
| `website-prod` | Production | Site oficial |
|
|
32
|
+
|
|
33
|
+
### **Recursos por Ambiente**
|
|
34
|
+
| Recurso | Development | Staging | Production |
|
|
35
|
+
|---------|-------------|---------|------------|
|
|
36
|
+
| **Replicas** | 1 | 1 | `[SRE_DETAIL: Número de réplicas]` |
|
|
37
|
+
| **CPU** | `[SRE_DETAIL: Requests/Limits]` | `[SRE_DETAIL: Requests/Limits]` | `[SRE_DETAIL: Requests/Limits]` |
|
|
38
|
+
| **Memory** | `[SRE_DETAIL: Requests/Limits]` | `[SRE_DETAIL: Requests/Limits]` | `[SRE_DETAIL: Requests/Limits]` |
|
|
39
|
+
| **Storage** | `[SRE_DETAIL: Tamanho PVC]` | `[SRE_DETAIL: Tamanho PVC]` | `[SRE_DETAIL: Tamanho PVC]` |
|
|
40
|
+
|
|
41
|
+
## 💾 **Persistência de Dados**
|
|
42
|
+
|
|
43
|
+
### **Banco de Dados**
|
|
44
|
+
- **Tipo**: `[SRE_DETAIL: MySQL managed service ou self-hosted]`
|
|
45
|
+
- **Versão**: `[SRE_DETAIL: Versão do MySQL]`
|
|
46
|
+
- **Configuração**: `[SRE_DETAIL: Instance type, storage, backup policy]`
|
|
47
|
+
- **High Availability**: `[SRE_DETAIL: Multi-AZ, read replicas]`
|
|
48
|
+
- **Backup**: `[SRE_DETAIL: Frequência, retenção, restore procedures]`
|
|
49
|
+
|
|
50
|
+
### **Armazenamento de Arquivos**
|
|
51
|
+
- **WordPress Uploads**: `[SRE_DETAIL: Object Storage ou PVC]`
|
|
52
|
+
- **Assets Estáticos**: CloudFlare CDN
|
|
53
|
+
- **Logs**: `[SRE_DETAIL: Centralized logging solution]`
|
|
54
|
+
- **Backup de Arquivos**: `[SRE_DETAIL: Backup strategy para uploads]`
|
|
55
|
+
|
|
56
|
+
## 🔐 **Segurança**
|
|
57
|
+
|
|
58
|
+
### **Network Security**
|
|
59
|
+
- **Firewall**: `[SRE_DETAIL: Regras de firewall OCI]`
|
|
60
|
+
- **WAF**: CloudFlare Web Application Firewall
|
|
61
|
+
- **DDoS Protection**: CloudFlare
|
|
62
|
+
- **VPN Access**: `[SRE_DETAIL: VPN configuration para acesso interno]`
|
|
63
|
+
|
|
64
|
+
### **Authentication & Authorization**
|
|
65
|
+
- **RBAC**: `[SRE_DETAIL: Kubernetes RBAC policies]`
|
|
66
|
+
- **Service Accounts**: `[SRE_DETAIL: K8s service accounts configurados]`
|
|
67
|
+
- **Secrets Management**: `[SRE_DETAIL: Kubernetes secrets ou external vault]`
|
|
68
|
+
- **Image Security**: `[SRE_DETAIL: Registry scanning, admission controllers]`
|
|
69
|
+
|
|
70
|
+
### **SSL/TLS**
|
|
71
|
+
- **Certificados**: `[SRE_DETAIL: Let's Encrypt ou certificados próprios]`
|
|
72
|
+
- **Renovação**: `[SRE_DETAIL: Processo automático de renovação]`
|
|
73
|
+
- **Cipher Suites**: `[SRE_DETAIL: Configurações de segurança SSL]`
|
|
74
|
+
|
|
75
|
+
## 📊 **Monitoramento e Observabilidade**
|
|
76
|
+
|
|
77
|
+
### **Monitoring Stack**
|
|
78
|
+
- **Metrics**: `[SRE_DETAIL: Prometheus, CloudWatch, ou OCI Monitoring]`
|
|
79
|
+
- **Logging**: `[SRE_DETAIL: ELK, Fluentd, ou solução OCI]`
|
|
80
|
+
- **APM**: `[SRE_DETAIL: Application Performance Monitoring solution]`
|
|
81
|
+
- **Dashboards**: `[SRE_DETAIL: Grafana ou OCI Console]`
|
|
82
|
+
|
|
83
|
+
### **Alerting**
|
|
84
|
+
- **Notification Channels**: `[SRE_DETAIL: Slack, email, PagerDuty]`
|
|
85
|
+
- **Alert Rules**: `[SRE_DETAIL: Métricas críticas e thresholds]`
|
|
86
|
+
- **Escalation**: `[SRE_DETAIL: Escalation policies]`
|
|
87
|
+
- **Runbooks**: `[SRE_DETAIL: Automated remediation procedures]`
|
|
88
|
+
|
|
89
|
+
### **Health Checks**
|
|
90
|
+
- **Liveness Probes**: `[SRE_DETAIL: Endpoint e configuração]`
|
|
91
|
+
- **Readiness Probes**: `[SRE_DETAIL: Endpoint e configuração]`
|
|
92
|
+
- **External Monitoring**: `[SRE_DETAIL: Uptime monitoring service]`
|
|
93
|
+
|
|
94
|
+
## 🔄 **Backup e Disaster Recovery**
|
|
95
|
+
|
|
96
|
+
### **Backup Strategy**
|
|
97
|
+
- **Database Backups**: `[SRE_DETAIL: Automated backup schedule]`
|
|
98
|
+
- **File System Backups**: `[SRE_DETAIL: PVC snapshot policy]`
|
|
99
|
+
- **Configuration Backups**: `[SRE_DETAIL: K8s manifests backup]`
|
|
100
|
+
- **Cross-Region Backup**: `[SRE_DETAIL: Geographic redundancy]`
|
|
101
|
+
|
|
102
|
+
### **Disaster Recovery**
|
|
103
|
+
- **RTO (Recovery Time Objective)**: `[SRE_DETAIL: Target recovery time]`
|
|
104
|
+
- **RPO (Recovery Point Objective)**: `[SRE_DETAIL: Acceptable data loss]`
|
|
105
|
+
- **DR Site**: `[SRE_DETAIL: Secondary region or provider]`
|
|
106
|
+
- **Failover Process**: `[SRE_DETAIL: Automated or manual procedures]`
|
|
107
|
+
|
|
108
|
+
## 🚀 **Performance e Scaling**
|
|
109
|
+
|
|
110
|
+
### **Auto Scaling**
|
|
111
|
+
- **HPA (Horizontal Pod Autoscaler)**: `[SRE_DETAIL: Métricas e thresholds]`
|
|
112
|
+
- **VPA (Vertical Pod Autoscaler)**: `[SRE_DETAIL: Se habilitado]`
|
|
113
|
+
- **Cluster Autoscaler**: `[SRE_DETAIL: Node scaling policies]`
|
|
114
|
+
- **Load Testing**: `[SRE_DETAIL: Performance benchmarks]`
|
|
115
|
+
|
|
116
|
+
### **CDN Configuration**
|
|
117
|
+
- **Cache Rules**: `[SRE_DETAIL: CloudFlare cache policies]`
|
|
118
|
+
- **Purge Strategy**: `[SRE_DETAIL: Cache invalidation process]`
|
|
119
|
+
- **Geographic Distribution**: `[SRE_DETAIL: Edge locations]`
|
|
120
|
+
- **Performance Metrics**: `[SRE_DETAIL: CDN analytics e reporting]`
|
|
121
|
+
|
|
122
|
+
## 🔧 **DevOps Tools**
|
|
123
|
+
|
|
124
|
+
### **CI/CD**
|
|
125
|
+
- **GitLab CI/CD**: Pipeline configuration
|
|
126
|
+
- **Container Registry**: `[SRE_DETAIL: GitLab Registry ou external]`
|
|
127
|
+
- **Image Scanning**: `[SRE_DETAIL: Security scanning tools]`
|
|
128
|
+
- **Deployment Strategy**: `[SRE_DETAIL: Blue/Green, Rolling, Canary]`
|
|
129
|
+
|
|
130
|
+
### **Infrastructure as Code**
|
|
131
|
+
- **Terraform**: `[SRE_DETAIL: Estado atual da IaC]`
|
|
132
|
+
- **Kubernetes Manifests**: `[SRE_DETAIL: Estrutura dos manifests]`
|
|
133
|
+
- **Helm Charts**: `[SRE_DETAIL: Planejamento para migração]`
|
|
134
|
+
- **GitOps**: `[SRE_DETAIL: ArgoCD ou similar]`
|
|
135
|
+
|
|
136
|
+
## 🌐 **Rede e Conectividade**
|
|
137
|
+
|
|
138
|
+
### **External Connectivity**
|
|
139
|
+
- **Public IPs**: `[SRE_DETAIL: IP addresses e DNS records]`
|
|
140
|
+
- **Domain Management**: `[SRE_DETAIL: DNS provider e configuração]`
|
|
141
|
+
- **API Gateways**: `[SRE_DETAIL: Rate limiting, authentication]`
|
|
142
|
+
- **Third-party Integrations**: `[SRE_DETAIL: External services connectivity]`
|
|
143
|
+
|
|
144
|
+
### **Internal Networking**
|
|
145
|
+
- **Service Mesh**: `[SRE_DETAIL: Istio, Linkerd, ou similar]`
|
|
146
|
+
- **Network Policies**: `[SRE_DETAIL: Pod-to-pod communication rules]`
|
|
147
|
+
- **Internal DNS**: `[SRE_DETAIL: CoreDNS configuration]`
|
|
148
|
+
- **Service Discovery**: `[SRE_DETAIL: Internal service communication]`
|
|
149
|
+
|
|
150
|
+
## 💰 **Custos e Otimização**
|
|
151
|
+
|
|
152
|
+
### **Cost Management**
|
|
153
|
+
- **Resource Allocation**: `[SRE_DETAIL: Current resource usage]`
|
|
154
|
+
- **Cost Monitoring**: `[SRE_DETAIL: Billing alerts e budgets]`
|
|
155
|
+
- **Optimization Opportunities**: `[SRE_DETAIL: Right-sizing recommendations]`
|
|
156
|
+
- **Reserved Instances**: `[SRE_DETAIL: Long-term commitment strategy]`
|
|
157
|
+
|
|
158
|
+
## 🔄 **Migração para Helm (Planejado)**
|
|
159
|
+
|
|
160
|
+
### **Current State**
|
|
161
|
+
- **Deployment Method**: Kubernetes manifests diretos
|
|
162
|
+
- **Configuration Management**: Kustomize ou similar
|
|
163
|
+
- **Challenges**: `[SRE_DETAIL: Pontos de dor atuais]`
|
|
164
|
+
|
|
165
|
+
### **Target State**
|
|
166
|
+
- **Helm Version**: 3.x
|
|
167
|
+
- **Chart Structure**: `[SRE_DETAIL: Estrutura planejada]`
|
|
168
|
+
- **Migration Plan**: `[SRE_DETAIL: Cronograma e etapas]`
|
|
169
|
+
- **Benefits Expected**: `[SRE_DETAIL: Melhorias esperadas]`
|
|
170
|
+
|
|
171
|
+
## 📋 **Action Items para SRE**
|
|
172
|
+
|
|
173
|
+
### **🔴 Crítico (Documentação Necessária)**
|
|
174
|
+
- [ ] Especificar configurações de rede (VPC, subnets, security groups)
|
|
175
|
+
- [ ] Detalhar configuração do banco de dados (versão, backup, HA)
|
|
176
|
+
- [ ] Documentar estratégia de monitoramento e alertas
|
|
177
|
+
- [ ] Definir políticas de backup e disaster recovery
|
|
178
|
+
|
|
179
|
+
### **🟡 Importante (Melhoria)**
|
|
180
|
+
- [ ] Implementar Infrastructure as Code com Terraform
|
|
181
|
+
- [ ] Configurar monitoring stack completo
|
|
182
|
+
- [ ] Estabelecer políticas de auto-scaling
|
|
183
|
+
- [ ] Planejar migração para Helm
|
|
184
|
+
|
|
185
|
+
### **🟢 Desejável (Futuro)**
|
|
186
|
+
- [ ] Implementar service mesh
|
|
187
|
+
- [ ] Configurar GitOps com ArgoCD
|
|
188
|
+
- [ ] Otimizar custos de infraestrutura
|
|
189
|
+
- [ ] Implementar chaos engineering
|
|
190
|
+
|
|
191
|
+
## 📞 **Contatos e Responsabilidades**
|
|
192
|
+
|
|
193
|
+
### **Equipes Responsáveis**
|
|
194
|
+
- **SRE Team**: Infraestrutura, monitoramento, DR
|
|
195
|
+
- **DevOps Team**: CI/CD, deployments, automação
|
|
196
|
+
- **Security Team**: Políticas de segurança, compliance
|
|
197
|
+
- **Development Team**: Application requirements, troubleshooting
|
|
198
|
+
|
|
199
|
+
### **Escalation**
|
|
200
|
+
- **Incidentes P1**: `[SRE_DETAIL: Procedimento de escalação]`
|
|
201
|
+
- **Mudanças de Infraestrutura**: `[SRE_DETAIL: Change management process]`
|
|
202
|
+
- **Emergency Access**: `[SRE_DETAIL: Break-glass procedures]`
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
📝 **Última atualização**: Junho 2025
|
|
207
|
+
☁️ **Cloud Provider**: Oracle Cloud Infrastructure (OCI)
|
|
208
|
+
🎛️ **Orquestração**: Kubernetes
|
|
209
|
+
🔄 **Estado**: Migração para Helm planejada
|
|
210
|
+
📊 **Documentação SRE**: Detalhamentos técnicos necessários
|
|
211
|
+
🎯 **Próximos passos**: Preenchimento dos `[SRE_DETAIL]` pela equipe especializada
|