@conexean/cli
v3.0.24
Published
đ CLI moderno para deploy de projetos Next.js da Conexean
Maintainers
Readme
đ Conexean 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/cli
# ou
pnpm add -g @conexean/cliInstalação Local
npm install --save-dev @conexean/cli
# ou
pnpm add -D @conexean/cliUso Direto
npx @conexean/cli --help⥠Uso Råpido
# 1. Inicializar configuração
conexean init
# 2. Criar banco de dados
conexean db create
# 3. Fazer build
conexean build
# 4. Fazer deploy
conexean deploy
# 5. Verificar status
conexean status
# 6. Listar bancos e usuĂĄrios
conexean db list
# 7. Conectar via SSH (se necessĂĄrio)
conexean ssh
## đ§ Configuração
### 1. Inicializar Projeto
```bash
conexean 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 |
| ssh | Abre conexĂŁo SSH direta no terminal | --env, --command |
Exemplos de Uso
# Build para produção
conexean build --env production
# Deploy para staging
conexean deploy --env staging
# Deploy forçado (ignora erros)
conexean deploy --env production --force
# Rollback para versĂŁo especĂfica
conexean rollback --env production --version v1.2.3
# Status do ambiente de produção
conexean status --env production
# Conectar SSH para ambiente especĂfico
conexean ssh --env production
# Executar comando especĂfico via SSH
conexean ssh --env production --command "ls -la"
## đïž 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
```bash
# Criar backup de produção
conexean db backup --env production
# Criar backup local
conexean db backup-local
# Restaurar backup no local
conexean db restore-local
# Restaurar backup especĂfico no local
conexean db restore-local backup_projeto_production_2024-01-15.sql
# Restaurar backup local em produção
conexean db restore-prod
# Restaurar backup especĂfico em produção
conexean 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 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 db list
# Listar para ambiente especĂfico
conexean 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 db drop
# Remover com confirmação forçada
conexean db drop --force
# Remover usuĂĄrio especĂfico
conexean db drop --user nome_do_usuario --force
# Remover banco especĂfico
conexean db drop --database nome_do_banco --force
# Remover ambos
conexean db drop --user nome_do_usuario --database nome_do_banco --forceđ§ Configuração de Banco Existente
# Configurar banco existente (usuårio, permissÔes)
conexean db setup --env productionđ Fluxo Completo de Banco de Dados
1. Inicializar Projeto
conexean init2. Criar Banco de Dados
conexean db create3. Listar Bancos e UsuĂĄrios
conexean db list4. Fazer Backup
conexean db backup5. Restaurar Backup (se necessĂĄrio)
conexean db restore-local6. Remover Banco (se necessĂĄrio)
conexean 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 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
đ ConexĂŁo SSH Direta
Acesse o servidor diretamente via terminal:
# Conectar ao servidor (ambiente padrĂŁo: staging)
conexean ssh
# Conectar ao servidor de produção
conexean ssh --env production
# Executar 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
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 db list
# Testar criação de banco
conexean 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
