🚀 CLI moderno para deploy de projetos Next.js da Conexean
npm install @conexean/cli> CLI moderno para deploy de projetos Next.js da Conexean



- 🚀 Instalação
- ⚡ Uso Rápido
- 🔧 Configuração
- 📚 Comandos
- 🗄️ Comandos de Banco de Dados
- 🔧 Configuração Avançada
- 🔍 Troubleshooting
- 🤝 Contribuição
``bash`
npm install -g @conexean/cliou
pnpm add -g @conexean/cli
`bash`
npm install --save-dev @conexean/cliou
pnpm add -D @conexean/cli
`bash`
npx @conexean/cli --help
`bash1. Inicializar configuração
conexean init
`bash`
conexean init
Isso criará um arquivo deploy.config.json com a configuração básica.
Edite o arquivo deploy.config.json:
`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"
]
}
}
| 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 |ssh
| | Abre conexão SSH direta no terminal | --env, --command |
`bashBuild para produção
conexean build --env production
| 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 |
`bashCriar backup de produção
conexean db backup --env production
$3
Cria banco de dados usando a configuração do projeto (definida no
init):`bash
Criar banco usando configuração do projeto
conexean db create
`O 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$3
`bash
Listar todos os bancos e usuários
conexean db listListar para ambiente específico
conexean db list --env production
`Exibe informações detalhadas:
- Bancos: Nome, tamanho, proprietário, collation
- Usuários: Permissões, bancos proprietários, status
$3
`bash
Remover banco e usuário do projeto atual
conexean db dropRemover com confirmação forçada
conexean db drop --forceRemover usuário específico
conexean db drop --user nome_do_usuario --forceRemover banco específico
conexean db drop --database nome_do_banco --forceRemover ambos
conexean db drop --user nome_do_usuario --database nome_do_banco --force
`$3
`bash
Configurar banco existente (usuário, permissões)
conexean db setup --env production
`$3
#### 1. Inicializar Projeto
`bash
conexean init
`#### 2. Criar Banco de Dados
`bash
conexean db create
`#### 3. Listar Bancos e Usuários
`bash
conexean db list
`#### 4. Fazer Backup
`bash
conexean db backup
`#### 5. Restaurar Backup (se necessário)
`bash
conexean db restore-local
`#### 6. Remover Banco (se necessário)
`bash
conexean db drop --force
`$3
`
🗄️ 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
$3
O CLI suporta múltiplos métodos de autenticação SSH:
1. SSH Agent (Recomendado - Mais seguro)
`bash
# Adicionar chave ao SSH agent
ssh-add ~/.ssh/id_rsa
# O CLI detectará automaticamente
conexean db create
`2. Chaves SSH (Automático)
- Tenta
~/.ssh/id_ed25519
- Tenta ~/.ssh/id_rsa
- Tenta ~/.ssh/id_ecdsa3. Senha Interativa (Fallback)
- Solicita senha quando necessário
- Não requer variáveis de ambiente
$3
Acesse o servidor diretamente via terminal:
`bash
Conectar ao servidor (ambiente padrão: staging)
conexean sshConectar ao servidor de produção
conexean ssh --env productionExecutar comando específico e sair
conexean ssh --command "ls -la /var/www"Verificar logs do PM2
conexean ssh --command "pm2 logs --lines 50"Verificar uso de disco
conexean ssh --command "df -h"
`Vantagens:
- ✅ Usa configurações do projeto automaticamente
- ✅ Suporte a múltiplos ambientes
- ✅ Terminal interativo completo
- ✅ Execução de comandos específicos
- ✅ Não precisa lembrar credenciais SSH
$3
`json
{
"servers": {
"staging": {
"host": "staging.conexean.com",
"port": 22,
"username": "deploy"
},
"production": {
"host": "prod.conexean.com",
"port": 22,
"username": "deploy"
}
}
}
`$3
`json
{
"project": {
"buildCommand": "pnpm build && pnpm test",
"installCommand": "pnpm install --frozen-lockfile",
"restartCommand": "pm2 restart app --update-env"
}
}
`$3
`json
{
"backup": {
"enabled": true,
"path": "/var/backups",
"retention": 7,
"compress": true,
"includeDatabase": true
}
}
`🔍 Troubleshooting
$3
#### 1. Erro de Conexão SSH
`bash
Verificar conectividade
ssh -i ~/.ssh/id_rsa usuario@servidorTestar com o CLI
node dist/cli.js status --debug
`#### 2. Erro de Permissão
`bash
Verificar permissões do diretório remoto
node dist/cli.js status --env productionAjustar permissões se necessário
chmod 755 /var/www/projeto
`#### 3. Erro de Build
`bash
Build local para testar
node dist/cli.js build --debugVerificar dependências
pnpm install
`#### 4. Erro de Banco de Dados
`bash
Listar bancos e usuários
conexean db listTestar criação de banco
conexean db createVerificar configurações
cat deploy.config.json
`$3
`bash
Ativar modo debug
DEBUG=1 node dist/cli.js deploy --env productionVer logs detalhados
node dist/cli.js status --env production --debug
`🤝 Contribuição
1. Fork o projeto
2. Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature)
3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
4. Push para a branch (git push origin feature/AmazingFeature`)Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
- 📧 Email: conexean@gmail.com
- 🐛 Issues: GitHub Issues
- 📖 Documentação: Wiki
---
Desenvolvido com ❤️ pela Conexean