Por que Swift não é apenas sobre desenvolvimento mobile
\nQuando se ouve "Swift", a primeira associação são aplicativos iOS, Xcode e o simulador de iPhone. Mas nos últimos cinco anos, a linguagem se transformou em uma ferramenta completa para desenvolvimento server-side. Vapor, Hummingbird, SwiftNIO — não são apenas bibliotecas, mas um ecossistema capaz de competir com Go e Rust. O problema é outro: muitos desenvolvedores criam backends incríveis em Swift, mas travam na etapa de implantação. Familiar?
\nEu mesmo percorri esse caminho: de "joga no Heroku e esquece" até meu próprio VPS com Docker e CI/CD. Neste artigo, vou mostrar como implantar aplicações Swift corretamente, para que não caiam às 3 da manhã e os usuários não enviem e-mails furiosos. Spoiler: nuvens nem sempre são a bala de prata, e um VPS pode ser mais confiável do que parece.
\n\nO que vamos implantar: exemplo de aplicação em Vapor
\nPara ilustrar, vamos usar uma API REST típica em Vapor 4. Será um servidor simples com um endpoint que retorna JSON. O código é mínimo, mas suficiente para mostrar todas as etapas da implantação.
\n\n// Sources/App/routes.swift\nimport Vapor\n\nfunc routes(_ app: Application) throws {\n app.get { req async in\n return "Hello, Swift on Server!"\n }\n \n app.get("api", "health") { req -> HTTPStatus in\n return .ok\n }\n}\n\nTudo isso é executado com swift run ou vapor run. Mas em produção ninguém faz assim. Precisamos de um processo estável: compilação, empacotamento, execução e monitoramento.
Opção 1: VPS — um velho amigo é melhor que dois novos
\nServidor Virtual Privado (VPS) é como ter sua própria casa: controle total, mas também responsabilidade pela limpeza. Para Swift, é a opção ideal se você quer entender como o sistema funciona por baixo dos panos.
\n\nComo preparar o VPS para Swift
\nPegue um Ubuntu 22.04 (ou 24.04) na DigitalOcean, Hetzner ou Vscale. O Swift tem suporte oficial ao Ubuntu, então não haverá problemas.
\n\n- \n
- Conecte via SSH:
ssh root@your-server-ip\n - Instale as dependências:
apt update && apt install -y clang libicu-dev libcurl4-openssl-dev libssl-dev\n - Baixe o Swift 5.9+ de swift.org e descompacte em
/usr/local\n
# Exemplo de instalação do Swift no Ubuntu\nwget https://download.swift.org/swift-5.9.2-release/ubuntu2204/swift-5.9.2-RELEASE/swift-5.9.2-RELEASE-ubuntu22.04.tar.gz\ntar xzf swift-5.9.2-RELEASE-ubuntu22.04.tar.gz\nmv swift-5.9.2-RELEASE-ubuntu22.04 /usr/local/swift\necho 'export PATH=/usr/local/swift/usr/bin:$PATH' >> ~/.bashrc\nsource ~/.bashrc\nswift --version\n\nImplantação via Git + systemd
\nA maneira mais simples: clone o repositório no servidor, compile o binário e execute como um serviço.
\n\n# No servidor\ngit clone https://github.com/yourname/your-swift-app.git\ncd your-swift-app\nswift build -c release\ncp .build/release/Run /usr/local/bin/myapp\n\n# Crie um unit do systemd\nsudo nano /etc/systemd/system/myapp.service\n\n[Unit]\nDescription=My Swift App\nAfter=network.target\n\n[Service]\nExecStart=/usr/local/bin/myapp\nWorkingDirectory=/root/your-swift-app\nRestart=always\nUser=root\nEnvironment="PORT=8080"\n\n[Install]\nWantedBy=multi-user.target\n\nExecute: systemctl enable myapp && systemctl start myapp. Pronto! Agora sua aplicação roda como um daemon e reinicia automaticamente em caso de falha.
Vantagens do VPS: controle total, baixo custo ($5–10/mês), pode instalar qualquer utilitário. Desvantagens: você precisa configurar monitoramento, atualizações e segurança manualmente. Se sua aplicação crescer, terá que escalar manualmente.
\n\nOpção 2: Docker — conteinerizando Swift
\nO Docker resolve o problema "funciona na minha máquina". Você empacota a aplicação junto com o ambiente e a exec