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

Introdução: Por que a implantação de aplicações Kotlin requer uma abordagem especial

\n

Desenvolver em Kotlin é apenas metade do sucesso. A outra metade é a implantação (deploy) adequada da sua aplicação em um servidor remoto. Sem esta etapa, seu código permanecerá apenas um projeto local, inacessível aos usuários.

\n

Neste guia, abordaremos o ciclo completo de implantação de uma aplicação Kotlin em VPS (Virtual Private Server). Você aprenderá como compilar o projeto em um arquivo JAR executável, configurar o ambiente do servidor, iniciar a aplicação como um serviço e garantir seu funcionamento estável. O artigo é voltado para desenvolvedores que já possuem conhecimentos básicos de Kotlin e Linux.

\n\n

1. Preparação do projeto e compilação do arquivo JAR

\n

Antes de enviar o código para o servidor, é necessário compilar a aplicação em um único artefato. Para projetos Kotlin escritos com Spring Boot ou Ktor, o formato padrão é o arquivo JAR (Java Archive).

\n\n

1.1. Configuração do build.gradle.kts

\n

Certifique-se de que seu arquivo build.gradle.kts contenha o plugin para compilar o JAR executável. Para Spring Boot, fica assim:

\n
plugins {\n    kotlin("jvm") version "1.9.22"\n    id("org.springframework.boot") version "3.2.2"\n    id("io.spring.dependency-management") version "1.1.4"\n}\n\ndependencies {\n    implementation("org.springframework.boot:spring-boot-starter-web")\n    implementation("com.fasterxml.jackson.module:jackson-module-kotlin")\n}\n
\n

Para Ktor puro (sem Spring), use o plugin application:

\n
plugins {\n    kotlin("jvm") version "1.9.22"\n    application\n}\n\napplication {\n    mainClass.set("com.example.ApplicationKt")\n}\n
\n\n

1.2. Compilação do projeto

\n

Execute o comando de compilação na pasta raiz do projeto:

\n
./gradlew clean build
\n

Após a compilação bem-sucedida, no diretório build/libs/ aparecerá o arquivo app-0.0.1-SNAPSHOT.jar (o nome depende da configuração). Copie-o para o seu computador local.

\n
Importante: Para aplicações Ktor, certifique-se de que no arquivo src/main/resources/application.conf esteja configurada a porta correta (geralmente 8080) e o modo de operação.
\n\n

2. Configuração do servidor VPS

\n

Para a implantação, precisaremos de um VPS com o sistema operacional Ubuntu 22.04 LTS instalado. Presume-se que você tenha acesso via SSH e privilégios de superusuário (sudo).

\n\n

2.1. Instalação do Java (JRE)

\n

Kotlin é compilado para bytecode JVM, portanto, o servidor deve ter o Java Runtime Environment (JRE) versão 17 ou superior instalado:

\n
sudo apt update\nsudo apt install openjdk-17-jre -y\njava -version
\n\n

2.2. Criação de um usuário para a aplicação

\n

Por questões de segurança, não é recomendado executar a aplicação como root. Vamos criar um usuário separado:

\n
sudo useradd -m -s /bin/bash kotlinapp\nsudo passwd kotlinapp
\n\n

2.3. Upload do arquivo JAR para o servidor

\n

Use SCP para copiar o arquivo da máquina local para o VPS:

\n
scp build/libs/app-0.0.1-SNAPSHOT.jar kotlinapp@your-server-ip:/home/kotlinapp/app.jar
\n\n

3. Inicialização da aplicação e configuração do Systemd

\n

Para que a aplicação inicie automaticamente na inicialização do sistema e não pare ao perder a conexão SSH, vamos configurá-la como um serviço Systemd.

\n\n

3.1. Inicialização manual (para teste)

\n

Conecte-se ao servidor como usuário kotlinapp e execute:

\n
cd /home/kotlinapp\njava -jar app.jar
\n

Se a aplicação iniciar e responder na porta 8080, prossiga para o próximo passo. Pare o processo (Ctrl+C).

\n\n

3.2. Criação do arquivo Unit do Systemd

\n

Crie o arquivo de serviço:

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

Insira o seguinte conteúdo:

\n
[Unit]\nDescription=Kotlin Application Service\nAfter=net                

Blogs

Book Recommendations