Tu código Kotlin funciona localmente. ¿Y ahora qué?
\n\nHas escrito una aplicación genial en Kotlin. Funciona perfectamente en tu portátil, las pruebas pasan, los endpoints responden al instante. Pero la magia real comienza solo cuando la aplicación sale a la luz, a un servidor real, donde los usuarios puedan verla.
\n\nEl despliegue de aplicaciones Kotlin no es solo "subir un archivo jar al servidor". Es toda una ciencia que incluye la elección de la infraestructura, la configuración del entorno, la garantía de seguridad y tolerancia a fallos. En este artículo, analizaremos los tres enfoques más populares: el VPS clásico, el Docker moderno y las plataformas en la nube flexibles. Aprenderás cómo desplegar aplicaciones Kotlin en cada una de estas opciones, obtendrás ejemplos de código listos para usar y entenderás qué camino es mejor para tu proyecto.
\n\nPreparación: qué necesitas saber antes del despliegue de Kotlin
\n\nAntes de sumergirnos en los detalles, asegurémonos de que tenemos la base. Para el despliegue de una aplicación Kotlin necesitarás:
\n\n- \n
- Artefacto compilado — normalmente es un archivo JAR (para Spring Boot, Ktor) o un archivo WAR (para proyectos Java EE antiguos). Kotlin se compila a bytecode de JVM, por lo que todas las herramientas estándar de Java funcionan perfectamente. \n
- Java Runtime Environment (JRE) — como mínimo la versión 11, pero mejor la 17 o 21. Kotlin utiliza activamente las características de las nuevas versiones de Java. \n
- Sistema de compilación — Gradle o Maven. Usaremos Gradle, ya que es el estándar de facto para proyectos Kotlin. \n
Ejemplo del comando más simple para compilar una aplicación Kotlin:
\n\n./gradlew clean build\n\nDespués de la ejecución, en la carpeta build/libs/ aparecerá un archivo JAR listo para ejecutarse.
Despliegue de Kotlin en VPS: el clásico que funciona
\n\nUn servidor privado virtual (VPS) es como tener tu propio apartamento. Obtienes control total sobre el entorno, pero también asumes toda la responsabilidad de la limpieza y la seguridad. Este enfoque es ideal para proyectos pequeños, startups o cuando necesitas la máxima flexibilidad.
\n\nElección del VPS y configuración del servidor
\n\nPara aplicaciones Kotlin, cualquier VPS con Linux (Ubuntu 22.04 LTS es una excelente opción) servirá. Requisitos mínimos: 1-2 GB de RAM, 20-30 GB SSD. Recomendamos proveedores con buen soporte: DigitalOcean, Vultr, Hetzner o Timeweb (para usuarios rusos).
\n\nDespués de comprar el servidor, lo primero es actualizar los paquetes e instalar Java:
\n\nsudo apt update && sudo apt upgrade -y\nsudo apt install openjdk-17-jre-headless -y\njava -version\n\nAhora creemos un usuario simple para ejecutar la aplicación (¡nunca la ejecutes como root!):
\n\nsudo useradd -m -s /bin/bash kotlinapp\nsudo passwd kotlinapp\n\nEjecución de la aplicación Kotlin en VPS
\n\nCopiemos el archivo JAR al servidor a través de SCP o SFTP:
\n\nscp build/libs/myapp-1.0.0.jar kotlinapp@tu-servidor:/home/kotlinapp/app.jar\n\nAhora ejecutemos la aplicación. Para simplificar, usamos nohup para que el proceso no muera al cerrar SSH:
\n\nnohup java -jar /home/kotlinapp/app.jar --server.port=8080 &\n\nPero esto es solo el primer paso. En la vida real, necesitarás:
\n- \n
- Servicio Systemd — para reiniciar automáticamente la aplicación después de fallos y al iniciar el servidor. \n
- Nginx — como proxy inverso para HTTPS, balanceo de carga y contenido estático. \n
- Monitoreo — al menos un registro simple y verificación de uptime. \n
Ejemplo de un servicio systemd para una aplicación Kotlin (/etc/systemd/system/kotlinapp.service):
[Unit]\nDescription=Kotlin Application\nAfter=network.target\n\n[Service]\nUser=kotlinapp\nWorkingDirectory=/home/kotlinapp\nExecStart=/usr/bin/java -jar /home/kotlinapp/app.jar --server.port=8080\nRestart=always\nRestartSec=10\n\n[Install]\nWantedBy=multi-user.targe