Despliegue de una aplicación Swift en VPS: guía avanzada

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 Swift en VPS: guía paso a paso para avanzados

Has creado una excelente aplicación de servidor en Swift utilizando el framework Vapor. Ahora necesitas ponerla en producción. El despliegue de una aplicación Swift en VPS requiere comprender las particularidades de Swift en Linux, configurar el entorno del servidor y utilizar las herramientas adecuadas para garantizar estabilidad y rendimiento. En esta guía avanzada, analizaremos el ciclo completo: desde la compilación para Linux hasta la configuración de CI/CD, el trabajo con Docker y Supervisor.



1. Preparación del servidor y compilación de Swift para Linux

Lo primero que debes entender: Swift en macOS y Linux son ecosistemas diferentes. Para el despliegue en VPS (Ubuntu 22.04 LTS) se requiere compilación cruzada o compilación directamente en el servidor. Se recomienda compilar en el servidor para evitar problemas con las librerías.



1.1 Instalación de Swift en Ubuntu

Nos conectamos al servidor por SSH e instalamos las dependencias necesarias:

sudo apt updatesudo apt install -y curl git clang libicu-dev libcurl4-openssl-dev libssl-dev \    libsqlite3-dev libxml2-dev pkg-config uuid-dev

# Descargamos la última versión de Swift Toolchainwget https://download.swift.org/swift-5.9.2-release/ubuntu2204/swift-5.9.2-RELEASE/swift-5.9.2-RELEASE-ubuntu22.04.tar.gztar -xzf swift-5.9.2-RELEASE-ubuntu22.04.tar.gzsudo mv swift-5.9.2-RELEASE-ubuntu22.04 /usr/share/swift

# Agregamos al PATHecho 'export PATH=/usr/share/swift/usr/bin:$PATH' >> ~/.bashrcsource ~/.bashrcswift --version


1.2 Clonación y compilación del proyecto

Clonamos el repositorio y compilamos la versión de lanzamiento de la aplicación:

git clone https://github.com/your-username/your-swift-app.gitcd your-swift-appswift build --configuration release

Después de una compilación exitosa, el binario se encontrará en .build/release/YourApp. Verifica su ejecución manualmente:

./.build/release/YourApp serve --hostname 0.0.0.0 --port 8080


2. Configuración del entorno de producción: Nginx y Supervisor

Ejecutar la aplicación Swift directamente en el puerto 80 es una mala práctica. Usamos la combinación de Nginx (proxy inverso) + Supervisor (gestor de procesos).



2.1 Configuración de Nginx

Instalamos Nginx y creamos una configuración para redirigir las solicitudes a nuestra aplicación Swift:

sudo apt install nginxsudo nano /etc/nginx/sites-available/yourapp

Contenido del archivo:

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

location / { proxy_pass http://127.0.0.1:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; 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; }

# Configuración para archivos grandes (si es necesario) client_max_body_size 50m;}

Activamos la configuración y verificamos:

sudo ln -s /etc/nginx/sites-available/yourapp /etc/nginx/sites-enabled/sudo nginx -tsudo systemctl restart nginx


2.2 Configuración de Supervisor para reinicio automático

Supervisor supervisará el proceso y lo reiniciará en caso de fallo. Lo instalamos y creamos la configuración:

sudo apt install supervisorsudo nano /etc/supervisor/conf.d/yourapp.conf

Contenido de la configuración:

[program:yourapp]command=/home/ubuntu/your-swift-app/.build/release/YourApp serve --hostname 0.0.0.0 --port 8080directory=/home/ubuntu/your-swift-appuser=ubuntuautostart=trueautorestart=truestartretries=3stderr_logfile=/var/log/yourapp.err.logstdout_logfile=/var/log/yourapp.out.logenvironment=ENVIRONMENT="producti                

Blogs

Book Recommendations