# Guia Rápido - Setup Automatizado Appwrite ## 🎯 O Que o Script Faz O script `setup-appwrite.js` automatiza todo o setup do Appwrite: ✅ Cria o Database "DevOpsPlatform" ✅ Cria 4 Collections com schemas corretos: - **servers**: name, ip, status (enum: online/offline), region - **github_repos**: repo_name, url, last_commit, status - **audit_logs**: event, user_id, timestamp - **cloud_accounts**: provider, apiKey, label ✅ Popula com dados de exemplo: - 4 servidores - 3 repositórios GitHub - 3 audit logs - 2 cloud accounts ✅ Atualiza o arquivo `.env` automaticamente com todos os IDs gerados ## 📋 Passo 1: Obter API Key do Appwrite 1. Acesse https://cloud.appwrite.io 2. Entre no seu projeto (ID: `68be03580005c05fb11f`) 3. Vá em **Settings** → **API Keys** 4. Clique em **Create API Key** 5. Dê um nome: "Setup Script" ou "Admin Key" 6. **Importante**: Marque **TODOS** os scopes (permissões) 7. Clique em **Create** 8. **Copie a API Key** (ela só aparece uma vez!) ## 📝 Passo 2: Adicionar API Key no .env Edite o arquivo `.env` e preencha a linha 28: ```env APPWRITE_API_KEY=sua_api_key_aqui ``` **Exemplo**: ```env APPWRITE_API_KEY=standard_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6 ``` ## 🚀 Passo 3: Executar o Script ```bash npm run setup:appwrite ``` Ou diretamente: ```bash node setup-appwrite.js ``` ## ✅ O Que Você Verá ``` 🚀 Iniciando setup do Appwrite... 📍 Endpoint: https://nyc.cloud.appwrite.io/v1 📁 Project ID: 68be03580005c05fb11f 📦 Criando Database "DevOpsPlatform"... ✅ Database criado: 67a1b2c3d4e5f6 📋 Criando collection "servers"... ✅ Collection "servers" criada: servers 📋 Criando collection "github_repos"... ✅ Collection "github_repos" criada: github_repos 📋 Criando collection "audit_logs"... ✅ Collection "audit_logs" criada: audit_logs 📋 Criando collection "cloud_accounts"... ✅ Collection "cloud_accounts" criada: cloud_accounts 🌱 Populando com dados de exemplo... ✅ Servidor criado: web-01 ✅ Servidor criado: web-02 ✅ Servidor criado: db-01 ✅ Servidor criado: cache-01 ✅ Repositório criado: core-platform ✅ Repositório criado: api-backend ✅ Repositório criado: mobile-app ✅ Log criado: User login ✅ Log criado: Server deployed ✅ Log criado: Configuration updated ✅ Conta criada: Cloudflare ✅ Conta criada: AWS 📝 Atualizando arquivo .env... ✅ Arquivo .env atualizado! 🎉 Setup concluído com sucesso! 📋 Resumo: Database ID: 67a1b2c3d4e5f6 servers: servers github_repos: github_repos audit_logs: audit_logs cloud_accounts: cloud_accounts ✅ Arquivo .env atualizado com os IDs 🚀 Próximo passo: npm run dev:web ``` ## 🔍 Verificar no Appwrite Console Após executar, acesse https://cloud.appwrite.io e verifique: 1. **Databases**: Deve aparecer "DevOpsPlatform" 2. **Collections**: Dentro do database, 4 collections com dados 3. **Documents**: Cada collection terá documentos de exemplo ## 🧪 Testar o Dashboard ```bash npm run dev:web ``` Acesse http://localhost:5173 e faça login. O dashboard deve mostrar: - Servidores no widget Overview - Repositórios GitHub - Audit logs em tempo real no terminal ## ❌ Troubleshooting ### Erro: "APPWRITE_API_KEY is missing" **Solução**: Preencha a `APPWRITE_API_KEY` no arquivo `.env` (linha 28) ### Erro: "Invalid API Key" **Solução**: 1. Verifique se copiou a chave completa 2. Confirme que a chave tem todos os scopes marcados 3. Tente criar uma nova API Key ### Erro: "Collection already exists" (409) **Solução**: Isso é normal! O script detecta e usa as collections existentes. ### Erro: "Permission denied" **Solução**: A API Key precisa ter scopes de Admin. Recrie com todos os scopes marcados. ## 🔄 Executar Novamente Você pode executar o script múltiplas vezes sem problemas: - Se database existe, ele usa o existente - Se collections existem, elas são reutilizadas - Dados duplicados são ignorados ## 📝 Próximos Passos Após o setup bem-sucedido: 1. ✅ Verificar `.env` foi atualizado com os IDs 2. ✅ Executar `npm run dev:web` 3. ✅ Fazer login no dashboard 4. ✅ Verificar se os dados aparecem 5. ✅ Testar o terminal de realtime (audit logs) --- **Dúvidas?** Consulte o [README principal](README.md) para mais detalhes.