Implantação de aplicação Kotlin em VPS: guia passo a passo

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: guia passo a passo

Desenvolver em Kotlin é apenas metade do trabalho. Para que sua aplicação se torne acessível aos usuários, é necessário implantá-la em um servidor. Neste guia, abordaremos detalhadamente o processo de implantação de uma aplicação Kotlin (JVM) em uma VPS (Virtual Private Server). Você aprenderá como preparar o servidor, compilar a aplicação, configurar a inicialização automática e garantir uma conexão HTTPS segura. O artigo é voltado para desenvolvedores familiarizados com os fundamentos de Kotlin e Linux.



1. Preparação do servidor e ambiente

Antes de carregar o código, é necessário preparar a VPS. Usaremos Ubuntu 22.04 LTS. Conecte-se ao servidor via SSH:

ssh root@seu-ip-do-servidor

Atualize os pacotes e instale os componentes necessários:

sudo apt update && sudo apt upgrade -ysudo apt install openjdk-17-jdk git nginx certbot python3-certbot-nginx -y

Verifique a versão do Java:

java -version

Agora vamos criar um usuário para a aplicação (executar processos como root não é seguro):

sudo useradd -m -s /bin/bash kotlinappsudo usermod -aG sudo kotlinappsu - kotlinapp

Certifique-se de que o usuário pode executar Java.



2. Compilação e upload da aplicação Kotlin

Vamos considerar dois frameworks populares: Ktor e Spring Boot. Ambos são compilados em um arquivo JAR executável. Exemplo para Ktor:

// build.gradle.kts (fragmento)plugins {    kotlin("jvm") version "1.9.22"    application    id("io.ktor.plugin") version "2.3.7"}

application { mainClass.set("com.example.ApplicationKt")}

ktor { fatJar { archiveFileName.set("myapp.jar") }}

Compile o fat JAR localmente:

./gradlew buildFatJar

Faça upload do JAR para o servidor via SCP (execute na máquina local):

scp build/libs/myapp.jar kotlinapp@seu-ip:/home/kotlinapp/app/

No servidor, crie a estrutura:

mkdir -p /home/kotlinapp/app/logs


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

Para que a aplicação inicie automaticamente na inicialização do servidor e seja reiniciada em caso de falhas, criaremos um serviço systemd. Crie o arquivo /etc/systemd/system/kotlinapp.service:

sudo nano /etc/systemd/system/kotlinapp.service

Insira a seguinte configuração:

[Unit]Description=Kotlin Application ServiceAfter=network.target

[Service]User=kotlinappGroup=kotlinappWorkingDirectory=/home/kotlinapp/appExecStart=/usr/bin/java -jar myapp.jarRestart=alwaysRestartSec=10StandardOutput=append:/home/kotlinapp/app/logs/out.logStandardError=append:/home/kotlinapp/app/logs/err.logEnvironment="PORT=8080"

[Install]WantedBy=multi-user.target

Ative e inicie o serviço:

sudo systemctl daemon-reloadsudo systemctl enable kotlinappsudo systemctl start kotlinapp

Verifique o status:

sudo systemctl status kotlinapp

Os logs podem ser visualizados com o comando:

journalctl -u kotlinapp -f


4. Configuração do Nginx e HTTPS (SSL)

O servidor proxy Nginx redirecionará as requisições da porta 80/443 para a porta 8080 da sua aplicação Kotlin. Crie a configuração:

sudo nano /etc/nginx/sites-available/kotlinapp

Exemplo de configuração:

server {    listen 80;    server_name yourdomain.com www.yourdomain.com;

location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }}

Ative o site e obtenha o certificado SSL:

sudo ln -s /etc/ngin                

Blogs

Book Recommendations