Despliegue de una aplicación Swift 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 Swift en VPS: guía paso a paso



El desarrollo de aplicaciones de servidor con Swift está ganando popularidad rápidamente gracias al framework Vapor. Sin embargo, muchos desarrolladores de iOS/macOS enfrentan dificultades al transferir una aplicación lista a un servidor remoto. En esta guía, analizaremos en detalle cómo desplegar una aplicación Swift en un VPS, configurar el entorno y garantizar un funcionamiento estable en un entorno de producción.



1. Preparación del servidor VPS para Swift



El primer paso es alquilar un VPS (se recomienda Ubuntu 22.04 LTS) y conectarse a él mediante SSH. Después de iniciar sesión, realice la actualización del sistema:



sudo apt update && sudo apt upgrade -ysudo apt install curl git clang libicu-dev libcurl4-openssl-dev libssl-dev -y


Para instalar Swift en Linux, use el script oficial de Apple:



wget https://swift.org/builds/swift-5.9-release/ubuntu2204/swift-5.9-RELEASE/swift-5.9-RELEASE-ubuntu22.04.tar.gztar xzf swift-5.9-RELEASE-ubuntu22.04.tar.gzsudo mv swift-5.9-RELEASE-ubuntu22.04 /usr/share/swiftecho 'export PATH=/usr/share/swift/usr/bin:$PATH' >> ~/.bashrcsource ~/.bashrcswift --version


Verifique que Swift se haya instalado correctamente; debería ver la versión del compilador.



2. Compilación de la aplicación Swift (Vapor) en el servidor



Copie el código fuente de su proyecto al servidor. La forma más conveniente es usar Git:



git clone https://github.com/su-proyecto/su-repositorio.gitcd su-repositorio


Compile el proyecto en modo release. Esto creará un binario optimizado:



swift build -c releasecp .build/release/Run /usr/local/bin/myapp


Si usa Vapor, asegúrese de que en el archivo configure.swift esté configurado el puerto correcto (generalmente 8080). Ejemplo de configuración:



import Vapor

public func configure(_ app: Application) throws { app.http.server.configuration.hostname = "0.0.0.0" app.http.server.configuration.port = 8080 // Registro de rutas try routes(app)}


Verifique el funcionamiento de la aplicación ejecutándola manualmente:



myapp --env production serve


Si la aplicación se inicia y responde a las solicitudes, puede pasar a la configuración del demonio.



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



Para que la aplicación se inicie automáticamente al reiniciar el servidor, cree un servicio systemd:



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


Inserte el siguiente código:



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

[Service]Type=simpleUser=www-dataWorkingDirectory=/var/www/myappExecStart=/usr/local/bin/myapp --env production serveRestart=on-failureRestartSec=10

[Install]WantedBy=multi-user.target


Guarde el archivo y active el servicio:



sudo systemctl daemon-reloadsudo systemctl enable swift-appsudo systemctl start swift-appsudo systemctl status swift-app


Si el estado muestra active (running), todo funciona.



4. Configuración de Nginx como reverse proxy



Para un entorno de producción, se recomienda usar Nginx para proxy inverso de las solicitudes a la aplicación Swift. Esto proporcionará balanceo de carga y soporte SSL:



sudo apt install nginx -ysudo nano /etc/nginx/sites-available/swift-app


Ejemplo de configuración:



server {    listen 80;    server_name su-dominio.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; }

location /static/ { root /var/www/myapp/Public; expires 3

Blogs

Book Recommendations