Implantação de aplicação Kotlin em VPS: guia passo a passo do A ao Z

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Implantação de aplicação Kotlin em VPS: passo a passo do A ao Z



Você escreveu uma aplicação incrível em Kotlin (Ktor, Spring Boot ou apenas um serviço de console), e agora precisa executá-la em um servidor real. Neste artigo, vamos abordar o ciclo completo de implantação de uma aplicação Kotlin em VPS: desde a compra do servidor e configuração SSH até a execução via systemd e conexão do domínio com HTTPS. Todos os exemplos são funcionais, testados no Ubuntu 22.04.



1. Preparação do VPS e conexão



Primeiro, alugue um VPS (por exemplo, na Timeweb, Selectel ou DigitalOcean). Requisitos mínimos: 1 vCPU, 1 GB RAM, 20 GB SSD. Sistema operacional — Ubuntu 22.04 LTS.



Após receber o endereço IP e a senha root, conecte-se via SSH:



ssh root@seu_ip_do_servidor


Atualize o sistema imediatamente e crie um usuário não privilegiado (trabalhar como root é uma má prática):



apt update && apt upgrade -yadduser kotlinuserusermod -aG sudo kotlinusersu - kotlinuser


Configure chaves SSH para acesso conveniente e seguro:



ssh-keygen -t ed25519 -C "seu_email@exemplo.com"ssh-copy-id kotlinuser@seu_ip_do_servidor


Agora desative o login por senha em /etc/ssh/sshd_config (linha PasswordAuthentication no) e reinicie o SSH: sudo systemctl restart sshd.



2. Instalação do Java (JRE/JDK) e compilação da aplicação



Aplicações Kotlin rodam na JVM. Instale o OpenJDK 17 ou 21 (recomendado para projetos modernos):



sudo apt install openjdk-17-jdk -yjava -version


Agora, no seu computador local (onde você desenvolve), compile a aplicação em um arquivo JAR. Para Gradle (Ktor ou Spring Boot):



./gradlew clean build


O arquivo JAR pronto estará em build/libs/. Por exemplo, myapp-1.0.0.jar. Envie-o para o servidor:



scp build/libs/myapp-1.0.0.jar kotlinuser@seu_ip_do_servidor:~/app/


Crie a estrutura de pastas no servidor:



mkdir -p ~/app/logs ~/app/config


Coloque os arquivos de configuração (application.conf, application.yml) em ~/app/config/. Verifique se a aplicação inicia manualmente:



cd ~/appjava -jar myapp-1.0.0.jar --spring.config.location=file:./config/


Se tudo funcionar — vamos para a inicialização automática.



3. Configuração do systemd para inicialização automática



Para que a aplicação inicie automaticamente após a reinicialização do servidor e não pare em caso de erros, vamos criar um serviço systemd.



Crie o arquivo /etc/systemd/system/kotlin-app.service:



sudo nano /etc/systemd/system/kotlin-app.service


Insira o seguinte conteúdo (substitua os caminhos pelos seus):



[Unit]Description=Serviço da Aplicação KotlinAfter=network.target

[Service]Type=simpleUser=kotlinuserWorkingDirectory=/home/kotlinuser/appExecStart=/usr/bin/java -jar /home/kotlinuser/app/myapp-1.0.0.jar --spring.config.location=file:/home/kotlinuser/app/config/Restart=on-failureRestartSec=10StandardOutput=append:/home/kotlinuser/app/logs/app.logStandardError=append:/home/kotlinuser/app/logs/error.log

[Install]WantedBy=multi-user.target


Explicação dos parâmetros principais:

  • User — de quem executar (não root);
  • ExecStart — comando completo de inicialização com indicação do config;
  • Restart=on-failure — reinicialização automática em caso de falha;
  • StandardOutput/Error — registro em arquivos de log.


Ativamos o serviço:



sudo systemctl daemon-reloadsudo systemctl enable kotlin-app.servicesudo systemctl start kotlin-app.service


Verificamos o status:



sudo systemctl status kotlin-app.service

Blogs

Book Recommendations