Implantação de aplicação Kotlin em VPS: guia completo passo a passo
Desenvolver em Kotlin é apenas metade do trabalho. Mais cedo ou mais tarde surge a pergunta: como transferir a aplicação do ambiente local para um servidor real? Neste artigo, vamos detalhar a implantação de uma aplicação Kotlin (usando Spring Boot como exemplo) em uma VPS. Você aprenderá como preparar o servidor, compilar o arquivo JAR, configurar a inicialização automática e garantir uma conexão segura via HTTPS. O guia é adequado tanto para iniciantes quanto para desenvolvedores que desejam sistematizar seus conhecimentos.
1. Preparação da VPS e instalação do software necessário
Antes de carregar o código, é preciso preparar o servidor. Recomendamos usar Ubuntu 22.04 LTS ou superior. Conecte-se ao servidor via SSH:
ssh root@seu-ip-do-servidorAtualize a base de pacotes e instale o Java (Kotlin compila para bytecode JVM, portanto precisamos do JDK 17 ou 21):
sudo apt update && sudo apt upgrade -ysudo apt install openjdk-17-jdk -yjava -versionCertifique-se de que a versão do Java corresponde à sua compilação. Instale também o Git (se usar repositório) e utilitários para trabalhar com arquivos:
sudo apt install git unzip curl -yPara trabalhar com o projeto Kotlin no servidor, não é necessário instalar o compilador Kotlin em si — faremos a compilação localmente ou via CI/CD. No entanto, se você planeja compilar no servidor, adicione o SDKMAN! e o Kotlin:
curl -s "https://get.sdkman.io" | bashsource "$HOME/.sdkman/bin/sdkman-init.sh"sdk install kotlinImportante: Nesta etapa, configure também o firewall (UFW) para segurança básica:
sudo ufw allow OpenSSHsudo ufw allow 8080/tcp # porta da aplicaçãosudo ufw enable2. Compilação da aplicação Kotlin e transferência para o servidor
Vamos considerar um projeto típico Spring Boot com Kotlin. Execute a compilação do arquivo JAR localmente (ou no servidor, se clonou o repositório). Na raiz do projeto, execute:
./gradlew clean bootJarOu, se usar Maven:
mvn clean packageApós a compilação, na pasta build/libs/ (Gradle) ou target/ (Maven), aparecerá um arquivo como app-0.0.1-SNAPSHOT.jar. Copie-o para o servidor usando SCP:
scp build/libs/app-0.0.1-SNAPSHOT.jar root@seu-ip:/opt/myapp/app.jarCrie um diretório para a aplicação no servidor e mova o JAR:
sudo mkdir -p /opt/myappsudo mv app.jar /opt/myapp/Verifique se o JAR inicia manualmente:
cd /opt/myappjava -jar app.jar --server.port=8080Se a aplicação iniciou e responde na porta 8080 — está tudo certo. Pare-a (Ctrl+C) e prossiga para a configuração de inicialização permanente.
3. Configuração do systemd para inicialização automática e monitoramento
Para que a aplicação inicie automaticamente ao reiniciar o servidor e se recupere após falhas, vamos criar um serviço systemd. Crie o arquivo:
sudo nano /etc/systemd/system/kotlin-app.serviceInsira o seguinte modelo (substitua os parâmetros conforme sua aplicação):
[Unit]Description=Kotlin Spring Boot ApplicationAfter=network.target
[Service]Type=simpleUser=rootWorkingDirectory=/opt/myappExecStart=/usr/bin/java -jar /opt/myapp/app.jar --server.port=8080Restart=on-failureRestartSec=10StandardOutput=journalStandardError=journal
[Install]WantedBy=multi-user.targetRecarregue a configuração do systemd e inicie o serviço:
sudo systemctl daemon-reloadsudo systemctl start kotlin-appsudo systemctl status kotlin-appSe o status for active (running) — está funcionando. Adicione o serviço à inicialização automática:
sudo systemctl enable kotlin-app