Esta información la he extraido del siguiente POST:

Digital Ocean - Set Up Django with Postgres on Debian 10

Aquí ya empezamos con la configuración e instalación de la primera de las apps que tendrá nuestro droplet. En este caso, se trata de este mismo blog. Una aplicacion web escrita dentro del stack Python/Django. En resumen:

  • Instalando los paquetes necesarios: lo primero es instalar los paquetes necesarios de pip, postgre, etc.
trama@laestanciaazul:~$ sudo apt update
trama@laestanciaazul:~$ sudo apt install python3-pip python3-dev libpq-dev postgresql postgresql-contrib nginx curl
  • Configuramos postgreSQL: lo siguiente es crear la base de datos y configurar el usuario en postgreSQL:
trama@laestanciaazul:~$ sudo -u postgres psql
trama@laestanciaazul:~$ CREATE DATABASE laestanciaazul;
postgres=# CREATE USER myprojectuser WITH PASSWORD 'password';
postgres=# ALTER ROLE myprojectuser SET client_encoding TO 'utf8';
postgres=# ALTER ROLE myprojectuser SET default_transaction_isolation TO 'read committed';
postgres=# ALTER ROLE myprojectuser SET timezone TO 'UTC';
postgres=# GRANT ALL PRIVILEGES ON DATABASE myproject TO myprojectuser;
postgres=# \q
  • Configuración del entorno virtual: antes de empezar a instalar ningún modulo de python, vamos a configurar un entorno virtual para evitar problemas de dependencias y escalabilidad a futuro:
trama@laestanciaazul:~$ sudo -H pip3 install --upgrade pip
trama@laestanciaazul:~$ sudo -H pip3 install virtualenv
trama@laestanciaazul:~$ virtualenv webenv
trama@laestanciaazul:~$ source webenv/bin/activate
(webenv) trama@laestanciaazul:~$
  • Instalación de todos los modulos necesarios: aquí suponemos que tenemos un fichero requirements.txt que nos indica los módulos de la aplicación que queremos desplegar. En este caso podemos instalarlos todos mediante un único comando:
(webenv) trama@laestanciaazul:~$ pip install -r requirements.txt