Um plugin simples para IntelliJ IDEA que facilita enviar seus projetos para a Discloud diretamente do IDE. Suporta deploy via .jar e upload completo de projetos (cria projeto na Discloud via /upload), além de oferecer uma Tool Window para gerenciar aplicações.
- Envio rápido de artefatos via clique-direito (Commit Discloud)
- Upload completo do projeto (chama
POST /upload) quando houverdiscloud.configno root do projeto - Tool Window para listar e gerenciar apps (start / restart / stop / backup / logs)
- Suporte multi-linguagem para commits e empacotamento:
- Java (.jar)
- Go
- Rust
- Python
- PHP
- Ruby
- Detecção automática de runtime por arquivos de configuração (ex.:
go.mod,Cargo.toml,requirements.txt,composer.json,Gemfile,pom.xml,build.gradle) ou por extensĂŁo de arquivo - Para Go e Rust, tenta executar
go build/cargo build --releasee faz upload do binário gerado quando possĂvel - Fallback: se nĂŁo for possĂvel compilar, gera um ZIP do projeto e envia
- Exclusões inteligentes ao zipar (
.git,node_modules,venv,__pycache__,target,build,.idea,.gradle) - API Key configurável e persistida nas Settings do IntelliJ (solicita ao usuário se não estiver configurada)
- Envia
.jarou artefato gerado para um app existente via endpointPUT /app/{id}/commit. - Detecta linguagem, tenta buildar (quando aplicável) e cria o artefato apropriado (JAR, binário zipado ou ZIP do projeto).
- Envia também um campo
runtimequando aplicável para ajudar a Discloud a identificar o tipo de aplicação.
- Se existir
discloud.configna raiz do projeto, o plugin permite empacotar todo o projeto em um ZIP e chamarPOST /uploadpara criar o projeto na Discloud. - NĂŁo executa upload se
discloud.confignĂŁo existir.
- Lista aplicações vinculadas à sua conta Discloud (nome, status online/offline, RAM).
- Botões: Start, Restart, Stop, Backup, Logs.
- Download de backup direto para a pasta do projeto.
- Visualização de logs em uma janela dentro do IDE.
- Operações longas rodam em background (ProgressManager / Tasks).
- Mensagens e erros sĂŁo mostrados via JOptionPane / Messages.
- Validações de seleção e presença de token para evitar erros.
- Executar builds localmente significa rodar código — use apenas com projetos confiáveis.
- IntelliJ IDEA (Community ou Ultimate)
- Para builds automáticos de Go e Rust é necessário ter
goecargoinstalados no sistema - Verifique limites e permissões da sua conta Discloud antes de usar
/upload
-
Clone o repositĂłrio:
git clone https://github.com/0xviny/discloud-plugin.git cd discloud-plugin -
Abra no IntelliJ IDEA.
-
Execute o plugin em sandbox:
Gradle Tool Window → Tasks → intellij → runIde
Na primeira execução, o plugin pedirá sua API Key da Discloud. TambĂ©m Ă© possĂvel alterar em:
File → Settings → Tools → Discloud Settings
A chave é salva nas configurações do IntelliJ e reutilizada em operações futuras.
- Gere o
.jardo seu projeto. - No Project Explorer, clique com o botĂŁo direito no
.jar. - Selecione Commit Discloud.
- Escolha o app destino (quando solicitado) e aguarde o upload.
- Adicione
discloud.configna raiz do projeto. - Execute a ação Upar na Discloud (ou equivalente no plugin).
- O plugin empacota o projeto em ZIP e chama
POST /upload. - Aguarde o retorno e confira o ID / mensagem da API.
- Tool Window para gerenciar aplicações
- Commit de
.jare suporte a mĂşltiplas linguagens (Java, Go, Rust, Python, PHP, Ruby) - Upload completo via
/uploadquandodiscloud.configestiver presente - Build automático para Go e Rust quando possĂvel, com fallback para ZIP
- Exclusões ao empacotar e UX com feedback no IDE
- Suporte a deploy automático pós-build
- Upload incremental (enviar apenas arquivos mudados)
- Mostrar notificações no IDE em vez de modais
- Suporte a variáveis de ambiente e mapeamento de portas no
discloud.config - Publicação no JetBrains Marketplace
Contribuições são bem-vindas. Abra uma Issue para discutir mudanças ou envie um Pull Request com a sua melhoria.
DistribuĂdo sob a licença MIT. Veja o arquivo LICENSE para detalhes.
- Discloud — hospedagem utilizada e APIs
- IntelliJ Platform SDK — base para desenvolvimento de plugins



