Introdução: Por que implantar Swift em VPS?
Swift não é apenas uma linguagem para aplicações iOS e macOS. Graças ao framework Vapor e ao suporte nativo ao Linux, você pode criar soluções de servidor de alto desempenho em Swift. A implantação de tal aplicação em um VPS (Virtual Private Server) abre possibilidades para criar suas próprias APIs, sites e microsserviços.
Neste artigo, abordaremos o ciclo completo de implantação de uma aplicação Swift em um servidor remoto com Ubuntu 22.04. Você aprenderá como preparar o ambiente, compilar o projeto, configurar a inicialização automática e o servidor proxy. O guia é adequado tanto para iniciantes quanto para desenvolvedores experientes que desejam sistematizar seus conhecimentos.
1. Preparação do servidor e instalação do Swift
O primeiro passo é alugar um VPS (recomendamos 2 núcleos, 2 GB de RAM). Após conectar via SSH, execute a atualização do sistema e a instalação das dependências.
1.1. Configurações básicas
ssh root@seu-ip-do-servidorapt update && apt upgrade -yapt install curl git build-essential pkg-config libssl-dev zlib1g-dev -y1.2. Instalação do Swift Toolchain
Para Ubuntu 22.04, use a distribuição oficial do Swift. Verifique a versão atual em swift.org.
# Baixar Swift 5.9 (exemplo)wget https://download.swift.org/swift-5.9-release/ubuntu2204/swift-5.9-RELEASE/swift-5.9-RELEASE-ubuntu22.04.tar.gz
# Extrairtar -xzf swift-5.9-RELEASE-ubuntu22.04.tar.gzmv swift-5.9-RELEASE-ubuntu22.04 /usr/share/swift
# Adicionar ao PATHecho 'export PATH=/usr/share/swift/usr/bin:$PATH' >> ~/.bashrcsource ~/.bashrc
# Verificaçãoswift --version2. Compilação e configuração da aplicação
Vamos considerar a implantação de uma aplicação Vapor típica. Suponha que seu projeto já esteja em um repositório Git.
2.1. Clonagem e compilação
cd /var/www/git clone https://github.com/seu-usuario/seu-repositorio.git myappcd myapp
# Compilação em modo Releaseswift build -c releaseApós a compilação bem-sucedida, o arquivo executável estará em .build/release/Run. Para Vapor, a porta padrão é 8080.
2.2. Execução e teste
# Execução temporária (Ctrl+C para parar).build/release/Run serve --hostname 0.0.0.0 --port 8080Verifique o funcionamento: abra no navegador http://seu-ip-do-servidor:8080. Se vir uma resposta, está tudo funcionando.
3. Configuração do systemd para inicialização automática
Para que a aplicação inicie automaticamente após a reinicialização do servidor, criaremos um serviço systemd.
3.1. Criação do serviço
nano /etc/systemd/system/myapp.serviceInsira o seguinte código (substitua os caminhos pelos seus):
[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.target3.2. Ativação e inicialização
systemctl daemon-reloadsystemctl enable myappsystemctl start myappsystemctl status myappSe o status for active (running) — o serviço está funcionando. Agora a aplicação iniciará automaticamente.
4. Configuração do Nginx e SSL (HTTPS)
O servidor proxy Nginx é necessário para lidar com arquivos estáticos, balanceamento de carga e adição de certificado SSL.
4.1. Instalação do Nginx
apt install nginx -y4.2. Configuração do proxy
Crie um arquivo de configuração para seu domínio ou IP:
nano /etc/nginx/sites-available/myappserver { listen 80; server_name seu-dominio.ru;
location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $ho