Gostaria de saber se alguém sabe como fazer um script/executável ou conhece alguma ferramenta de configuração para executar uma aplicação django localmente sem realizar o procedimento de ir a pasta do aplicação, iniciar a venv e o executar o python manage.py runserver 0.0.0.0:80?
Criei um sistema em django para gerenciar os serviços realizados pela empresa que trabalho. Mostrei ao dono da empresa e ele achou a ideia interessante, mas disse gostaria de testar o sistema durante algumas semanas para ver o resultado. Fiz o deploy em plataformas gratuitas, mas devido as limitações delas não deu certo para o uso diário. Pensei em fazer o deploy em uma VPS, mas ele disse que por envolver dados de clientes e informações financeiras não queria deixar online ainda. Faz uns dois dias que estou executando na minha máquina colocando em rede para que outras máquinas possam o acessar.
Obs.: Não trabalho em uma empresa de tecnologia, mas programo a um tempinho já.
1 curtida
AWS Lightsail
Você pode dar uma olhada no Lightsail da Amazon. É um vps praticamente, porem da amazon web services. Preço OK, o de 5 dólares/mês você ja consegue colocar teu mvp tranquilo.
Valores: VPS, preços de hospedagem na Web — Amazon Lightsail — Amazon Web Services
Você pode pegar uma instancia linux e criar um script de inicialização.
start.sh
#!/bin/bash
# acessar diretorio do projeto
cd /var/www
# ativar virtual env
source /venv/bin/activate
# fazer o migrate caso necessario
#(tomar cuidado, vai alterar a base de dados)
python manage.py migrate
# rodar o django
python manage.py runserver 0.0.0.0:80
Mas obviamente, esse é o caminho manual que não é interessante.
O ideal seria…
Subir através de containers. A maioria das empresas de hosting possuem alguma forma de subir teu projeto em um container usando Docker. Além disso usar um proxy reverso como gunicorn/hypercorn/etc.
Heroku
A heroku por exemplo não é gratis, porém é barato e ja pode aguentar um mvp tranquilo. Vendo o tutorial e os arquivos existentes no exemplo deles, ele ja inclui o gunicorn e o Dockerfile com as instruções da maquina. Faça suas adaptações, mas recomendo rodar o projeto dele de exemplo pra você entender certinho. Veja cada arquivo/modificação: settings.py, arquivos na raiz do projeto, etc.
Tem outras, se a galera mandar ai vou adicionando, mas subir em container te ajuda a automatizar o processo e execução do teu projeto. É muito facil ocorrer falha/esquecimento com processos manuais.
Abraços!!
1 curtida