@conexean/deploy
v2.2.6
Published
🚀 CLI moderno para deploy de projetos Next.js da Conexean
Maintainers
Readme
🚀 Conexean Deploy CLI
CLI moderno para deploy de projetos Next.js da Conexean
📋 Índice
- 🚀 Instalação
- ⚡ Uso Rápido
- 🔧 Configuração
- 📚 Comandos
- 🗄️ Comandos de Banco de Dados
- 🔧 Configuração Avançada
- 🔍 Troubleshooting
- 🤝 Contribuição
🚀 Instalação
Instalação Global (Recomendado)
npm install -g @conexean/deploy
# ou
pnpm add -g @conexean/deployInstalação Local
npm install --save-dev @conexean/deploy
# ou
pnpm add -D @conexean/deployUso Direto
npx @conexean/deploy --help⚡ Uso Rápido
# 1. Inicializar configuração
conexean-deploy init
# 2. Criar banco de dados
conexean-deploy db create
# 3. Fazer build
conexean-deploy build
# 4. Fazer deploy
conexean-deploy deploy
# 5. Verificar status
conexean-deploy status
# 6. Listar bancos e usuários
conexean-deploy db list🔧 Configuração
1. Inicializar Projeto
conexean-deploy initIsso criará um arquivo deploy.config.json com a configuração básica.
2. Configurar Servidor
Edite o arquivo deploy.config.json:
{
"name": "meu-projeto",
"server": {
"host": "192.168.1.100",
"user": "ubuntu",
"port": "22",
"path": "/var/www/production"
},
"database": {
"host": "localhost",
"port": "5432",
"adminUser": "postgres",
"adminPassword": "senha_admin",
"targetUser": "app_user",
"targetPassword": "senha_app",
"targetDatabase": "app_db"
},
"build": {
"command": "pnpm build",
"outputDir": ".next"
},
"files": [
".next",
"public",
"package.json",
"pnpm-lock.yaml",
"next.config.mjs",
"prisma"
],
"excludePatterns": [
"node_modules",
".git",
".next/cache",
"*.log",
".env.local",
"coverage"
],
"commands": {
"beforeDeploy": [
"echo 'Preparando deploy...'"
],
"afterDeploy": [
"pnpm install --production",
"pnpm prisma generate",
"pm2 delete ${name} || true",
"pm2 start npm --name ${name} -- start"
]
}
}📚 Comandos
Comandos Principais
| Comando | Descrição | Opções |
|---------|-----------|--------|
| init | Inicializa configuração do projeto | --force |
| build | Builda o projeto Next.js | --env, --clean |
| deploy | Faz deploy para o servidor | --env, --force, --no-build, --no-backup |
| rollback | Faz rollback para versão anterior | --env, --version |
| status | Mostra status do projeto | --env |
Exemplos de Uso
# Build para produção
conexean-deploy build --env production
# Deploy para staging
conexean-deploy deploy --env staging
# Deploy forçado (ignora erros)
conexean-deploy deploy --env production --force
# Rollback para versão específica
conexean-deploy rollback --env production --version v1.2.3
# Status do ambiente de produção
conexean-deploy status --env production🗄️ Comandos de Banco de Dados
Comandos Disponíveis
| Comando | Descrição | Opções |
|---------|-----------|--------|
| db backup | Cria backup do banco de produção | --env |
| db backup-local | Cria backup do banco local | - |
| db restore-local | Restaura backup no banco local | [file] |
| db restore-prod | Restaura backup local em produção | [file] |
| db create | Cria banco usando configuração do projeto | - |
| db list | Lista bancos de dados e usuários | --env |
| db drop | Remove banco e usuário do projeto | --env, --force, --user, --database |
Backup e Restore
# Criar backup de produção
conexean-deploy db backup --env production
# Criar backup local
conexean-deploy db backup-local
# Restaurar backup no local
conexean-deploy db restore-local
# Restaurar backup específico no local
conexean-deploy db restore-local backup_projeto_production_2024-01-15.sql
# Restaurar backup local em produção
conexean-deploy db restore-prod
# Restaurar backup específico em produção
conexean-deploy db restore-prod backup_projeto_production_2024-01-15.sql🚀 Criar Banco de Dados
Cria banco de dados usando a configuração do projeto (definida no init):
# Criar banco usando configuração do projeto
conexean-deploy db createO comando usa automaticamente as configurações definidas no deploy.config.json:
- Nome do banco:
config.database.targetDatabase - Usuário:
config.database.targetUser - Senha:
config.database.targetPassword - Host:
config.database.host - Porta:
config.database.port
📋 Listar Bancos e Usuários
# Listar todos os bancos e usuários
conexean-deploy db list
# Listar para ambiente específico
conexean-deploy db list --env productionExibe informações detalhadas:
- Bancos: Nome, tamanho, proprietário, collation
- Usuários: Permissões, bancos proprietários, status
🗑️ Remover Banco e Usuário
# Remover banco e usuário do projeto atual
conexean-deploy db drop
# Remover com confirmação forçada
conexean-deploy db drop --force
# Remover usuário específico
conexean-deploy db drop --user nome_do_usuario --force
# Remover banco específico
conexean-deploy db drop --database nome_do_banco --force
# Remover ambos
conexean-deploy db drop --user nome_do_usuario --database nome_do_banco --force🔧 Configuração de Banco Existente
# Configurar banco existente (usuário, permissões)
conexean-deploy db setup --env production🚀 Fluxo Completo de Banco de Dados
1. Inicializar Projeto
conexean-deploy init2. Criar Banco de Dados
conexean-deploy db create3. Listar Bancos e Usuários
conexean-deploy db list4. Fazer Backup
conexean-deploy db backup5. Restaurar Backup (se necessário)
conexean-deploy db restore-local6. Remover Banco (se necessário)
conexean-deploy db drop --force📊 Exemplo de Saída do db list:
🗄️ BANCOS DE DADOS:
────────────────────────────────────────────────────────────────────────────────
📁 postgres
Tamanho: 7739 kB
Proprietário: conexean
Collation: en_US.UTF-8
📁 prod_barradao
Tamanho: 8947 kB
Proprietário: conexean
Collation: en_US.UTF-8
👥 USUÁRIOS:
────────────────────────────────────────────────────────────────────────────────
👤 conexean
Super usuário: ❌ Não
Pode criar DB: ✅ Sim
Pode fazer login: ✅ Sim
Bancos proprietário: prod_barradao, prod_conexean_portal, prod_cclimp
👤 prod_user_barradao
Super usuário: ❌ Não
Pode criar DB: ❌ Não
Pode fazer login: ✅ Sim🔧 Configuração Avançada
🔐 Autenticação SSH Melhorada
O CLI suporta múltiplos métodos de autenticação SSH:
SSH Agent (Recomendado - Mais seguro)
# Adicionar chave ao SSH agent ssh-add ~/.ssh/id_rsa # O CLI detectará automaticamente conexean-deploy db createChaves SSH (Automático)
- Tenta
~/.ssh/id_ed25519 - Tenta
~/.ssh/id_rsa - Tenta
~/.ssh/id_ecdsa
- Tenta
Senha Interativa (Fallback)
- Solicita senha quando necessário
- Não requer variáveis de ambiente
Múltiplos Ambientes
{
"servers": {
"staging": {
"host": "staging.conexean.com",
"port": 22,
"username": "deploy"
},
"production": {
"host": "prod.conexean.com",
"port": 22,
"username": "deploy"
}
}
}Comandos Customizados
{
"project": {
"buildCommand": "pnpm build && pnpm test",
"installCommand": "pnpm install --frozen-lockfile",
"restartCommand": "pm2 restart app --update-env"
}
}Backup Automático
{
"backup": {
"enabled": true,
"path": "/var/backups",
"retention": 7,
"compress": true,
"includeDatabase": true
}
}🔍 Troubleshooting
Problemas Comuns
1. Erro de Conexão SSH
# Verificar conectividade
ssh -i ~/.ssh/id_rsa usuario@servidor
# Testar com o CLI
node dist/cli.js status --debug2. Erro de Permissão
# Verificar permissões do diretório remoto
node dist/cli.js status --env production
# Ajustar permissões se necessário
chmod 755 /var/www/projeto3. Erro de Build
# Build local para testar
node dist/cli.js build --debug
# Verificar dependências
pnpm install4. Erro de Banco de Dados
# Listar bancos e usuários
conexean-deploy db list
# Testar criação de banco
conexean-deploy db create
# Verificar configurações
cat deploy.config.jsonLogs e Debug
# Ativar modo debug
DEBUG=1 node dist/cli.js deploy --env production
# Ver logs detalhados
node dist/cli.js status --env production --debug🤝 Contribuição
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
📄 Licença
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
🆘 Suporte
- 📧 Email: [email protected]
- 🐛 Issues: GitHub Issues
- 📖 Documentação: Wiki
Desenvolvido com ❤️ pela Conexean
