Skip to content

Instantly share code, notes, and snippets.

View nullx5's full-sized avatar
:octocat:
🎯 Keep Calm and Code in Python! 🐍

Blessed nullx5

:octocat:
🎯 Keep Calm and Code in Python! 🐍
View GitHub Profile

Deploy Django en produccion Apache + Gnicorn con Socket Unix | HAY ERRORES INVESTIGAR MÁS

sudo mkdir /srv/myproject; cd /srv/myproject


sudo python3 -m venv env

source env/bin/activate

Python empaquetado - sdist (Source Distribution) vs bdist (Built Distribution) y crear .deb desde codigo fuente python.

sudo apt install setuptools dh_make devscripts dpkg-dev
pip install setuptool

sdist (Source Distribution)

Apache certificados HTTPS diferentes formatos.

nvim /etc/apache2/sites-available/default-ssl.conf

SSLCertificateFile /home/blessed/[crt, cer, pem, pfx]

SSLCertificateFileKeyFile /home/blessed/[key, cer, pem]

Let's Encrypt usa *.pem

publicar mi propio repositorio de paquetes .deb Github Pages

  • Si quieres facilidad para los usuarios: PPA en Launchpad
  • Si quieres algo oficial y serio: Repositorio APT propio | Nginx, Apache, Github Pages
  • Si solo quieres compartirlo rápido: GitHub/GitLab Releases | solo sube el .deb y listo

reprepro - Aptly

Github Pages

Manejo de muchas conexiones simultáneas o concurrentes.

apache + gunicorn.

El número de peticiones por segundo que Apache + Gunicorn puede manejar depende de varios factores:

  • Configuración de Gunicorn (número de workers y tipo de worker).
  • Modo de Apache (prefork, worker o event).
  • Especificaciones del servidor (CPU, RAM).
  • Carga de la aplicación (uso de base de datos, procesamiento de datos, etc.).

Agregar llaves PGP a launchpad

/home/blessed/.gnupg/

Generar llaves PGP

gpg --full-generate-key

Github actions deploy a server ubuntu cuando se haga push a rama main

repositorio en GitHub Settings > Secrets and variables > Actions.

Agrega los siguientes secretos:

SSH_HOST: 192.168.100.1

SSH_USER: root

django1.8 con python3.5.10 mediante pyenv

Django 1.8 con Python 3.10, ya no es compatible.

Causa del error
En Django 1.8, el código intenta importar Mapping desde collections:

from collections import Mapping, OrderedDict

Sin embargo, en Python 3.10, Mapping fue movido a collections.abc, por lo que el import correcto debería ser:

poetry vs hatch vs uv vs flit python

Python Tools para gestionar entornos, dependencias, crear paquetes y publicarlos en PyPI. pyproject.toml

Mejor manejar los entornos manualmente, más control. 👨🏻‍💻🤪 parece que hay que gestionar los entornos directamente con poetry y hatch.

Poetry

Poetry requires Python 3.9+