Como hospedar um site criado com Saga no GitHub Pages
O Saga é um gerador de sites estáticos (SSG) criado em Swift.
Ele permite construir blogs, documentações e sites extremamente rápidos usando apenas Swift.
Neste tutorial você aprenderá:
- Como instalar o Saga.
- Como criar um projeto.
- Como publicar no GitHub Pages.
- Como configurar deploy automático com GitHub Actions.
- Como configurar domínio personalizado.
- Como configurar DNS corretamente.
- Como ativar HTTPS.
- Como evitar problemas e ataques de domínio no GitHub Pages.
Configurando DNS do GitHub Pages
Antes mesmo de configurar o deploy, vale a pena já deixar o domínio preparado corretamente.
No provedor de DNS do seu domínio, configure os seguintes registros.
A (domínio raiz)
Configure os registros A apontando para os IPs do GitHub Pages:
185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
AAAA (IPv6)
Também é recomendado configurar IPv6:
2606:50c0:8000::153
2606:50c0:8001::153
2606:50c0:8002::153
2606:50c0:8003::153
CNAME (subdomínio www)
Configure o subdomínio www:
www -> seu-usuario.github.io
TXT (verificação de domínio)
Para aumentar a segurança e evitar problemas de takeover/hijacking de domínio, o GitHub recomenda adicionar o registro TXT de verificação.
No GitHub:
Settings -> Pages -> Add a domain
Após adicionar o domínio, o GitHub exibirá um registro TXT semelhante a este:
_hosted-pages-challenge-seuusuario
Valor:
xxxxxxxxxxxxxxxxxxxx
Esse registro comprova que você é proprietário do domínio.
Mais informações na documentação oficial do GitHub Pages. (docs.github.com)
1. Instalando o Saga
Você pode instalar o Saga via Homebrew ou Mint.
🍺 Homebrew
brew install loopwerk/tap/saga
🌱 Mint
mint install loopwerk/saga-cli
2. Criando o projeto
saga init nome-do-site
cd nome-do-site
saga dev
Isso inicia um servidor local para desenvolvimento.
Estrutura do projeto
Um projeto Saga típico se parece com isso:
Package.swift
Sources/
content/
deploy/
Sources/-> lógica do site em Swift.content/-> conteúdos do site.deploy/-> HTML final gerado pelo Saga.
3. Criando o repositório no GitHub
Crie um repositório no GitHub:
nome-do-site
Depois faça o push inicial:
git init
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/seu-usuario/nome-do-site.git
git push -u origin main
4. Configurando o GitHub Pages
No repositório:
- Vá em Settings.
- Clique em Pages.
- Em Source, selecione:
GitHub Actions
5. Criando o deploy automático (CI/CD)
Crie o arquivo:
.github/workflows/deploy.yml
Pipeline completo
6. Desativando o Jekyll
Crie o arquivo:
deploy/.nojekyll
Isso garante que o GitHub Pages sirva os arquivos exatamente como foram gerados pelo Saga.
Sem isso, alguns diretórios e arquivos podem ser ignorados pelo processamento do Jekyll.
7. Configurando domínio personalizado
No GitHub:
Settings -> Pages -> Custom domain
Digite seu domínio:
seudominio.com.br
8. Ativando HTTPS
Depois que o DNS propagar corretamente:
Settings -> Pages -> Enforce HTTPS
Ative a opção para forçar HTTPS no site inteiro.
Segurança e boas práticas
Algumas boas práticas importantes:
- Sempre utilize HTTPS.
- Configure o TXT de verificação do GitHub.
- Nunca remova o domínio do GitHub sem remover o DNS antes.
- Utilize GitHub Actions ao invés do branch
gh-pages. - Evite apontar múltiplos serviços para o mesmo domínio.
Fluxo final
git push -> GitHub Actions -> Swift build ->Saga gera /deploy ->Deploy automático -> https://seudominio.com.br
Tudo isso utilizando o ecossistema do GitHub Pages, GitHub Actions e Swift.
Conclusão
O Saga é uma excelente opção para quem deseja criar sites rápidos e modernos usando Swift.
Com GitHub Pages e GitHub Actions, você consegue montar um fluxo completo de hospedagem, deploy automático, HTTPS e domínio personalizado.
Além disso, configurando corretamente DNS e verificação TXT, seu projeto fica mais seguro e profissional.