Como hospedar um app Django na Vercel?

Publicado por mim em 23 de Março de 2024 às 08:56

Neste artigo, vou explicar como você pode hospedar sua aplicação web feita em **Django** utilizando o Vercel de graça . Antes de começar, espero que você já tenha um aplicativo **Django** ( ainda não? olhe a documentação [aqui](https://docs.djangoproject.com/en/5.0/)) em mãos, por isso, vou abordar somente a criação de arquivos adicionais de configuração que são necessários para hospedagem. ## requirements.txt É no arquivo **requirements.txt** que contém uma série de dependências/libs que são necessárias para um programa Python. Para você gerar um **requirements.txt** de seu projeto use o comando `pip freeze`: ``` pip freeze > requirements.txt ``` Após isso, um novo arquivo será gerado. ## build_files.sh No arquivo build_files, podemos realizar ações de construção e configuração necessárias para preparar nosso app para produção. Nesse caso, escolhi realizar duas etapas com ele: criação de migrações e coleta de arquivos estáticos. ```sh #!/usr/bin/env bash echo "Migrando banco de dados..." python3 manage.py makemigrations --noinput python3 manage.py migrate --noinput echo "Coletando arquivos estáticos..." python3 manage.py collectstatic --noinput ``` ## vercel.json Por último, nós temos o `vercel.json` que também é um arquivo que deve ser criado para configuração do seu projeto , só que nesse caso, serve como configuração para a vercel. Aqui está o nosso arquivo: ```json { "version": 2, "builds": [ { "src": "{projeto}/wsgi.py", "use": "@vercel/python", "config": { "maxLambdaSize": "15mb", "runtime": "Python3.9" } }, { "src": "build_files.sh", "use": "@vercel/static-build", "config": { "distDir": "staticfiles_build" } } ], "routes": [ { "src": "/static/(.*)", "dest": "/static/$1" }, { "src": "/(.*)", "dest": "{projeto}/wsgi.py" } ] } ``` Todos os campos com `{projeto}` devem ser substituídos pelo nome do seu projeto. Após todo o processo de configuração, você já pode subir sua aplicação em um repositório no GitHub, por exemplo, e conectar o mesmo com a vercel. Espero que tenha ajudado : )