Mostrando las entradas con la etiqueta Ubuntu. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Ubuntu. Mostrar todas las entradas

domingo, 24 de agosto de 2025

📘 Guía rápida: Despliegue de Django en un VPS con Ubuntu


📘 Guía rápida: Despliegue de Django en un VPS con Ubuntu

1. 🔧 Preparación del servidor

  1. Conéctate por SSH a tu VPS (ejemplo con Contabo o DigitalOcean):

    ssh usuario@IP_DEL_SERVIDOR
  2. Actualiza paquetes:

    sudo apt update && sudo apt upgrade -y
  3. Instala dependencias:

    sudo apt install python3 python3-pip python3-venv git curl -y

2. 🐍 Crear entorno de Django

  1. Clona tu proyecto desde GitLab/GitHub:

    git clone https://gitlab.com/usuario/proyecto.git cd proyecto
  2. Crea un entorno virtual:

    python3 -m venv venv source venv/bin/activate
  3. Instala dependencias:

    pip install -r requirements.txt

3. 🗄️ Configurar base de datos PostgreSQL

  1. Instala PostgreSQL y librerías:

    sudo apt install postgresql postgresql-contrib libpq-dev -y
  2. Crea base de datos y usuario:

    sudo -u postgres psql CREATE DATABASE miapp; CREATE USER miusuario WITH PASSWORD 'mipassword'; ALTER ROLE miusuario SET client_encoding TO 'utf8'; ALTER ROLE miusuario SET default_transaction_isolation TO 'read committed'; ALTER ROLE miusuario SET timezone TO 'UTC'; GRANT ALL PRIVILEGES ON DATABASE miapp TO miusuario; \q
  3. Configura settings.py en tu proyecto:

    DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'miapp', 'USER': 'miusuario', 'PASSWORD': 'mipassword', 'HOST': 'localhost', 'PORT': '5432', } }

4. 🛠 Migraciones y archivos estáticos

python manage.py migrate python manage.py collectstatic --noinput

5. 🚀 Configuración de Gunicorn

Instala Gunicorn:

pip install gunicorn

Prueba que funcione:

gunicorn --bind 0.0.0.0:8000 proyecto.wsgi:application

6. ⚙️ Configuración de Systemd

Crea un servicio para tu app en /etc/systemd/system/miapp.service:

[Unit] Description=Gunicorn instance to serve Django app After=network.target [Service] User=usuario Group=www-data WorkingDirectory=/home/usuario/proyecto ExecStart=/home/usuario/proyecto/venv/bin/gunicorn --workers 3 --bind unix:/home/usuario/proyecto/miapp.sock proyecto.wsgi:application [Install] WantedBy=multi-user.target

Activa el servicio:

sudo systemctl start miapp sudo systemctl enable miapp

7. 🌐 Configuración de Nginx

Instala Nginx:

sudo apt install nginx -y

Configura un bloque de servidor en /etc/nginx/sites-available/miapp:

server { listen 80; server_name midominio.com www.midominio.com; location = /favicon.ico { access_log off; log_not_found off; } location /static/ { root /home/usuario/proyecto; } location / { include proxy_params; proxy_pass http://unix:/home/usuario/proyecto/miapp.sock; } }

Habilita la configuración:

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

8. 🔒 Certificado SSL con Let’s Encrypt

sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d midominio.com -d www.midominio.com

✅ Conclusión

Ya tienes tu aplicación Django desplegada en un VPS con Ubuntu, lista para producción con PostgreSQL, Gunicorn, Nginx y SSL.

📌 Si quieres ver más detalles paso a paso, junto con ejemplos avanzados (Docker, automatización, multitenant, seguridad y más), revisa el curso completo aquí:

👉 Curso en Udemy: Despliegue de aplicaciones Django en varias plataformas VPS



O mira si está en descuento actualmente en este enlace:



🚀Guía: Deploy local de Django + PostgreSQL + Gunicorn + Nginx en Red Hat

Guía: Deploy local de Django + PostgreSQL + Gunicorn + Nginx en Red Hat




Escenario: vamos a correr la app en Red Hat, accesible en http://localhost, con PostgreSQL local, Gunicorn como WSGI y Nginx como reverse proxy.

Supuesto: el proyecto Django ya existe y llega desde GitLab.

0) Preparación del sistema

sudo dnf update -y
sudo dnf install -y git python3 python3-pip python3-venv nginx
sudo dnf install -y postgresql-server postgresql-contrib postgresql-devel
sudo dnf install -y gcc python3-devel
sudo dnf install -y policycoreutils-python-utils

1) Clonar el proyecto desde GitLab

mkdir -p ~/apps && cd ~/apps
git clone git@gitlab.com:tu-usuario/tu-proyecto.git
cd tu-proyecto

2) Crear entorno virtual e instalar dependencias

python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip wheel
pip install -r requirements.txt
pip install "psycopg[binary]"

3) Configurar PostgreSQL

sudo postgresql-setup --initdb
sudo systemctl enable --now postgresql

Crear DB y usuario:

sudo -u postgres psql
CREATE DATABASE myprojectdb;
CREATE USER myprojectuser WITH PASSWORD 'cambia-esta-clave';
GRANT ALL PRIVILEGES ON DATABASE myprojectdb TO myprojectuser;
\q

4) Configurar Django

En settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'myprojectdb',
        'USER': 'myprojectuser',
        'PASSWORD': 'cambia-esta-clave',
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}
STATIC_URL = '/static/'
STATIC_ROOT = BASE_DIR / 'static'

5) Migraciones y estáticos

python manage.py migrate
python manage.py collectstatic
python manage.py createsuperuser

6) Configurar Gunicorn (systemd)

sudo nano /etc/systemd/system/gunicorn.service
[Unit]
Description=Gunicorn for Django
After=network.target

[Service]
User=tuusuario
Group=nginx
WorkingDirectory=/home/tuusuario/apps/tu-proyecto
ExecStart=/home/tuusuario/apps/tu-proyecto/.venv/bin/gunicorn \
  --workers 3 \
  --bind unix:/run/gunicorn/myproject.sock \
  myproject.wsgi:application

[Install]
WantedBy=multi-user.target
sudo systemctl start gunicorn
sudo systemctl enable gunicorn

7) Configurar Nginx

sudo nano /etc/nginx/conf.d/myproject.conf
server {
    listen 80;
    server_name localhost;

    location /static/ {
        alias /home/tuusuario/apps/tu-proyecto/static/;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn/myproject.sock;
    }
}
sudo nginx -t
sudo systemctl restart nginx

8) Flujo de actualización desde GitLab

cd ~/apps/tu-proyecto
git pull origin main
source .venv/bin/activate
pip install -r requirements.txt --upgrade
python manage.py migrate
python manage.py collectstatic --noinput
sudo systemctl restart gunicorn
sudo systemctl reload nginx

✅ Diferencias con Ubuntu

  • Gestor de paquetes: apt (Ubuntu) vs dnf/yum (Red Hat).
  • Nginx: en Red Hat usa conf.d/, en Ubuntu sites-available/enabled.
  • Firewall: ufw (Ubuntu) vs firewalld (Red Hat).
  • SELinux: en Red Hat suele estar activo (etiquetas extra).

Autor: Daniel Bojorge - Debs Consultores


Aprende más en los cursos de udemy:

lunes, 13 de febrero de 2023

🎁Clase Gratis - StaticFiles Admin Django de Python 🐍 usando Servidor Web NGINX 😍

 



Anteriormente envié correo donde indicaba cómo mostrar los archivo estáticos del admin de Django por medio de Apache2, pero a partir de ahí me estuvieron solicitando explicarlo usando NGINX y acá la respuesta.



Pero si aún no tienes este curso, no te preocupes, puedes ver la clase gratis desde youtube de dos formas:

  1. Versión Resumida (Shorts de Youtube)
  2. La Clase Completa (Video Tiempo Normal de Youtube)

Espero te sea de mucha utilidad y dime, del curso míos que estás llevando actualmente, ¿de qué te gustaría que agregara alguna clase?


Recuerda suscribirte al boletín si estás interesado en estas actualizaciones.


viernes, 1 de mayo de 2020

Instalar PostgreSQL en Linux Ubuntu - Proceso Completo

Hola estimado, nuevamente por acá para indicarte que este fin de semana tenía que montar un servidor postgresql en Linux, ya anteriormente publiqué un video indicando cómo se hace, lo que si no hice (en ese momento) fue indicar cómo configurar una unidad LVM en /var/lib/postgresql (donde se instala por default postgresql vía paquetes de Ubuntu) para poder ampliar esa unidad si está quedándose sin espacio.

Así que decidí hacer un video explicando cómo hacerlo, te dejo la serie de cuatro videos, el segundo que pongo acá es el que hice recientemente.
1. Instalar Ubuntu Server 18 04 LTS con LVM


2. Crear Unidad LVM para Instalar PostgreSQL en Ubuntu Server 18.04  <===Nuevo


3. Instalar Postgresql en Ubuntu 18 04

4. Extender Volúmen Disco con Formato LVM (Linux)


domingo, 26 de abril de 2020

Crear Unidad LVM para Instalar PostgreSQL en Ubuntu Server 18.04


Recuerda seguirme en YouTube para más videos



Si te interesan cursos, puedes revisar esta lista
http://bit.ly/8-cursos-debsconsultores

sábado, 15 de febrero de 2020

Instalar Linux Ubuntu Server 18.04 Bionic Beaver LTS con LVM



Te dejo este pequeño video donde explico eso mismo.  Espero te sea de utilidad.


domingo, 16 de diciembre de 2018

Extender Disco Duro Linux con LVM


#Extend #HardDisk #DiscoDuro #LVM #Linux #Ubuntu #Video #HowTo  #storage #Almacenamiento #Administración #Servidores #ServerAdmin #Server #Administration #Admin

Cuando se trata la administración de Discos en Sistemas operativos Linux, es muy importante saber el tipo de formato que se le dará, es altamente recomendado utilizar formato LVM, ya que se crean discos (o almacenamiento) dinámicos, debido a que es posible extender las unidades lógicas, agregando más discos duros.  Todo este proceso se realiza "en caliente" y, por tanto, transparente a los usuarios.

El proceso es bastante sencillo, acá lo describo paso a paso.

1. Listar particiones
    fdisk -l
2. Tomar nota del nombre del nuevo disco
  /dev/sdb
3. Formatear Disco /dev/sdb
  fdisk /dev/sdb
  a. Opción n   :  Agregar nueva partición
  b. Opción p   :  Partición Primaria
  c. Enter 3 veces (se toman los valores predeterminado en las siguientes opciones)
      - Partition Number
  - First Sector
  - Last Sector
  d. Opción t   :  Cambiar el tipo de partición a LVM
  - Seleccionar el formato 8e  (Linux LVM)
  e.  Opción w  :   Guarda los cambios al disco
      - El disco pasa a llamarse /dev/sdb1
4. Crear Volúmen Físico
   - pvcreate /dev/sdb1
5. Desplegar el volúmen de grupo para tomar el nombre del volumen a extender (ubuntu-vg)
   - vgdisplay
6. Extender volumen
   -  vgextend ubuntu-vg /dev/sdb1
7. Mostrar los volúmenes lógicos (tomar el parámetro LV PATH  - /dev/ubuntu-vg/ubuntu-lv)
   - lvdisplay
8. Extender volúmen lógico 
   - lvextend -l+100%FREE /dev/ubuntu-vg/ubuntu-lv
9. Redimensionar el volúmen
   - resize2fs /dev/ubuntu-vg/ubuntu-lv
10. Verificar que ya hay más espacio a utilizar

   -  df -h

Para entender mejor, te dejo este video tutorial donde realizo el proceso descrito anteriormente.

Inicialmente tengo un disco de 15GB donde tenía formateado (y en uso) casi 4GB, agregué otro disco duro de 2GB y decidí extender el tamaño del root filesystem con todo lo que estuviese disponible.

Sin más preámbulos, te dejo el video.




Si quieres estar enterado, regístrate.






También recuerda estar atento a mis redes sociales, especialmente Facebook, Youtube (esta clase tendrá un video ahí), Twitter y Tumblr.




miércoles, 14 de noviembre de 2018

Instalar [Install] PostgreSQL en Ubuntu Server 18.04 LTS Bionic Beaver


#Install #Instalar #Instalación #Installation #PostgreSQL #UbuntuServer #Ubuntu #Linux #bionic #Beaver

Comparte para ver.  Share to watch





 
>