Despliegue de una aplicación Swift en VPS: guía paso a paso de la A a la Z

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

Introducción: ¿Por qué desplegar Swift en VPS?

Swift no es solo un lenguaje para aplicaciones iOS y macOS. Gracias al framework Vapor y al soporte nativo de Linux, puedes crear soluciones de servidor de alto rendimiento con Swift. Desplegar una aplicación de este tipo en un VPS (Servidor Privado Virtual) abre posibilidades para crear tus propias API, sitios web y microservicios.

En este artículo, analizaremos el ciclo completo de despliegue de una aplicación Swift en un servidor remoto con Ubuntu 22.04. Aprenderás a preparar el entorno, compilar el proyecto, configurar el inicio automático y el servidor proxy. La guía es adecuada tanto para principiantes como para desarrolladores experimentados que deseen sistematizar sus conocimientos.



1. Preparación del servidor e instalación de Swift

El primer paso es alquilar un VPS (recomendamos 2 núcleos, 2 GB de RAM). Después de conectarte por SSH, realiza la actualización del sistema e instala las dependencias.



1.1. Configuraciones básicas

ssh root@tu-ip-del-servidorapt update && apt upgrade -yapt install curl git build-essential pkg-config libssl-dev zlib1g-dev -y


1.2. Instalación de Swift Toolchain

Para Ubuntu 22.04, usa la distribución oficial de Swift. Verifica la versión actual en swift.org.

# Descargar Swift 5.9 (ejemplo)wget https://download.swift.org/swift-5.9-release/ubuntu2204/swift-5.9-RELEASE/swift-5.9-RELEASE-ubuntu22.04.tar.gz

# Descomprimirtar -xzf swift-5.9-RELEASE-ubuntu22.04.tar.gzmv swift-5.9-RELEASE-ubuntu22.04 /usr/share/swift

# Agregar al PATHecho 'export PATH=/usr/share/swift/usr/bin:$PATH' >> ~/.bashrcsource ~/.bashrc

# Verificaciónswift --version


2. Compilación y configuración de la aplicación

Consideremos el despliegue de una aplicación típica de Vapor. Supongamos que tu proyecto ya está en un repositorio Git.



2.1. Clonación y compilación

cd /var/www/git clone https://github.com/tu-usuario/tu-repositorio.git myappcd myapp

# Compilación en modo Releaseswift build -c release

Después de una compilación exitosa, el archivo ejecutable se encontrará en .build/release/Run. Para Vapor, por defecto se usa el puerto 8080.



2.2. Ejecución y prueba

# Ejecución temporal (Ctrl+C para detener).build/release/Run serve --hostname 0.0.0.0 --port 8080

Verifica el funcionamiento: abre en el navegador http://tu-ip-del-servidor:8080. Si ves una respuesta, todo funciona.



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

Para que la aplicación se inicie automáticamente después de reiniciar el servidor, crearemos un servicio systemd.



3.1. Creación del servicio

nano /etc/systemd/system/myapp.service

Inserta el siguiente código (reemplaza las rutas con las tuyas):

[Unit]Description=Swift Vapor ApplicationAfter=network.target

[Service]Type=simpleUser=www-dataGroup=www-dataWorkingDirectory=/var/www/myappExecStart=/var/www/myapp/.build/release/Run serve --hostname 127.0.0.1 --port 8080Restart=on-failureRestartSec=5

[Install]WantedBy=multi-user.target


3.2. Activación e inicio

systemctl daemon-reloadsystemctl enable myappsystemctl start myappsystemctl status myapp

Si el estado es active (running), el servicio está funcionando. Ahora la aplicación se iniciará automáticamente.



4. Configuración de Nginx y SSL (HTTPS)

El servidor proxy Nginx es necesario para manejar archivos estáticos, balanceo de carga y agregar un certificado SSL.



4.1. Instalación de Nginx

apt install nginx -y


4.2. Configuración del proxy

Crea un archivo de configuración para tu dominio o IP:

nano /etc/nginx/sites-available/myapp
server {    listen 80;    server_name tu-dominio.ru;

location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $ho

Blogs

Book Recommendations