Implantação de aplicativo Swift em VPS: passo a passo do início ao fim

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 aplicativo Swift em VPS: passo a passo do início ao fim

\n\n

O Swift deixou de ser uma linguagem apenas para desenvolvimento iOS. Graças ao framework Vapor e ao suporte oficial ao Linux, você pode criar aplicativos de servidor de alto desempenho em Swift e implantá-los em uma VPS. Neste guia, percorreremos todo o caminho, desde a configuração do servidor até a execução da versão de produção do seu aplicativo Swift.

\n\n

1. Preparação da VPS e instalação do Swift

\n\n

Para começar, você precisará de uma VPS com Ubuntu 22.04 LTS (ou 20.04). Conecte-se via SSH e execute a atualização do sistema:

\n\n
ssh root@seu-ip-do-servidor\napt update && apt upgrade -y
\n\n

Instale as dependências necessárias para o Swift:

\n\n
apt install -y curl git build-essential libssl-dev libcurl4-openssl-dev\napt install -y libxml2-dev libicu-dev libsqlite3-dev libz-dev
\n\n

Agora baixe e instale o Swift para Ubuntu. Verifique a versão atual em swift.org. No momento da escrita deste artigo, é o Swift 5.9:

\n\n
cd /opt\nwget https://download.swift.org/swift-5.9-release/ubuntu2204/swift-5.9-RELEASE/swift-5.9-RELEASE-ubuntu22.04.tar.gz\ntar xzf swift-5.9-RELEASE-ubuntu22.04.tar.gz\necho 'export PATH=/opt/swift-5.9-RELEASE-ubuntu22.04/usr/bin:$PATH' >> ~/.bashrc\nsource ~/.bashrc
\n\n

Verifique a instalação:

\n\n
swift --version
\n\n

Você deve ver a versão Swift 5.9.

\n\n

2. Criação e compilação do aplicativo Swift/Vapor

\n\n

Instale o Vapor Toolbox (opcional, mas conveniente):

\n\n
git clone https://github.com/vapor/toolbox.git\ncd toolbox\nswift build -c release\ncp .build/release/vapor /usr/local/bin/
\n\n

Vamos criar um aplicativo de teste Vapor. Se você já tem um projeto, basta copiá-lo para o servidor via SCP ou Git.

\n\n
cd ~\nvapor new HelloServer\ncd HelloServer
\n\n

Vamos editar Sources/App/routes.swift para adicionar um endpoint simples:

\n\n
import Vapor\n\nfunc routes(_ app: Application) throws {\n    app.get { req async in\n        "Hello from Swift on VPS!"\n    }\n    \n    app.get("status") { req async -> HTTPStatus in\n        return .ok\n    }\n}
\n\n

Compile o projeto em modo de produção:

\n\n
swift build -c release
\n\n

O binário aparecerá em .build/release/HelloServer.

\n\n

3. Configuração da inicialização e do serviço systemd

\n\n

Para que o aplicativo seja iniciado automaticamente após a reinicialização do servidor, vamos criar um serviço systemd. Primeiro, crie um usuário para o aplicativo (segurança):

\n\n
useradd -m -s /bin/bash swiftuser\nchown -R swiftuser:swiftuser /root/HelloServer
\n\n

Crie o arquivo de serviço:

\n\n
nano /etc/systemd/system/helloserver.service
\n\n

Insira o seguinte conteúdo:

\n\n
[Unit]\nDescription=HelloServer Swift App\nAfter=network.target\n\n[Service]\nType=simple\nUser=swiftuser\nWorkingDirectory=/root/HelloServer\nExecStart=/root/HelloServer/.build/release/HelloServer --host 127.0.0.1 --port 8080\nRestart=on-failure\nRestartSec=5\n\n[Install]\nWantedBy=multi-user.target
\n\n

Inicie o serviço:

\n\n
systemctl daemon-reload\nsystemctl enable helloserver\nsystemctl start helloserver\nsystemctl status helloserver
\n\n

Verifique se o aplicativo responde localmente:

\n\n
curl http://127.0.0.1:8080
\n\n

4. Configuração do Nginx como proxy reverso

\n\n

Para um ambiente de produção, não é recomendado abrir a porta 8080 diretamente. Vamos instalar o Nginx e configurar o proxy com SSL (Let's Encrypt).

\n\n
apt install -y nginx certbot python3-certbot-nginx
\n\n

Crie a configuração do Nginx:

\n\n
nano /etc/nginx/sites-available/helloserver
\n\n

Insira:

\n\n
server {\n    listen 80;\                

Blogs

Book Recommendations