1. SSH para o seu servidor
ssh root@<server-ip>
2. Encontre as credenciais de login
- Utilizador predefinido:
django - Palavra-passe armazenada em:
/root/.cloudzy-creds
(Opcional) Altere a palavra-passe padrão: passwd django
3. Mude para o utilizador da aplicação
su - django
4. PostgreSQL (opcional)
Se o PostgreSQL foi instalado, configure o banco de dados e o utilizador (exemplo):
sudo -u postgres psql
CREATE DATABASE <db>;
CREATE USER <user> WITH PASSWORD <password>;
GRANT ALL PRIVILEGES ON DATABASE <db> TO <user>;
q
Em seguida, atualize settings.py DATABASES com anfitrião localhost, nome da base de dados, utilizador e palavra-passe. Executar python manage.py migrate.
5. Implemente a sua aplicação
Um aplicativo Flask de exemplo já está em execução e pode ser acessado em: http://<server-ip
Para implementar a sua própria aplicação:
- Navegue até o diretório do seu aplicativo (ou clone um novo projeto):
cd~/django_app - (Opcional) Substituir a aplicação predefinida:
gitclone<your_repo_url> . - Ative o ambiente virtual:
sourcevenv/bin/activate - Instale os pacotes necessários:
pip install -r requirements.txt - Ajustar
settings.py: definirALLOWED_HOSTSpara o seu domínio/IP e certifique-se de queSTATIC_ROOTexiste. - Migrar base de dados:
python manage.py migrate - Recolher estática em
STATIC_ROOT:python manage.py collectstatic --noinput - Reinicie o Gunicorn para aplicar as alterações:
sudo systemctl restart gunicorn - Reinicie o Nginx:
sudo systemctl restart nginx
6. Aceda à sua aplicação
Your Django app is available at: http://<server-ip
O Nginx está a fazer proxy reverso das solicitações para o Gunicorn através do soquete Unix.
7. Alterar porta ou domínio?
Para ajustar o domínio, a porta ou adicionar SSL:
- Editar a configuração do site Nginx:
sudo nano /etc/nginx/sites-available/gunicorn_django - Configuração do teste:
sudo nginx -t - Recarregar o Nginx:
sudo systemctl restart nginx
8. Ativar HTTPS (opcional)
Use o Certbot para ativar o HTTPS.
Instale o certbot:
sudo apt install certbot python3-certbot-nginx -y
Obtenha certificados e atualize o Nginx automaticamente:
sudo certbot --nginx -d example.com
Teste:
nginx -t && sudo systemctl reload nginx