--- name: cwp description: Meta-skill CWP (CentOS Web Panel, servidor 176.9.3.158) cobrindo gestão de contas, backups, email/Postfix/DKIM, PHP Switcher/Selector, segurança CSF/LFD, SSL/acme.sh, webservers Apache/Nginx e referência completa dos scripts oficiais. Triggers — cwp, centos web panel, cwp_api, /scripts/, csf, lfd, acme, autossl, postfix, dkim, php selector, php switcher, varnish, httpd, nginx cwp, user_backup, whoowns, list_users, hostname ssl, mail queue, fix_perms. layer: wiki --- # /cwp - Meta-skill CWP (CentOS Web Panel) Skill unificada para o servidor **CWP Principal `176.9.3.158`** (MCP `ssh-unified`, user `root`). Substitui as antigas cwp-accounts, cwp-backup, cwp-email, cwp-php, cwp-scripts, cwp-security, cwp-ssl, cwp-webserver. **REGRA #38 — ZERO INVENÇÃO:** NUNCA improvisar comandos. Verificar estado actual ANTES de alterar. Pesquisar wiki CWP se necessário. Usar APENAS scripts oficiais (`/scripts/*` e `/scripts/cwp_api`). Se não souber: PERGUNTAR. --- ## 0. GATE OBRIGATÓRIO — checklist pré-intervenção CWP > **Antes de QUALQUER alteração em CWP (SSL, email/Postfix/Dovecot, nginx/Apache, CSF, PHP), correr este checklist. Padrão recorrente de edições manuais desnecessárias = causa de incidentes repetidos (#3992).** 1. **CONSULTAR PRIMEIRO** (Regra 53 — LLM Wiki obrigatório): - `PROC-CWP-SSL.md` (D7 Infraestrutura) — para SSL/certificados. - `PROC-Email-Antispam-CWP.md` (D7 Infraestrutura) — para email/Postfix/DKIM/antispam. - NotebookLM CWP `0ded7bd6-69b3-4c76-b327-452396bf7ea7` + `~/wiki/` se o caso não estiver nos PROCs. 2. **VERIFICAR ESTADO ACTUAL** (read-only) antes de tocar — ver secção relevante abaixo (ex.: `openssl s_client` para SSL, `postqueue -p` para email). 3. **SCRIPT NATIVO, NUNCA EDIÇÃO MANUAL.** Se existe `/scripts/*` para a tarefa, usar esse. Editar Postfix/Dovecot/vhosts/certs à mão é anti-pattern (sobrescrito em updates + causa-raiz de drift). - **SSL de email partido → `sh /scripts/mail_rebuild_sni_certs`** (NÃO editar `main.cf`/`master.cf` manualmente). - Certs web → acme.sh nativo (§6). Webservers → `cwp_api webservers rebuild_*` (§7). Permissões pós-SSH → `cwp_api account fix_perms` (§1). 4. **EMAIL EM PRODUÇÃO = ZERO RISCO:** não mexer em `master.cf`/postscreen nem reiniciar Postfix sem necessidade comprovada. Mudança mínima, testada, reversível. 5. **HDD 4TB — sem comandos cegos:** NUNCA `du`/`find` genéricos em `/home` (bloqueia horas, iowait >30%). Caminhos específicos sempre. 6. **VALIDAR + DOCUMENTAR:** confirmar o efeito (secção "Validação" relevante) e registar o que se descobriu (memória/PROC) se for novo. > Se os passos 1-3 não resolvem e seria preciso editar à mão: **PARAR e perguntar**. A edição manual é o último recurso, não o primeiro. ## Documentação base - Wiki: https://wiki.centos-webpanel.com/cwp-admin-api , /cwp-scripts , /csf-firewall-command-line - Hub manuais: `Hub/06-Operacoes/Documentacao/Manuais/CWP/` (`CWP-Manual-Completo.md` 503KB, `CWP-Ferramentas-Desenvolvimento.md` 82KB, `CWP-Guia-do-Utilizador.md`, `CWP-Guia-do-Revendedor.md`) - QR: `Hub/06-Operacoes/Documentacao/Quick-Reference/QR-CWP.md` - NotebookLM CWP: `0ded7bd6-69b3-4c76-b327-452396bf7ea7` - NotebookLM Cibersegurança WordPress (para secção segurança): `5f60adfd-2435-4725-8c12-9c11c5f51d75` ``` mcp__notebooklm__notebook_query notebook_id:"0ded7bd6-69b3-4c76-b327-452396bf7ea7" query:"" ``` --- ## 1. Contas (accounts) ### Consulta (read-only) ```bash sh /scripts/list_users sh /scripts/list_domains sh /scripts/list_subdomains sh /scripts/whoowns DOMINIO ``` ### API gestão ```bash /scripts/cwp_api account remove_user USERNAME /scripts/cwp_api account suspend_user USERNAME /scripts/cwp_api account unsuspend_user USERNAME /scripts/cwp_api account fix_perms USERNAME # OBRIGATÓRIO após qualquer SSH manual /scripts/cwp_api account list_domains USERNAME ``` ### Bandwidth ```bash /scripts/cwp_api account unsuspend_bandwidth USERNAME # após aumentar limites /scripts/cwp_api account reset_bandwidth USERNAME ``` ### Massa ```bash /scripts/cwp_api account update_diskquota_all /scripts/cwp_api account update_limits_all # quota, hourly_emails, cgroups, nproc, apache_nproc, inode, nofile /scripts/cwp_api account mail_fix_permissions /scripts/cwp_api account update_policyd_all ``` ### DNS ```bash /scripts/cwp_api account rebuild_etc_named_conf /scripts/cwp_api account rebuild_var_named_all /scripts/cwp_api account rebuild_var_named USERNAME DOMAIN ``` ### Auxiliares ```bash sh /scripts/ulimit_user_check USERNAME sh /scripts/cwpsrv_rebuild_user_conf ``` ### Workflows típicos 1. Suspender: `suspend_user` -> `list_users | grep`. 2. Reactivar: `unsuspend_user` -> `fix_perms`. 3. Pós-SSH manual: SEMPRE `fix_perms USERNAME`. ### Validação ```bash sh /scripts/list_users | grep USERNAME /scripts/cwp_api account list_domains USERNAME curl -sI http://DOMINIO | head -5 ``` ### Anti-patterns Remover sem backup | editar ficheiros manualmente | esquecer