Despliegue de una aplicación Kotlin en VPS: guía paso a paso

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Despliegue de una aplicación Kotlin en VPS: guía completa paso a paso



Desarrollar en Kotlin es solo la mitad del trabajo. Tarde o temprano surge la pregunta: ¿cómo trasladar la aplicación del entorno local a un servidor real? En este artículo, analizaremos en detalle el despliegue de una aplicación Kotlin (usando Spring Boot como ejemplo) en un VPS. Aprenderá cómo preparar el servidor, compilar el archivo JAR, configurar el inicio automático y garantizar una conexión segura a través de HTTPS. La guía es adecuada tanto para principiantes como para desarrolladores que deseen sistematizar sus conocimientos.



1. Preparación del VPS e instalación del software necesario



Antes de cargar el código, debe preparar el servidor. Recomendamos usar Ubuntu 22.04 LTS o superior. Conéctese al servidor a través de SSH:



ssh root@su-ip-del-servidor


Actualice la base de paquetes e instale Java (Kotlin se compila a bytecode de JVM, por lo que necesitamos JDK 17 o 21):



sudo apt update && sudo apt upgrade -ysudo apt install openjdk-17-jdk -yjava -version


Asegúrese de que la versión de Java coincida con su compilación. También instale Git (si usa un repositorio) y utilidades para trabajar con archivos:



sudo apt install git unzip curl -y


Para trabajar con un proyecto Kotlin en el servidor, no es necesario instalar el compilador Kotlin en sí; realizaremos la compilación localmente o a través de CI/CD. Sin embargo, si planea compilar en el servidor, agregue SDKMAN! y Kotlin:



curl -s "https://get.sdkman.io" | bashsource "$HOME/.sdkman/bin/sdkman-init.sh"sdk install kotlin


Importante: En esta etapa, también configure el firewall (UFW) para la seguridad básica:



sudo ufw allow OpenSSHsudo ufw allow 8080/tcp  # puerto de la aplicaciónsudo ufw enable


2. Compilación de la aplicación Kotlin y transferencia al servidor



Consideremos un proyecto típico de Spring Boot con Kotlin. Realice la compilación del archivo JAR localmente (o en el servidor, si ha clonado el repositorio). En la raíz del proyecto, ejecute:



./gradlew clean bootJar


O, si usa Maven:



mvn clean package


Después de la compilación, en la carpeta build/libs/ (Gradle) o target/ (Maven) aparecerá un archivo con el nombre app-0.0.1-SNAPSHOT.jar. Cópielo al servidor usando SCP:



scp build/libs/app-0.0.1-SNAPSHOT.jar root@su-ip:/opt/myapp/app.jar


Cree un directorio para la aplicación en el servidor y mueva el JAR:



sudo mkdir -p /opt/myappsudo mv app.jar /opt/myapp/


Verifique que el JAR se inicie manualmente:



cd /opt/myappjava -jar app.jar --server.port=8080


Si la aplicación se inicia y responde en el puerto 8080, todo está bien. Deténgala (Ctrl+C) y pase a configurar el inicio permanente.



3. Configuración de systemd para inicio automático y monitoreo



Para que la aplicación se inicie automáticamente al reiniciar el servidor y se recupere después de fallos, crearemos un servicio systemd. Cree el archivo:



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


Inserte la siguiente plantilla (reemplace los parámetros según su aplicación):



[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.target


Vuelva a cargar la configuración de systemd e inicie el servicio:



sudo systemctl daemon-reloadsudo systemctl start kotlin-appsudo systemctl status kotlin-app


Si el estado es active (running), todo funciona. Agregue el servicio al inicio automático:



sudo systemctl enable kotlin-app

Blogs

Book Recommendations