[PARTE-2][TUTORIAL][DEPLOY][DJANGO] - Enviando para deploy
Orientações
Para o deploy usarei minha VPS/Domínio comprados no site da HOSTINGER , para quem quiser me ajudar comprando com o meu cumpom HOSTINGER - REFERÊNCIA, caso você compra sua VPS e seu domínio, ou qualquer outro produto dentro do site, utilizando meu código, vai me ajudar a receber uma graninha a mais.
Na hostinger eles oferecem o aplicativo para deploy de varias aplicações, como django, rusty, node entre outras, usando o OpenLiteSpeed como gerênciador.
Muitas vezes tentei fazer deploy com NGINX, porém é muito trabalhoso.
Usaremos também POSTGRESSQL, caso queira usar SQLITE apenas pule as etapas indicadas.
Continuando
Após a verificação que tudo ocorreu perfeitamente, e já com sua VPS com OpenLiteSpeed em mãos, vamos que vamos.
Repositório GitHub
Vamos criar um repositório GitHub, após criar você também vai precisar de um token de acesso.
GITHUB - TOKENS
...
Eai criou?
Se sim, bora lá copie sua chave ssh, na sua pasta principal django-project
.gitignore
Esse é o gitignore do projeto, caso queira colocar algo a mais é só adicionar
__pycache__
migrations
*.sqlite3
.env
.gitingore
$ git init
$ git remote add MyBranch <chave-ssh-do-repo>
$ git fetch -a
$ git add --all
$ git commit -m "update: Base do projeto `deploy-django`"
$ git push origin main
Em sua VPS hostinger, você pode ir até SISTEMA OPERACIONAL > APLICATIVOS > "Ubuntu 22.04 64bit with Django/OpenLiteSpeed" > MUDAR SO, esperar o tempo necessário, então você vai acessar seu rep
ssh root@seu-ip
Vamos pegar a senha do OpenLiteSpeed e já vamos adicionar nosso repositório.
$ sudo cat .litespeed_password
# COPIAR O OUTPUT
$ source /usr/local/lsws/Example/html/bin/activate
$ cd /usr/local/lsws/Example/html/
$ mkdir django-project
$ cd django-project
$ git init
$ git remote add VpsBranch <chave-ssh-do-repo>
#ELE VAI SOLICITAR O TOKEN GERADO, PODE COLOCAR TANTO NO USUÁRIO QUANT O SENHA
$ git fetch -a
# NOVAMENTE SERÁ SOLICITADO O TOKEN
$ git pull origin main
$ python manage.py collectstatic
$ cd ..
$ sudo chown -R nobody:nogroup django-project/
# NOVAMENTE SERÁ SOLICITADO O TOKEN
$ sudo ufw enable
Criando banco de dados postgres (CASO QUEIRA PULAR)
No arquivo de settings, production, caso não for usar o postgres é necessário retirar a configuração de postgres e voltar a original de SQLITE, recomendo usar postgres.
$ apt install postgresql postgresql-contrib -y
$ sudo -u postgres psql
$ CREATE DATABASE django_project_db;
$ CREATE USER django_project_user WITH PASSWORD '!r8!9ja-3jl*_@5f*3uz4#byytvets90tj9g_9w(t$!_^7!l3j';
$ GRANT ALL PRIVILEGES ON DATABASE django_project_db TO django_project_user;
$ \q
Vamos configurar o openlitespeed, com seu ip/dominio pronto, vá para o seu browser e na frente coloce a porta 7080
domain.com.br:7080, ele vai falar que não é seguro mas pode continuar.
O usuário é o admin e a senha foi o output coletado do "cat .litespeed_password" do código acima.
Entrando vamos em:
VIRTUAL HOST > EXAMPLE ( NA LUPA EM ACTION) > CONTEXT > APP SERVER (DO LADO DA LUPA TEM UM BOTÃO COM TOOLTYPE EDIT)
- Configurações
- Location /usr/local/lsws/Example/html/django-project
- Binary Path /usr/local/lsws/fcgi-bin/lswsgi
- Application Type WSGI
- Startup File
- core/wsgi.py
- Enviroment
-
SECRET_KEY=!r8!9ja-3jl*_@5f*3uz4#byytvets90tj9g_9w(t$!_^7!l3j DEBUG=False POSTGRES_NAME=django_project_db POSTGRES_USER=django_project_user POSTGRES_PASSWORD=!r8!9ja-3jl*_@5f*3uz4#byytvets90tj9g_9w(t$!_^7!l3j POSTGRES_HOST=localhost POSTGRES_PORT=5432
Alternativa 2: Ao invés de usar o ENV, pode-se colocar os dados do DB no próprio production.py, ficando apenas o DEBUG=False e o SECRET_KEY.
Após adicionado as configurações, salvar no icone de salvar na direita superior, dar restart, o ícone fica também na direita superior.
Deve-se ir ao HPANEL da hostinger e reiniciar a VPS.
Voltamos à VPS, vamos fazer o seguinte, já com o enviroment ativo, vamos na pasta novamente
$ source /usr/local/lsws/Example/html/bin/activate
$ cd /usr/local/lsws/Exemple/html/django-project
$ python manage.py makemigrations
#PARA TESTAR VAMOS RODAR
$ python manage.py runserver
#CASO TENHA DADO TUDO CERTO, PARE UTILIZANDO CTRL+C
$ sudo ufw delete allow 7080
$ sudo ufw disable
Finalizando, é só reiniciar a VPS e entrar no seu site e ser feliz.
Qualquer problema ou dúvida só me chamar, espero não ter esquecido de nada.
Usem meu CUPOM, e se alguém quiser me arranjar a primeira vaga como dev junior, eu ficaria muito feliz, aceito ser até assistente <3