@fabioforest/openclaw 3.6.0 → 3.7.1

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/README.md CHANGED
@@ -371,7 +371,7 @@ Verifica conectividade, proxy, versões e integridade do ambiente.
371
371
 
372
372
  ---
373
373
 
374
- ## 🧠 Skills Disponíveis (21)
374
+ ## 🧠 Skills Disponíveis (25)
375
375
 
376
376
  ### Core — Infraestrutura do AI OS
377
377
 
@@ -392,15 +392,19 @@ Verifica conectividade, proxy, versões e integridade do ambiente.
392
392
  |-------|-----------|-------------|
393
393
  | `code-quality` | SOLID, DRY, KISS, Clean Code | Para revisar e melhorar qualidade de código |
394
394
  | `legacy-cleanup` | Refatoração segura de legado | Para remover dead code, deps obsoletas |
395
- | `test-engineer` | Testes unitários/integração/E2E | Para criar e melhorar suite de testes |
395
+ | `test-engineer` | Testes unit/integração/E2E | Para criar e melhorar suite de testes |
396
+ | `smoke-tester` | Validação pós-alteração | Para testar automaticamente após qualquer mudança |
396
397
  | `security-scanner` | SAST, DAST, OWASP Top 10 | Para auditoria de segurança e vulnerabilidades |
397
398
 
398
- ### DevOps & MLOps Infraestrutura e Machine Learning
399
+ ### DevOps, MLOps & Infra
399
400
 
400
401
  | Skill | O que faz | Quando usar |
401
402
  |-------|-----------|-------------|
402
403
  | `devops-toolkit` | Docker, CI/CD, K8s, Terraform | Para automação de infra e deploy |
403
404
  | `mlops-pipeline` | Treinamento, serving, RAG, drift | Para pipelines de ML em produção |
405
+ | `vps-cloud-infra` | 9 provedores VPS/Cloud, hardening | Para provisionar e gerenciar servidores |
406
+ | `vpn-networking` | 7 soluções VPN, troubleshooting | Para redes privadas seguras |
407
+ | `ai-provider-setup` | 10+ provedores de IA, API keys | Para adicionar novos modelos/provedores |
404
408
 
405
409
  ### Produtividade — Automação e Web
406
410
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fabioforest/openclaw",
3
- "version": "3.6.0",
3
+ "version": "3.7.1",
4
4
  "description": "Agentes autônomos para engenharia de software",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -0,0 +1,244 @@
1
+ ---
2
+ name: ai-provider-setup
3
+ description: Guia passo a passo para adicionar e configurar provedores de IA (Gemini, OpenAI, Claude, Groq, Mistral, Ollama, etc.) com obtenção de API keys, configuração e teste.
4
+ triggers:
5
+ - adicionar ia
6
+ - novo modelo
7
+ - api key
8
+ - token ia
9
+ - configurar modelo
10
+ - gemini
11
+ - openai
12
+ - claude
13
+ - groq
14
+ - mistral
15
+ - ollama
16
+ - huggingface
17
+ - cohere
18
+ - deepseek
19
+ - qwen
20
+ - provedor
21
+ - provider
22
+ ---
23
+
24
+ # AI Provider Setup
25
+
26
+ ## Objetivo
27
+ Guiar o usuário passo a passo para adicionar novos provedores e modelos de IA, incluindo obtenção de API keys, configuração no projeto e validação de funcionamento.
28
+
29
+ ## Provedores Suportados — Guia Completo
30
+
31
+ ### 🟢 Google Gemini (Recomendado — Free Tier Generoso)
32
+
33
+ **Modelos disponíveis:** Gemini 2.5 Pro, Gemini 2.5 Flash, Gemini 2.5 Flash-Lite
34
+
35
+ **Como obter a API Key:**
36
+ 1. Acesse [Google AI Studio](https://aistudio.google.com/apikey)
37
+ 2. Faça login com sua conta Google
38
+ 3. Clique em "Create API Key"
39
+ 4. Selecione o projeto GCP (ou crie um novo)
40
+ 5. Copie a chave gerada
41
+
42
+ **Limites do Free Tier:**
43
+ - Gemini Flash: 15 RPM, 1.500 RPD, 1M TPM
44
+ - Gemini Pro: 5 RPM, 25 RPD, 1M TPM
45
+ - **Atenção**: dados do free tier podem ser usados para treinamento. Para opt-out, use o plano pago
46
+
47
+ **Configuração:**
48
+ ```json
49
+ {
50
+ "env": { "vars": { "GOOGLE_API_KEY": "AIza..." } },
51
+ "agents": {
52
+ "defaults": {
53
+ "model": { "primary": "gemini/gemini-2.5-flash" }
54
+ }
55
+ }
56
+ }
57
+ ```
58
+
59
+ ---
60
+
61
+ ### 🟡 OpenAI (GPT-5, GPT-5 mini, Codex)
62
+
63
+ **Modelos disponíveis:** GPT-5.2, GPT-5.1-codex, GPT-5 mini, o3, o4-mini
64
+
65
+ **Como obter a API Key:**
66
+ 1. Acesse [OpenAI Platform](https://platform.openai.com/api-keys)
67
+ 2. Faça login ou crie conta
68
+ 3. Clique em "Create new secret key"
69
+ 4. Dê um nome descritivo (ex: "openclaw-vps")
70
+ 5. Copie a chave (só aparece 1 vez!)
71
+
72
+ **Importante:** Requer cartão de crédito para uso (PAYG — Pay As You Go)
73
+
74
+ **Configuração:**
75
+ ```json
76
+ {
77
+ "env": { "vars": { "OPENAI_API_KEY": "sk-proj-..." } },
78
+ "agents": {
79
+ "defaults": {
80
+ "model": { "primary": "openai/gpt-5.2" }
81
+ }
82
+ }
83
+ }
84
+ ```
85
+
86
+ ---
87
+
88
+ ### 🟣 Anthropic Claude (Claude Opus 4.5, Sonnet 4)
89
+
90
+ **Modelos disponíveis:** Claude Opus 4.5, Claude Sonnet 4, Claude Haiku
91
+
92
+ **Como obter a API Key:**
93
+ 1. Acesse [Anthropic Console](https://console.anthropic.com/settings/keys)
94
+ 2. Crie uma conta (email + verificação)
95
+ 3. Adicione créditos (mínimo US$ 5)
96
+ 4. Clique em "Create Key"
97
+ 5. Copie a chave
98
+
99
+ **Configuração:**
100
+ ```json
101
+ {
102
+ "env": { "vars": { "ANTHROPIC_API_KEY": "sk-ant-..." } },
103
+ "agents": {
104
+ "defaults": {
105
+ "model": { "primary": "anthropic/claude-sonnet-4" }
106
+ }
107
+ }
108
+ }
109
+ ```
110
+
111
+ ---
112
+
113
+ ### 🟠 Groq (Free, Ultra-Rápido)
114
+
115
+ **Modelos disponíveis:** Llama 3.3 70B, Mixtral 8x7B, Gemma 2 9B
116
+
117
+ **Como obter a API Key:**
118
+ 1. Acesse [GroqCloud Console](https://console.groq.com/keys)
119
+ 2. Faça login com Google ou GitHub
120
+ 3. Clique em "Create API Key"
121
+ 4. Copie a chave
122
+
123
+ **Limites do Free Tier (sem cartão):**
124
+ - 30 RPM, 14.400 RPD, 6.000 TPM (varia por modelo)
125
+ - Sem armazenamento de dados (política de privacidade forte)
126
+
127
+ **Configuração:**
128
+ ```json
129
+ {
130
+ "env": { "vars": { "GROQ_API_KEY": "gsk_..." } },
131
+ "agents": {
132
+ "defaults": {
133
+ "model": { "primary": "groq/llama-3.3-70b-versatile" }
134
+ }
135
+ }
136
+ }
137
+ ```
138
+
139
+ ---
140
+
141
+ ### 🔵 Mistral AI
142
+
143
+ **Modelos disponíveis:** Mistral Large, Mistral Medium, Codestral, Pixtral
144
+
145
+ **Como obter a API Key:**
146
+ 1. Acesse [Mistral Console](https://console.mistral.ai/api-keys)
147
+ 2. Crie conta (requer verificação por telefone no plano free)
148
+ 3. Clique em "Create new key"
149
+ 4. Copie a chave
150
+
151
+ **Free Tier (Experiment):** Limites conservadores, dados podem ser usados para treinamento (opt-out disponível)
152
+
153
+ **Configuração:**
154
+ ```json
155
+ {
156
+ "env": { "vars": { "MISTRAL_API_KEY": "..." } },
157
+ "agents": {
158
+ "defaults": {
159
+ "model": { "primary": "mistral/mistral-large-latest" }
160
+ }
161
+ }
162
+ }
163
+ ```
164
+
165
+ ---
166
+
167
+ ### 🟤 Ollama (Local, Gratuito, Privado)
168
+
169
+ **Modelos disponíveis:** Qwen 2.5 Coder, Llama 3.3, DeepSeek Coder V2, Phi-3, Mistral, Gemma
170
+
171
+ **Como instalar:**
172
+ ```bash
173
+ # macOS / Linux
174
+ curl -fsSL https://ollama.com/install.sh | sh
175
+
176
+ # Baixar modelo
177
+ ollama pull qwen2.5-coder:7b
178
+
179
+ # Verificar se está rodando
180
+ ollama list
181
+ curl http://localhost:11434/api/tags
182
+ ```
183
+
184
+ **Vantagens:** 100% local, sem custos, total privacidade, sem rate limits
185
+ **Desvantagens:** Requer GPU/RAM, modelos menores que APIs cloud
186
+
187
+ **Configuração (com OpenClaw):**
188
+ ```json
189
+ {
190
+ "agents": {
191
+ "defaults": {
192
+ "model": { "primary": "ollama/qwen2.5-coder:7b" }
193
+ }
194
+ }
195
+ }
196
+ ```
197
+
198
+ ---
199
+
200
+ ### 🟢 Cohere
201
+
202
+ **Como obter:** [Cohere Dashboard](https://dashboard.cohere.com/api-keys) → Trial: 1.000 calls/mês
203
+
204
+ ### 🔵 DeepSeek
205
+
206
+ **Como obter:** [DeepSeek Platform](https://platform.deepseek.com/api_keys) → Créditos iniciais gratuitos
207
+
208
+ ### 🟡 HuggingFace Inference
209
+
210
+ **Como obter:** [HuggingFace Settings](https://huggingface.co/settings/tokens) → Free tier com créditos
211
+
212
+ ### 🟠 OpenRouter (Multi-provedor)
213
+
214
+ **Como obter:** [OpenRouter Keys](https://openrouter.ai/keys) → 50 req/dia free, acesso a 100+ modelos
215
+
216
+ ---
217
+
218
+ ## Fluxo de adição de novo provedor
219
+
220
+ 1. **Escolher provedor** com base em: custo, qualidade, privacidade, velocidade
221
+ 2. **Obter API Key** seguindo o passo a passo acima
222
+ 3. **Configurar** no `openclaw.json` (env.vars + agents.defaults.model)
223
+ 4. **Testar** com um request simples (smoke-tester)
224
+ 5. **Definir fallbacks** (chain de modelos por perfil)
225
+ 6. **Documentar** custos estimados e limites
226
+
227
+ ## Comparativo rápido
228
+
229
+ | Provedor | Free | Privacidade | Velocidade | Qualidade | Melhor para |
230
+ |---------|------|------------|-----------|----------|------------|
231
+ | Gemini | ✅ Generoso | ⚠️ Treina (free) | ⚡ Rápido | ⭐⭐⭐⭐ | Uso geral, coding |
232
+ | Groq | ✅ Sem cartão | ✅ Não armazena | ⚡⚡⚡ Ultra | ⭐⭐⭐ | Volume alto, rascunhos |
233
+ | Ollama | ✅ Totalmente | ✅ 100% local | ⚡ (com GPU) | ⭐⭐⭐ | Privacidade total |
234
+ | OpenAI | ❌ Pago | ✅ Não treina | ⚡⚡ Rápido | ⭐⭐⭐⭐⭐ | Máxima qualidade |
235
+ | Claude | ❌ Pago | ✅ 30 dias | ⚡⚡ Rápido | ⭐⭐⭐⭐⭐ | Raciocínio, ética |
236
+ | Mistral | ⚠️ Limitado | ⚠️ Opt-out | ⚡⚡ Rápido | ⭐⭐⭐⭐ | Coding, EU compliance |
237
+ | OpenRouter | ⚠️ 50/dia | ✅ Não armazena | Varia | Varia | Multi-modelo |
238
+
239
+ ## Regras de segurança
240
+ - ✅ Armazenar API keys em variáveis de ambiente ou secret manager
241
+ - ✅ Testar com request simples antes de usar em produção
242
+ - ✅ Documentar custos e limites de cada provedor
243
+ - ❌ Nunca commitar API keys no Git
244
+ - ❌ Nunca logar API keys em texto puro nos audit logs
@@ -0,0 +1,160 @@
1
+ ---
2
+ name: smoke-tester
3
+ description: Validação automática pós-alteração. Testa se mudanças funcionam como esperado usando testes automatizados, browser testing (quando disponível) ou verificações programáticas.
4
+ triggers:
5
+ - testar alteração
6
+ - verificar se funciona
7
+ - smoke test
8
+ - validar
9
+ - testar se funciona
10
+ - funciona?
11
+ - está funcionando
12
+ - conferir
13
+ - healthcheck pós-deploy
14
+ - verificação
15
+ - pós-alteração
16
+ ---
17
+
18
+ # Smoke Tester (Validação Pós-Alteração)
19
+
20
+ ## Objetivo
21
+ Após **qualquer alteração** no projeto (novo agente, config, deploy, código), executar automaticamente uma bateria de testes para confirmar que tudo funciona como esperado.
22
+
23
+ > **Princípio**: Nenhuma alteração é considerada completa sem validação. O agente DEVE testar após aplicar.
24
+
25
+ ## Contexto necessário
26
+ - O que foi alterado (config, código, agente, infra)
27
+ - Ambiente (local, Docker, VPS, IDE)
28
+ - Ferramentas disponíveis (browser tool, terminal, API)
29
+
30
+ ## Fluxo automático pós-alteração
31
+
32
+ ```
33
+ ALTERAÇÃO → DETECTAR TIPO → ESCOLHER TESTE → EXECUTAR → REPORTAR
34
+ ```
35
+
36
+ ### 1. Detectar tipo de alteração
37
+
38
+ | Tipo | Exemplos | Teste adequado |
39
+ |------|----------|---------------|
40
+ | Config de agente | Novo agente, modelo, fallback | Health ping + resposta de teste |
41
+ | Config de gateway | Porta, bind, auth, CORS | Curl/HTTP request + status check |
42
+ | Config de canal | Telegram, Discord, Slack | Enviar mensagem de teste + verificar status |
43
+ | Código (backend) | API, lógica, módulo | Unit tests + integration tests |
44
+ | Código (frontend) | UI, componente, página | Browser testing (screenshot + assertions) |
45
+ | Infraestrutura | Docker, VPN, firewall | Connectivity check + healthcheck |
46
+ | Dependências | npm install, pip install | Build + test suite |
47
+
48
+ ### 2. Métodos de teste por ambiente
49
+
50
+ #### Terminal/CLI (sempre disponível)
51
+ ```bash
52
+ # Verificar se processo está rodando
53
+ docker ps | grep <container>
54
+ systemctl status <service>
55
+
56
+ # Testar endpoint HTTP
57
+ curl -s -o /dev/null -w "%{http_code}" http://localhost:PORT/health
58
+
59
+ # Verificar conectividade
60
+ ping -c 1 <host>
61
+ ssh -o ConnectTimeout=5 <host> echo "OK"
62
+
63
+ # Rodar suite de testes
64
+ npm test
65
+ pytest
66
+ go test ./...
67
+ ```
68
+
69
+ #### Browser Testing (Antigravity, Cursor com browser tool)
70
+ Quando o agente tem acesso ao browser tool:
71
+ ```
72
+ 1. Abrir URL alvo no navegador
73
+ 2. Verificar se a página carrega (screenshot)
74
+ 3. Verificar elementos esperados na DOM
75
+ 4. Clicar em elementos interativos
76
+ 5. Verificar console do navegador (sem erros)
77
+ 6. Capturar screenshot final como prova
78
+ ```
79
+
80
+ **Cenários de browser testing:**
81
+ - Dashboard do OpenClaw: verificar se carrega, dropdown de agentes presente
82
+ - Site/App: verificar homepage, navegação, formulários
83
+ - Página de login: testar fluxo completo
84
+ - API docs: verificar se Swagger/OpenAPI renderiza
85
+
86
+ #### API Testing (programático)
87
+ ```bash
88
+ # Testar agente do OpenClaw
89
+ curl -X POST http://localhost:18789/api/chat \
90
+ -H "Authorization: Bearer <token>" \
91
+ -d '{"message": "ping"}' \
92
+ | jq '.response'
93
+
94
+ # Verificar status de agentes
95
+ curl http://localhost:18789/api/status --json | jq '.agents'
96
+ ```
97
+
98
+ ### 3. Checklists por tipo de alteração
99
+
100
+ #### Novo Agente Adicionado
101
+ - [ ] Config válida no `openclaw.json` (id, model, workspace)
102
+ - [ ] Reiniciar gateway/container
103
+ - [ ] Verificar que o agente aparece no status (`/api/status`)
104
+ - [ ] Enviar mensagem de teste e confirmar resposta
105
+ - [ ] Se tem browser: verificar dropdown no dashboard
106
+ - [ ] Verificar logs do container (sem erros)
107
+
108
+ #### Novo Modelo/Provedor de IA
109
+ - [ ] API Key configurada (env var ou config)
110
+ - [ ] Modelo acessível (fazer request de teste)
111
+ - [ ] Fallback funcionando (simular falha do primário)
112
+ - [ ] Rate limits conhecidos e documentados
113
+ - [ ] Custo estimado por request documentado
114
+
115
+ #### Configuração Multi-Agente
116
+ - [ ] Cada agente tem workspace separado
117
+ - [ ] Cada agente responde individualmente
118
+ - [ ] Sessões não se misturam entre agentes
119
+ - [ ] Fallback de modelo funciona para cada agente
120
+ - [ ] Dashboard mostra todos os agentes no dropdown
121
+
122
+ #### Alteração de VPN/Rede
123
+ - [ ] Pingar IP da VPN (`ping 10.66.0.X`)
124
+ - [ ] SSH via VPN funciona
125
+ - [ ] Portas esperadas acessíveis (curl healthcheck)
126
+ - [ ] Firewall não bloqueia tráfego esperado
127
+ - [ ] DNS resolve corretamente
128
+
129
+ #### Alteração de Código
130
+ - [ ] Build passa sem erros
131
+ - [ ] Testes unitários passam
132
+ - [ ] Testes de integração passam (se existirem)
133
+ - [ ] Sem erros no console do navegador (se frontend)
134
+ - [ ] Screenshot de referência comparado (se UI)
135
+
136
+ ### 4. Relatório de validação
137
+
138
+ Após cada teste, gerar relatório em `.agent/audit/`:
139
+
140
+ ```markdown
141
+ # Validação Pós-Alteração
142
+ - **Data**: 2026-02-19T11:24:00
143
+ - **Alteração**: Adicionado agente "browser" com modelo Gemini 3 Flash
144
+ - **Testes executados**: 5
145
+ - **Resultados**:
146
+ - ✅ Config válida
147
+ - ✅ Gateway reiniciado
148
+ - ✅ Agente aparece no status
149
+ - ✅ Resposta de teste recebida
150
+ - ⚠️ Dropdown no dashboard: não verificado (sem browser tool)
151
+ - **Status**: PASS (4/5 OK, 1 não aplicável)
152
+ ```
153
+
154
+ ## Regras
155
+ - ✅ SEMPRE testar após qualquer alteração. Sem exceção
156
+ - ✅ Se o browser tool está disponível, USAR para verificação visual
157
+ - ✅ Capturar screenshots como prova de validação
158
+ - ✅ Se um teste falha, reportar imediatamente e propor correção
159
+ - ❌ Nunca considerar uma alteração "pronta" sem pelo menos 1 teste de verificação
160
+ - ❌ Nunca pular validação em produção
@@ -0,0 +1,200 @@
1
+ ---
2
+ name: vpn-networking
3
+ description: Setup e gerenciamento de VPNs (WireGuard, Tailscale, OpenVPN, Cloudflare Tunnel, ZeroTier, Headscale) e networking seguro entre VPS, Mac, Docker e cloud.
4
+ triggers:
5
+ - vpn
6
+ - wireguard
7
+ - tailscale
8
+ - openvpn
9
+ - cloudflare tunnel
10
+ - zerotier
11
+ - headscale
12
+ - rede
13
+ - network
14
+ - tunel
15
+ - tunnel
16
+ - peer
17
+ - mesh
18
+ - overlay
19
+ - site-to-site
20
+ ---
21
+
22
+ # VPN & Networking
23
+
24
+ ## Objetivo
25
+ Configurar redes privadas seguras entre VPS, dispositivos locais e containers, usando a solução de VPN mais adequada para cada cenário.
26
+
27
+ ## Soluções VPN — Comparativo
28
+
29
+ | VPN | Tipo | Setup | Performance | Self-hosted | Free | Melhor para |
30
+ |-----|------|-------|------------|------------|------|------------|
31
+ | **WireGuard** | Kernel VPN | Médio | ⚡⚡⚡ Excelente | ✅ Total | ✅ | Site-to-site, alta performance |
32
+ | **Tailscale** | Mesh overlay | ⚡ Fácil | ⚡⚡ Boa | ⚠️ Parcial | ✅ (3 users) | Zero-config, multi-device |
33
+ | **Headscale** | Mesh overlay | Médio | ⚡⚡ Boa | ✅ Total | ✅ | Tailscale self-hosted |
34
+ | **OpenVPN** | TLS VPN | Complexo | ⚡ OK | ✅ Total | ✅ | Legacy, compatibilidade |
35
+ | **Cloudflare Tunnel** | Reverse tunnel | ⚡ Fácil | ⚡⚡ Boa | ❌ Cloudflare | ✅ | Expor serviços sem IP público |
36
+ | **ZeroTier** | Mesh overlay | ⚡ Fácil | ⚡⚡ Boa | ✅ Total | ✅ (25 devices) | IoT, redes grandes |
37
+ | **Nebula** | Mesh overlay | Médio | ⚡⚡⚡ Excelente | ✅ Total | ✅ | Escala enterprise (Slack) |
38
+
39
+ ---
40
+
41
+ ## WireGuard — Setup Completo
42
+
43
+ ### Cenário: VPS → Mac (ponto a ponto)
44
+
45
+ **No servidor (VPS):**
46
+ ```bash
47
+ # Instalar
48
+ apt install wireguard
49
+
50
+ # Gerar chaves
51
+ wg genkey | tee /etc/wireguard/private.key | wg pubkey > /etc/wireguard/public.key
52
+ chmod 600 /etc/wireguard/private.key
53
+
54
+ # Configurar /etc/wireguard/wg0.conf
55
+ [Interface]
56
+ PrivateKey = <CHAVE_PRIVADA_VPS>
57
+ Address = 10.66.0.1/24
58
+ ListenPort = 51820
59
+ PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
60
+ PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
61
+
62
+ [Peer]
63
+ PublicKey = <CHAVE_PUBLICA_MAC>
64
+ AllowedIPs = 10.66.0.2/32
65
+
66
+ # Ativar
67
+ wg-quick up wg0
68
+ systemctl enable wg-quick@wg0
69
+ ```
70
+
71
+ **No Mac (peer):**
72
+ ```bash
73
+ # Instalar via Homebrew ou App Store
74
+ brew install wireguard-tools
75
+
76
+ # Configurar /etc/wireguard/wg0.conf
77
+ [Interface]
78
+ PrivateKey = <CHAVE_PRIVADA_MAC>
79
+ Address = 10.66.0.2/24
80
+
81
+ [Peer]
82
+ PublicKey = <CHAVE_PUBLICA_VPS>
83
+ Endpoint = <IP_PUBLICO_VPS>:51820
84
+ AllowedIPs = 10.66.0.0/24
85
+ PersistentKeepalive = 25
86
+
87
+ # Conectar
88
+ wg-quick up wg0
89
+ ```
90
+
91
+ ### Dashboard (WGDashboard — Docker)
92
+ ```yaml
93
+ # docker-compose.yml
94
+ services:
95
+ wgdashboard:
96
+ image: donaldzou/wgdashboard:latest
97
+ cap_add: [NET_ADMIN, SYS_MODULE]
98
+ ports:
99
+ - "10086:10086"
100
+ - "51820:51820/udp"
101
+ volumes:
102
+ - ./wg-data:/etc/wireguard
103
+ sysctls:
104
+ net.ipv4.ip_forward: 1
105
+ ```
106
+
107
+ ---
108
+
109
+ ## Tailscale — Zero-Config
110
+
111
+ ```bash
112
+ # VPS
113
+ curl -fsSL https://tailscale.com/install.sh | sh
114
+ tailscale up --ssh
115
+
116
+ # Mac
117
+ brew install tailscale
118
+ tailscale up
119
+
120
+ # Verificar rede
121
+ tailscale status
122
+ # Dispositivos se encontram automaticamente (MagicDNS)
123
+ ```
124
+
125
+ **Vantagens:** Zero-config, NAT traversal automático, MagicDNS, SSH integrado, ACLs
126
+ **Limitações:** Depende de coord server (Tailscale Inc.), free até 3 users
127
+
128
+ ---
129
+
130
+ ## Headscale — Tailscale Self-Hosted
131
+
132
+ ```bash
133
+ # No servidor (control plane)
134
+ wget https://github.com/juanfont/headscale/releases/latest/download/headscale_linux_amd64
135
+ chmod +x headscale_linux_amd64
136
+ mv headscale_linux_amd64 /usr/local/bin/headscale
137
+
138
+ # Configurar /etc/headscale/config.yaml
139
+ # Registrar namespace e nodes
140
+ headscale namespaces create minha-rede
141
+ headscale nodes register --namespace minha-rede --key <node-key>
142
+ ```
143
+
144
+ ---
145
+
146
+ ## Cloudflare Tunnel — Sem IP Público
147
+
148
+ ```bash
149
+ # Instalar cloudflared
150
+ curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg
151
+ apt install cloudflared
152
+
153
+ # Autenticar
154
+ cloudflared tunnel login
155
+
156
+ # Criar túnel
157
+ cloudflared tunnel create meu-tunel
158
+ cloudflared tunnel route dns meu-tunel app.meudominio.com
159
+
160
+ # Configurar ~/.cloudflared/config.yml
161
+ tunnel: <TUNNEL_ID>
162
+ ingress:
163
+ - hostname: app.meudominio.com
164
+ service: http://localhost:3000
165
+ - service: http_status:404
166
+
167
+ # Rodar
168
+ cloudflared tunnel run meu-tunel
169
+ ```
170
+
171
+ ---
172
+
173
+ ## Cenários comuns e recomendação
174
+
175
+ | Cenário | VPN recomendada | Motivo |
176
+ |---------|----------------|--------|
177
+ | VPS pessoal + Mac | WireGuard | Performance, controle total |
178
+ | Múltiplos dispositivos pessoais | Tailscale | Zero-config, fácil |
179
+ | Empresa/Team | Headscale ou Tailscale Pro | ACLs, controle |
180
+ | Expor serviço sem IP fixo | Cloudflare Tunnel | Sem porta aberta |
181
+ | IoT / muitos devices | ZeroTier | Escalável, simples |
182
+ | Legacy / compatibilidade | OpenVPN | Suporte universal |
183
+ | Alta performance + escala | Nebula | Kernel-level, mesh |
184
+
185
+ ## Troubleshooting comum
186
+
187
+ | Problema | Diagnóstico | Solução |
188
+ |---------|------------|---------|
189
+ | Peer não conecta | `wg show` (handshake?) | Verificar endpoint, firewall, chaves |
190
+ | Tráfego não passa | `ping 10.66.0.X` falha | Verificar AllowedIPs, ip_forward |
191
+ | DNS não resolve | `dig @10.66.0.1` | Configurar DNS no wg0.conf |
192
+ | Conexão cai | Sem keepalive | Adicionar `PersistentKeepalive = 25` |
193
+ | Performance ruim | `iperf3` entre peers | Verificar MTU (1420 para WG) |
194
+
195
+ ## Regras de segurança
196
+ - ✅ Chaves WireGuard devem ter permissão 600
197
+ - ✅ Firewall deve permitir apenas porta da VPN publicamente
198
+ - ✅ SSH deve ser acessível SOMENTE via VPN quando possível
199
+ - ❌ Nunca compartilhar chaves privadas entre peers
200
+ - ❌ Nunca usar AllowedIPs = 0.0.0.0/0 sem entender as implicações
@@ -0,0 +1,140 @@
1
+ ---
2
+ name: vps-cloud-infra
3
+ description: Setup, gerenciamento e hardening de VPS e cloud servers. Suporte a Contabo, Hetzner, DigitalOcean, Linode, Oracle Cloud, AWS Lightsail, Vultr e mais.
4
+ triggers:
5
+ - vps
6
+ - servidor
7
+ - server
8
+ - contabo
9
+ - hetzner
10
+ - digitalocean
11
+ - linode
12
+ - oracle cloud
13
+ - aws
14
+ - lightsail
15
+ - vultr
16
+ - cloud
17
+ - ubuntu server
18
+ - debian
19
+ - centos
20
+ - ssh
21
+ - firewall
22
+ - ufw
23
+ - iptables
24
+ - hardening
25
+ - provisionamento
26
+ ---
27
+
28
+ # VPS & Cloud Infrastructure
29
+
30
+ ## Objetivo
31
+ Provisionar, configurar, proteger e gerenciar servidores VPS/Cloud de qualquer provedor, seguindo boas práticas de segurança e automação.
32
+
33
+ ## Provedores suportados — Comparativo
34
+
35
+ | Provedor | Preço mín/mês | vCPU | RAM | Disco | Rede | Free tier | Melhor para |
36
+ |---------|--------------|------|-----|-------|------|---------|------------|
37
+ | **Contabo** | €4.99 | 4 | 6GB | 100GB SSD | 32TB | ❌ | Custo/benefício, storage |
38
+ | **Hetzner** | €3.79 | 2 | 2GB | 20GB | 20TB | ❌ | EU, performance, ARM |
39
+ | **DigitalOcean** | $6 | 1 | 1GB | 25GB | 1TB | $200 (60d) | Simplicidade, Apps |
40
+ | **Linode/Akamai** | $5 | 1 | 1GB | 25GB | 1TB | $100 (60d) | Comunidade, docs |
41
+ | **Vultr** | $2.50 | 1 | 512MB | 10GB | 500GB | $250 (30d) | Ultra-barato |
42
+ | **Oracle Cloud** | Free | 4 ARM | 24GB | 200GB | 10TB | ✅ Always Free | GPU grátis (ARM Ampere) |
43
+ | **AWS Lightsail** | $3.50 | 1 | 512MB | 20GB | 1TB | $0 (3mo) | Ecossistema AWS |
44
+ | **GCP Compute** | $6.11 | 1 | 0.6GB | 10GB | Egress $ | ✅ e2-micro | Integração Google |
45
+ | **Azure B1s** | Free | 1 | 1GB | 64GB | 15GB | ✅ 12 meses | Enterprise, .NET |
46
+
47
+ ## Setup inicial de VPS — Checklist universal
48
+
49
+ ### Passo 1: Acesso inicial
50
+ ```bash
51
+ # Conectar via SSH (primeiro acesso, geralmente root)
52
+ ssh root@<IP_DO_SERVIDOR>
53
+
54
+ # Se exigir senha, trocar por chave imediatamente
55
+ ssh-copy-id -i ~/.ssh/id_ed25519.pub root@<IP>
56
+ ```
57
+
58
+ ### Passo 2: Criar usuário admin (nunca usar root no dia a dia)
59
+ ```bash
60
+ adduser fabio
61
+ usermod -aG sudo fabio
62
+ mkdir -p /home/fabio/.ssh
63
+ cp /root/.ssh/authorized_keys /home/fabio/.ssh/
64
+ chown -R fabio:fabio /home/fabio/.ssh
65
+ chmod 700 /home/fabio/.ssh
66
+ chmod 600 /home/fabio/.ssh/authorized_keys
67
+ ```
68
+
69
+ ### Passo 3: Hardening SSH
70
+ ```bash
71
+ # /etc/ssh/sshd_config
72
+ PermitRootLogin no
73
+ PasswordAuthentication no
74
+ PubkeyAuthentication yes
75
+ MaxAuthTries 3
76
+ ClientAliveInterval 300
77
+ ClientAliveCountMax 2
78
+
79
+ # Reiniciar SSH
80
+ systemctl restart sshd
81
+ ```
82
+
83
+ ### Passo 4: Firewall
84
+ ```bash
85
+ # UFW (Ubuntu/Debian)
86
+ ufw default deny incoming
87
+ ufw default allow outgoing
88
+ ufw allow ssh
89
+ ufw allow 80/tcp
90
+ ufw allow 443/tcp
91
+ ufw enable
92
+
93
+ # Para VPN: adicionar porta WireGuard
94
+ ufw allow 51820/udp
95
+ ```
96
+
97
+ ### Passo 5: Atualizações automáticas
98
+ ```bash
99
+ apt install unattended-upgrades
100
+ dpkg-reconfigure -plow unattended-upgrades
101
+ ```
102
+
103
+ ### Passo 6: Docker (se necessário)
104
+ ```bash
105
+ curl -fsSL https://get.docker.com | sh
106
+ usermod -aG docker fabio
107
+ # Relogar para aplicar grupo
108
+ ```
109
+
110
+ ### Passo 7: Monitoramento básico
111
+ ```bash
112
+ # Instalar ferramentas essenciais
113
+ apt install htop iotop ncdu fail2ban
114
+
115
+ # Fail2ban (proteção contra brute force)
116
+ systemctl enable fail2ban
117
+ systemctl start fail2ban
118
+ ```
119
+
120
+ ## Hardening avançado
121
+
122
+ | Item | Comando/Config | Prioridade |
123
+ |------|---------------|-----------|
124
+ | SSH key-only | `PasswordAuthentication no` | 🔴 Crítico |
125
+ | Disable root login | `PermitRootLogin no` | 🔴 Crítico |
126
+ | Fail2ban | `apt install fail2ban` | 🟠 Alta |
127
+ | UFW firewall | `ufw enable` | 🟠 Alta |
128
+ | Unattended upgrades | `dpkg-reconfigure unattended-upgrades` | 🟡 Média |
129
+ | SSH port diferente | `Port 2222` em sshd_config | 🟡 Média |
130
+ | 2FA SSH | `libpam-google-authenticator` | 🟢 Opcional |
131
+ | Audit logging | `auditd` + regras | 🟢 Opcional |
132
+ | CrowdSec | Alternativa moderna ao fail2ban | 🟢 Opcional |
133
+
134
+ ## Regras de segurança
135
+ - ✅ Nunca usar root para tarefas do dia a dia
136
+ - ✅ SSH somente por chave (nunca senha)
137
+ - ✅ Firewall ativo com regras mínimas
138
+ - ✅ Backups regulares (ponto de restauração antes de mudanças)
139
+ - ❌ Nunca expor portas desnecessárias sem firewall
140
+ - ❌ Nunca armazenar chaves SSH privadas no servidor