# GitHub Copilot Instructions ## 🚨 REGRA CRÍTICA DE DEPLOY **NUNCA envie arquivos manualmente com scp/rsync para o servidor.** ### Deploy Obrigatório Sempre que precisar enviar código para produção, USE OS SCRIPTS: ```bash # Para mudanças no BACKEND (PHP/Laravel) cd /workspaces/webmoney/backend && ./deploy.sh # Para mudanças no FRONTEND (React/JS) cd /workspaces/webmoney/frontend && ./deploy.sh ``` ### Por que usar os scripts? Os scripts de deploy: 1. **Backend (deploy.sh)**: - Sincroniza arquivos com rsync - Instala dependências com composer - Executa migrações - Limpa e regenera cache - Reinicia PHP-FPM - Ajusta permissões 2. **Frontend (deploy.sh)**: - Faz build do React (npm run build) - Envia para /var/www/webmoney/frontend/**dist** (não /frontend!) - Verifica se deploy funcionou ### Proibições ❌ `scp arquivo root@213.165.93.60:/var/www/webmoney/...` ❌ `rsync arquivo root@213.165.93.60:/var/www/webmoney/...` ❌ Copiar arquivos individuais manualmente ### Workflow 1. Editar código 2. `cd backend && ./deploy.sh` ou `cd frontend && ./deploy.sh` 3. Testar em https://webmoney.cnxifly.com 4. Se OK: - `VERSION++` (incrementar versão) - Atualizar `CHANGELOG.md` (documentar mudanças) - Atualizar `README.md` (sempre que necessário - novas features, requisitos, comandos, etc.) 5. Commit e push ### 📝 Quando atualizar README.md - Nova funcionalidade importante - Mudança de requisitos (versão PHP, Node, etc.) - Novos endpoints de API - Alteração de variáveis de ambiente - Novos comandos artisan - Mudança na estrutura do projeto ## 🚫 Regras de UI/UX **NUNCA use alert(), confirm() ou prompt() do navegador.** Sempre usar componentes modais ou toast: - Para erros: `toast.error('mensagem')` - Para sucesso: `toast.success('mensagem')` - Para confirmação: Usar `` component - Para formulários: Criar modal customizado ```jsx // ❌ PROIBIDO alert('Erro!'); confirm('Tem certeza?'); // ✅ CORRETO import { useToast } from '../components/Toast'; import { ConfirmModal } from '../components/Modal'; const toast = useToast(); toast.error('Erro!'); toast.success('Sucesso!'); ``` ## Estrutura do Servidor ``` /var/www/webmoney/ ├── backend/ # Laravel (Nginx → PHP-FPM) └── frontend/ └── dist/ # React build (Nginx root) ``` ## Credenciais - **Servidor**: root@213.165.93.60 (senha: Master9354) - **Banco**: webmoney / M@ster9354 - **Usuário WebMoney**: marco@cnxifly.com / M@ster9354 ## 🔑 Acesso SSH - SEMPRE usar sshpass **OBRIGATÓRIO:** Sempre usar `sshpass` para comandos SSH/SCP/RSYNC. ```bash # SSH para executar comandos sshpass -p 'Master9354' ssh -o StrictHostKeyChecking=no root@213.165.93.60 "comando" # Ver logs do Laravel sshpass -p 'Master9354' ssh -o StrictHostKeyChecking=no root@213.165.93.60 "tail -50 /var/www/webmoney/backend/storage/logs/laravel.log" # Executar tinker sshpass -p 'Master9354' ssh -o StrictHostKeyChecking=no root@213.165.93.60 "cd /var/www/webmoney/backend && php artisan tinker --execute='codigo'" # MySQL sshpass -p 'Master9354' ssh -o StrictHostKeyChecking=no root@213.165.93.60 "mysql -u webmoney -p'M@ster9354' webmoney -e 'QUERY'" ``` ❌ NUNCA usar `ssh root@213.165.93.60` sem sshpass (vai travar esperando senha) ## Documentação Consulte `.DIRETRIZES_DESENVOLVIMENTO_v5` para regras completas.