Token导航 LogoToken导航TokenDH.com
前端设计需要联网github未标认证来源可访问许可证需确认审计通过

promovaweb-devops-review-chatwoot-stackpromovaweb devops 审查 chatwoot 堆栈

Agent Skill

用于辅助云资源、部署、容器、基础设施和运维自动化任务。它适合让 Agent 检查配置、整理部署步骤、分析资源状态、生成排障思路或辅助云服务接入。使用时需要明确目标环境、账号权限、区域和资源组,区分本地测试与生产操作;涉及删除资源、重启服务、修改网络或权限配置时,应先确认影响范围。

总安装

190

周安装

8

GitHub Stars

4

下载量

67
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:promovaweb-devops-review-chatwoot-stack(promovaweb devops 审查 chatwoot 堆栈)
来源仓库:https://github.com/promovaweb/skills-devops
仓库路径:skills/promovaweb-devops-review-chatwoot-stack
安装命令:
npx skills add https://github.com/promovaweb/skills-devops --skill promovaweb-devops-review-chatwoot-stack
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/promovaweb/skills-devops --skill promovaweb-devops-review-chatwoot-stack

简介

用于辅助云资源、部署、容器、基础设施和运维自动化任务。

  • 适合让 Agent 检查配置、整理部署步骤、分析资源状态或生成排障思路。
  • 通过安装命令添加,需明确目标环境、账号权限和资源组。
  • 涉及删除资源或修改网络配置时,应先确认影响范围。
  • promovaweb-devops-review-chatwoot-stack 属于前端设计类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Review Chatwoot Stack

Executa uma auditoria completa do arquivo chatwoot.yaml e reporta conformidade, problemas e sugestões.

Instruções de Execução

Quando esta skill for invocada, siga exatamente este roteiro:

Passo 1 — Ler o arquivo

Leia o arquivo chatwoot.yaml completo.

Passo 2 — Executar todos os checks abaixo

Execute cada bloco de verificação e registre os resultados (✅ OK / ⚠️ Atenção / ❌ Erro).

Passo 3 — Gravar o resultado

Grave o relatório completo em um arquivo chamado chatwoot.audit.md.


Checks de Verificação

1. Variáveis de Ambiente Obrigatórias

Verifique se todas as variáveis abaixo estão definidas nos anchors YAML (x-chatwoot-*):

Banco de dados (x-chatwoot-db)

  • POSTGRES_HOST — deve ser definido (padrão: postgres)
  • POSTGRES_USERNAME — deve ser definido (padrão: postgres)
  • POSTGRES_PASSWORD — deve existir e não deve ser o placeholder SENHA, compare com a senha definida em postgres.yaml
  • POSTGRES_DATABASE — deve ser definido (padrão: chatwoot)

Redis (x-chatwoot-redis)

  • REDIS_URL — deve começar com redis:// e conter host e porta válidos (ex: redis://redis:6379)
  • REDIS_PASSWORD — verificar se está definida (recomendado se Redis usa autenticação)

Object Storage (x-chatwoot-storage)

  • ACTIVE_STORAGE_SERVICE — deve ser s3_compatible ou local
  • STORAGE_BUCKET_NAME — deve ser definido se usar S3
  • STORAGE_ACCESS_KEY_ID — deve ser preenchido se usar S3 (alertar se vazio)
  • STORAGE_SECRET_ACCESS_KEY — deve ser preenchido se usar S3 (alertar se vazio)
  • STORAGE_REGION — deve ser definido se usar S3
  • STORAGE_ENDPOINT — deve ser uma URL válida se usar S3
  • STORAGE_FORCE_PATH_STYLE — deve ser "true" se usar S3 compatível

Ambiente Geral (x-chatwoot-env)

  • INSTALLATION_NAME — deve ser definido (padrão: chatwoot)
  • NODE_ENV — deve ser production
  • RAILS_ENV — deve ser production
  • INSTALLATION_ENV — deve ser docker
  • SECRET_KEY_BASE — deve existir, ter pelo menos 32 caracteres e não ser o valor de exemplo 123458bb7ef6402f6a8bcf5d3be54321
  • FRONTEND_URL — deve começar com https:// e ser um domínio válido (não localhost, não chat.agenciasynca.com.br se for apenas placeholder)
  • DEFAULT_LOCALE — deve ser definido (ex: pt-BR)
  • FORCE_SSL — deve ser "true"
  • ENABLE_ACCOUNT_SIGNUP — verificar se é intencional estar habilitado (risco de segurança)
  • RAILS_LOG_TO_STDOUT — deve ser "true"
  • USE_INBOX_AVATAR_FOR_BOT — deve ser "true"
  • ENABLE_PUSH_RELAY_SERVER — deve ser "true"

2. Serviços Obrigatórios

Verifique se todos estes serviços estão presentes:

ServiçoObrigatórioHostname Esperado
chatwoot_adminSim{{.Service.Name}}.{{.Task.Slot}}
chatwoot_sidekiqSim{{.Service.Name}}.{{.Task.Slot}}

3. Comandos dos Containers

Verifique o comando (command) e entrypoint de cada serviço:

ServiçoEntrypoint EsperadoComando Esperado
chatwoot_admindocker/entrypoints/rails.shbundle exec rails s -p 3000 -b 0.0.0.0
chatwoot_sidekiqdeve incluir db:prepare, db:chatwoot_prepare e sidekiq -C config/sidekiq.yml

Alertar se o comando do chatwoot_sidekiq não incluir a preparação do banco de dados antes de iniciar o Sidekiq.


4. Replicas dos Serviços

Verifique a quantidade de réplicas de cada serviço:

ServiçoRéplicas MínimasObservação
chatwoot_admin1Pode escalar, mas atenção à sessão
chatwoot_sidekiq1Pode escalar para mais workers

5. Rotas Traefik

Para o serviço chatwoot_admin, verifique:

Âncora de endereço (x-chatwoot-app-url):

  • A âncora x-chatwoot-app-url deve existir e conter um domínio válido (não placeholder como chat.agenciasynca.com.br)
  • O domínio na âncora deve ser idêntico ao domínio dentro de Host(...) na label traefik.http.routers.chatwoot_admin.rule
  • Se não forem iguais, reportar como ❌ Erro: inconsistência entre x-chatwoot-app-url e a regra Traefik
  • O domínio na âncora deve coincidir também com o domínio em FRONTEND_URL (sem o https://)

Labels obrigatórias:

  • traefik.enable=true
  • traefik.swarm.network=network_swarm_public
  • traefik.http.routers.chatwoot_admin.rule — deve conter Host(...) com domínio válido e coincidir com x-chatwoot-app-url e FRONTEND_URL
  • traefik.http.routers.chatwoot_admin.entrypoints=websecure
  • traefik.http.routers.chatwoot_admin.tls.certresolver=letsencryptresolver
  • traefik.http.routers.chatwoot_admin.service=chatwoot_admin
  • traefik.http.services.chatwoot_admin.loadbalancer.server.port=3000
  • traefik.http.services.chatwoot_admin.loadbalancer.passhostheader=true

Middleware WebSocket:

  • traefik.http.middlewares.sslheader.headers.customrequestheaders.X-Forwarded-Proto=https — obrigatório para WebSockets
  • traefik.http.routers.chatwoot_admin.middlewares=sslheader@swarm — deve estar presente

6. Volumes

Verifique se os volumes estão corretamente configurados:

  • chatwoot_data — deve ser declarado como external: true e montado em ambos os serviços em /app/storage
  • Ambos os serviços (chatwoot_admin e chatwoot_sidekiq) devem compartilhar o mesmo volume para consistência de storage

7. Recursos dos Containers

Para cada serviço, verifique os limites de recursos:

ServiçoCPU MínimoMemória MínimaMemória Máxima
chatwoot_admin"1"1024M2048M
chatwoot_sidekiq"1"1024M2048M

Alertar se algum serviço não tiver resources.limits definido.


8. Configuração de Deploy

Para cada serviço, verifique:

  • mode: replicated — ambos devem ser replicated
  • placement.constraints — deve incluir node.role == manager
  • Verificar se há update_config com order: start-first e failure_action: rollback (recomendado)

9. Redes e Imagens

Redes:

  • Ambos os serviços devem estar na rede network_swarm_public
  • A rede deve ser declarada como external: true na seção networks:

Imagens:

  • Ambos os serviços devem usar *chatwoot-image (anchor)
  • Verificar se a imagem usa tag específica de versão em vez de latest (recomendado em produção)

10. Segurança

  • POSTGRES_PASSWORD não deve ser SENHA (placeholder)
  • SECRET_KEY_BASE não deve ser o valor de exemplo 123458bb7ef6402f6a8bcf5d3be54321 (deve ser gerado com openssl rand -hex 32)
  • STORAGE_ACCESS_KEY_ID e STORAGE_SECRET_ACCESS_KEY não devem estar vazios se usar S3
  • STORAGE_BUCKET_NAME não deve ser chatwoot (placeholder)
  • ENABLE_ACCOUNT_SIGNUP: "false" — recomendado para instalações privadas
  • FORCE_SSL: "true" — deve estar presente
  • FRONTEND_URL deve usar HTTPS e domínio real.

Formato do Relatório de Saída

Ao final, produza um relatório estruturado:

# Relatório de Auditoria — chatwoot.yaml
Data: <data atual>

## Resumo
- Total de checks: X
- ✅ OK: X
- ⚠️ Atenções: X
- ❌ Erros: X

## Resultados por Categoria

### 1. Variáveis de Ambiente
✅ POSTGRES_HOST: definido
❌ POSTGRES_PASSWORD: usando placeholder SENHA — troque antes do deploy
...

### 2. Serviços
✅ chatwoot_admin: presente
✅ chatwoot_sidekiq: presente

### 3. Comandos
✅ chatwoot_admin: entrypoint e comando corretos
✅ chatwoot_sidekiq: inclui db:prepare e db:chatwoot_prepare
...

### 4. Replicas
✅ chatwoot_admin: 1 réplica
✅ chatwoot_sidekiq: 1 réplica
...

### 5. Rotas Traefik
✅ chatwoot_admin: rota Host correta, TLS ok
✅ chatwoot_admin: middleware WebSocket configurado
...

### 6. Volumes
✅ chatwoot_data: declarado como external e compartilhado
...

### 7. Recursos
✅ Todos os serviços com limits definidos
...

### 8. Deploy
⚠️ update_config não definido — recomendado configurar start-first e rollback
...

### 9. Redes e Imagens
⚠️ Imagem usando `latest` — considere fixar uma versão em produção
...

### 10. Segurança
❌ POSTGRES_PASSWORD: placeholder SENHA detectado
❌ SECRET_KEY_BASE: valor parece ser exemplo — gere um novo com openssl rand -hex 32
...

## Ações Recomendadas (por prioridade)

### Crítico (fazer antes do deploy)
1. ...

### Recomendado
1. ...

### Opcional
1. ...

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

34.32%
按下载量换算23

Claude

28.27%
按下载量换算19

Cursor

19.3%
按下载量换算13

Gemini CLI

8.81%
按下载量换算6

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills