El desplegament d'una aplicació Django és el procés de posar la teva aplicació en un servidor perquè estigui disponible per als usuaris finals. Aquest procés implica diverses etapes, des de la configuració del servidor fins a la gestió de bases de dades i la configuració de servidors web. En aquesta secció, aprendrem com desplegar una aplicació Django pas a pas.

  1. Preparació del Projecte per al Desplegament

1.1. Configuració de l'Entorn de Producció

Abans de desplegar la teva aplicació, és important assegurar-se que està configurada correctament per a l'entorn de producció. Això inclou ajustar les configuracions de seguretat i optimització.

Configuració del fitxer settings.py

  1. DEBUG: Assegura't que DEBUG està establert a False en producció.

    DEBUG = False
    
  2. ALLOWED_HOSTS: Defineix els dominis o adreces IP que poden accedir a la teva aplicació.

    ALLOWED_HOSTS = ['example.com', 'www.example.com']
    
  3. Configuració de la Base de Dades: Utilitza una base de dades adequada per a producció, com PostgreSQL.

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': 'mydatabase',
            'USER': 'mydatabaseuser',
            'PASSWORD': 'mypassword',
            'HOST': 'localhost',
            'PORT': '5432',
        }
    }
    
  4. Configuració de l'Static i Media Files: Assegura't que els fitxers estàtics i els fitxers de mitjans es gestionen correctament.

    STATIC_URL = '/static/'
    STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
    
    MEDIA_URL = '/media/'
    MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
    

1.2. Instal·lació de Dependències

Crea un fitxer requirements.txt amb totes les dependències del teu projecte.

pip freeze > requirements.txt

  1. Configuració del Servidor

2.1. Elecció del Servidor

Hi ha diverses opcions per desplegar una aplicació Django, com ara:

  • Heroku
  • DigitalOcean
  • AWS (Amazon Web Services)
  • Google Cloud Platform
  • Azure

En aquest exemple, utilitzarem DigitalOcean.

2.2. Configuració del Servidor a DigitalOcean

  1. Crear un Droplet: Inicia sessió a DigitalOcean i crea un nou Droplet amb Ubuntu.

  2. Accés al Servidor: Accedeix al teu servidor via SSH.

    ssh root@your_server_ip
    
  3. Actualització del Sistema: Actualitza el sistema operatiu.

    apt update && apt upgrade -y
    
  4. Instal·lació de Dependències: Instal·la les dependències necessàries.

    apt install python3-pip python3-dev libpq-dev nginx curl -y
    
  5. Configuració de PostgreSQL: Instal·la i configura PostgreSQL.

    apt install postgresql postgresql-contrib -y
    sudo -u postgres psql
    CREATE DATABASE mydatabase;
    CREATE USER mydatabaseuser WITH PASSWORD 'mypassword';
    ALTER ROLE mydatabaseuser SET client_encoding TO 'utf8';
    ALTER ROLE mydatabaseuser SET default_transaction_isolation TO 'read committed';
    ALTER ROLE mydatabaseuser SET timezone TO 'UTC';
    GRANT ALL PRIVILEGES ON DATABASE mydatabase TO mydatabaseuser;
    \q
    

  1. Desplegament de l'Aplicació

3.1. Clonació del Projecte

Clona el teu projecte des del repositori de Git.

git clone https://github.com/username/repository.git
cd repository

3.2. Creació d'un Entorn Virtual

Crea i activa un entorn virtual.

python3 -m venv venv
source venv/bin/activate

3.3. Instal·lació de Dependències

Instal·la les dependències del projecte.

pip install -r requirements.txt

3.4. Migració de la Base de Dades

Executa les migracions de la base de dades.

python manage.py migrate

3.5. Recopilació de Fitxers Estàtics

Recopila els fitxers estàtics.

python manage.py collectstatic

  1. Configuració de Gunicorn i Nginx

4.1. Configuració de Gunicorn

Instal·la Gunicorn i crea un servei de systemd per gestionar-lo.

pip install gunicorn

Crea un fitxer de servei per Gunicorn a /etc/systemd/system/gunicorn.service.

[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=root
Group=www-data
WorkingDirectory=/path/to/your/project
ExecStart=/path/to/your/project/venv/bin/gunicorn --workers 3 --bind unix:/path/to/your/project.sock projectname.wsgi:application

[Install]
WantedBy=multi-user.target

Inicia i habilita el servei de Gunicorn.

systemctl start gunicorn
systemctl enable gunicorn

4.2. Configuració de Nginx

Configura Nginx per servir la teva aplicació Django. Crea un fitxer de configuració a /etc/nginx/sites-available/projectname.

server {
    listen 80;
    server_name your_domain www.your_domain;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /path/to/your/project;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/path/to/your/project.sock;
    }
}

Activa la configuració i reinicia Nginx.

ln -s /etc/nginx/sites-available/projectname /etc/nginx/sites-enabled
nginx -t
systemctl restart nginx

  1. Conclusió

En aquesta secció, hem après com desplegar una aplicació Django en un servidor de producció. Hem cobert la configuració de l'entorn de producció, la instal·lació de dependències, la configuració del servidor, i la configuració de Gunicorn i Nginx. Amb aquests passos, la teva aplicació Django hauria d'estar disponible per als usuaris finals.

Resum

  • Configuració de l'entorn de producció.
  • Instal·lació de dependències i configuració del servidor.
  • Desplegament de l'aplicació.
  • Configuració de Gunicorn i Nginx.

Ara estàs preparat per desplegar aplicacions Django en un entorn de producció. En el següent tema, explorarem les millors pràctiques de seguretat per assegurar la teva aplicació Django.

© Copyright 2024. Tots els drets reservats