Como hospedar aplicações FastAPI
1. Pré-requisitos
- Conta na Square Cloud: Crie sua conta via Página de Registro (E-mail ou GitHub).
- Plano Ativo: É necessário um plano pago para realizar a hospedagem. Confira os preços aqui.
2. Configuração de Rede
Para que sua API seja acessível externamente, o webserver deve estar configurado para operar na porta 80. Diferente de ambientes locais (onde usamos 8000), a Square Cloud utiliza a porta 80 para o roteamento público.
Exemplo de Estrutura de Código (app/main.py)
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"status": "online", "framework": "FastAPI"}
3. Realizando o Deploy
- Limpeza do Projeto: Remova pastas de cache como
__pycache__ou pastas de ambientes virtuais (.venv). - Compactação: Crie um arquivo
.zipcontendo a pasta do seu código (ex:app/) e o arquivorequirements.txt. - Upload: No Dashboard da Square Cloud, envie o arquivo
.zip. - Publicação Web: Durante o envio, localize e marque a opção "Publicar na Web".
- Subdomínio: Defina o nome do seu subdomínio gratuito (ex:
minha-api.squareweb.app). - Comando de Início para Produção: O FastAPI agora possui um comando CLI integrado que facilita a execução em produção, garantindo que o servidor utilize os workers de forma eficiente e escute na porta correta.
No momento do envio ou no seu arquivo squarecloud.app, defina o comando de início como:
python -m fastapi run app/main.py --port 80
run: Comando otimizado para execução em produção.app/main.py: O caminho para o arquivo onde sua instância FastAPI está localizada.--port 80: Define a porta obrigatória para o funcionamento na Square Cloud.
5. Domínios Personalizados (Plano Standard+)
Se você utiliza o plano Standard ou superior, você pode configurar um domínio profissional (ex: api.seudominio.com):
- A configuração é feita na aba Network do Dashboard.
- O SSL (HTTPS) é gerado automaticamente, garantindo que sua API seja segura por padrão.
6. Dicas de Performance
- Validação Automática: O FastAPI utiliza Pydantic para validação de dados. Certifique-se de definir os schemas para ganhar performance na serialização de JSON.
- Variáveis de Ambiente: Use a aba ENV no Dashboard para gerenciar chaves de segurança e conexões de banco de dados, acessando-as via
os.getenv(). - Monitoramento: Acompanhe os logs em tempo real pelo Dashboard para verificar o carregamento dos workers do servidor.
Atualizado em: 15/04/2026
Obrigado!
