Implantação de aplicativo Swift em VPS: guia passo a passo

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Implantação de aplicação Swift em VPS: guia passo a passo

O desenvolvimento de aplicações server-side em Swift usando o framework Vapor está ganhando popularidade. No entanto, após escrever o código, surge a questão: como hospedar uma aplicação Swift em um servidor remoto? Neste artigo, vamos abordar o processo completo de implantação de uma aplicação Swift em VPS (Ubuntu 22.04) — desde a instalação dos componentes necessários até a configuração de reverse proxy e execução em modo de produção.



1. Preparação do servidor e instalação do Swift

Primeiramente, conecte-se à VPS via SSH e atualize a base de pacotes:

sudo apt update && sudo apt upgrade -y

O Swift requer dependências para compilação. Instale-as:

sudo apt install clang libicu-dev libcurl4-openssl-dev libssl-dev python3 pkg-config -y

Em seguida, baixe e instale o Swift para Ubuntu. No momento da escrita deste artigo, a versão atual é a 5.9. Baixe o arquivo:

wget https://download.swift.org/swift-5.9-release/ubuntu2204/swift-5.9-RELEASE/swift-5.9-RELEASE-ubuntu22.04.tar.gz

Descompacte e mova para /usr/share:

tar xzf swift-5.9-RELEASE-ubuntu22.04.tar.gzsudo mv swift-5.9-RELEASE-ubuntu22.04 /usr/share/swift

Adicione o Swift ao PATH. Abra o ~/.bashrc:

nano ~/.bashrc

Adicione a linha ao final do arquivo:

export PATH="/usr/share/swift/usr/bin:$PATH"

Aplique as alterações:

source ~/.bashrc

Verifique a instalação:

swift --version

Deve exibir a versão Swift 5.9.



2. Compilação da aplicação Swift (Vapor) no servidor

Clone o repositório com a aplicação ou copie os arquivos via SCP. Como exemplo, vamos criar um projeto de teste Vapor:

mkdir ~/myapp && cd ~/myappswift package init --type executable

Adicione o Vapor ao Package.swift (exemplo de servidor mínimo):

// swift-tools-version:5.9import PackageDescription

let package = Package( name: "myapp", platforms: [.macOS(.v13)], dependencies: [ .package(url: "https://github.com/vapor/vapor.git", from: "4.89.0") ], targets: [ .executableTarget(name: "myapp", dependencies: [ .product(name: "Vapor", package: "vapor") ]) ])

Crie o arquivo Sources/myapp/main.swift:

import Vapor

let app = try Application(.detect())app.get { req in return "Hello, Swift on VPS!"}try app.run()

Compile o projeto em modo release:

swift build -c release

Após a compilação, o binário estará em .build/release/myapp. Copie-o para um local conveniente:

cp .build/release/myapp /usr/local/bin/myapp


3. Configuração do Nginx como reverse proxy

A aplicação Swift escutará na porta 8080, e o Nginx redirecionará o tráfego da porta 80 (ou 443 para HTTPS). Instale o Nginx:

sudo apt install nginx -y

Crie um arquivo de configuração para nossa aplicação:

sudo nano /etc/nginx/sites-available/myapp

Conteúdo do arquivo:

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

Ative a configuração e reinicie o Nginx:

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

Não se esqueça de configurar o registro DNS A para seu domínio, apontando para o endereço IP da VPS.

Blogs

Book Recommendations