¿Cómo desplegar una aplicación en tu servidor con OpenLiteSpeed?

Hola mundo, y bienvenidos a este articulo en este vamos a ver los pasos necesarios para dejar funcionando las aplicaciones que construyamos, en este caso se trata de una aplicación programada con el lenguaje Python y usamos los servicios de Hostinguer para desplegarla a Internet.

Este es parte de un tutorial más extenso con todo el proceso, te dejaremos el enlace a ¿Cómo desplegar tus apps de Python con Hostinger y GitHub Actions?, si te interesa ver el proceso, paso por paso.

Para lo que haremos a continuación, es tener todo listo en un repositorio de GitHub:

Creando el repositorio de nuestro proyecto con Git y GitHub

Lo siguiente será que tengas instalado a Git, para este te podemos recomendar nuestro curso gratuito de Git en el que aprenderás a utilizarlo, ya que aquí solo veremos la secuencia de comandos para poder lograr nuestro objetivo, en el que conocerás sobre la instalación y uso de esta herramienta e igualmente del uso de GitHub, en la que deberás crearte una cuenta.

Lo que haremos a continuación es crear un nuevo repositorio, haciendo clic en el botón que dice «New» como se ve en la siguiente imagen.

Página principal de GitHub
Página principal de GitHub

Enseguida vamos a crear el repositorio, forzosamente le deberemos colocar un nombre, las siguientes opciones, las dejaremos por defecto y podremos dar clic en el botón «Create repository«

Creando nuevo repositorio en GitHub
Creando nuevo repositorio en GitHub

Al finalizar el proceso, verás una pantalla parecida a esta:

Página de repositorio creado
Página de repositorio creado

Ahora regresaremos a la terminal de comandos y estando ubicados en la carpeta de nuestro proyecto.

Obtener listado de módulos

Vamos a utilizar el siguiente comando para obtener el listado de los módulos necesarios para que nuestra aplicación funcione. Si estás usando un ambiente virtual actívalo y enseguida, para terminales de MacOS o una que use los comandos de Linux, el comando será el siguiente:

pip3 freeze > requirements.txt

Pero si usas una que use los comandos Windows como la CMD o la PowerShell el comando será el siguiente:

pip freeze > requirements.txt

El resultado del archivo requirements.txt será algo como esto:

Lista de módulos en el archivo requirements.txt
Lista de módulos en el archivo requirements.txt

Y ahora hay que hacer un par de cambios a nuestro proyecto para no tener problemas cuando esté en desplegado en Internet. En el archivo productly/settings.py, vamos a cambiar un par de línea, vamos a dirigirnos a aproximadamente la línea 35, en la cual tenemos las variables DEBUG y ALLOWED_HOST, deberemos asegurarnos de que estén así:

DEBUG = False

ALLOWED_HOST = ['*']

Regresaremos a nuestra terminal y utilizaremos los siguientes comandos, el primero para inicializar nuestro repositorio en nuestro local:

git init

Ahora agregaremos nuestros archivos con el comando:

git add .

Después haremos commit de nuestros archivos, guardándolos en una nueva versión de nuestro proyecto

git commit -m "primer commit"

Crearemos la rama main con el comando:

git branch -M main

Ahora podremos copiar la siguiente línea de la página de GitHub, la cual incluirá el enlace del de tu repositorio de GitHub a nuestro local , para así poder subir los cambios.

Pasos para añadir el repositorio al entorno local
Pasos para añadir el repositorio al entorno local

El comando en cuestión es:

git remote add origin <tu repositorio>

Configurar permisos de GitHub a nuestro local

Si intentamos subir los cambios al repositorio, si no has configurado el acceso con llaves SSH tendrás el problema que no te permitirá por falta de permisos en el repositorio, por lo que tenemos que configurar las llaves SSH.

Para hacer este proceso necesitaremos crear en nuestra computadora una llave pública y una llave privada, estas nos servirán para darle acceso en GitHub a que podamos hacer cambios en el repositorio.

Para este paso tambien tenemos un articulo para configurar nuestras llaves SSH para tener los permisos para hacer cambios tanto en el repositorio como en el servidor: ¿Cómo agregar llaves SSH a un repositorio para hacer deploy? y ¿Como configurar un certificado SSL para tu servidor?

Clonando y configurando el repositorio en el servidor

Ahora que tenemos los permisos necesarios, vamos a poder subir nuestros cambios y configurar nuestra aplicación de la siguiente manera.

Tenemos que ingresar a donde se encuentra el proyecto de prueba predeterminado de Django en nuestro servidor, para esto dentro de nuestra terminal, estando dentro del servidor, utilizaremos el comando:

cd /usr/local/lsws/Example/html

Vamos a ver todas las carpetas dentro de esta con el comando:

ls

Y vamos a ver algo similar a esto, en el que la carpeta demo, incluye ese proyecto de Django predeterminado:

Carpetas actuales dentro del servidor donde vemos la carpeta demo
Carpetas actuales dentro del servidor donde vemos la carpeta demo

Vamos a ir de nuevo a nuestro repositorio en GitHub y en el botón verde que dice Code, vamos a seleccionar la opción para clonar con SSH y vamos a copiar la dirección que está debajo.-

Eligiendo el método SSH para clonar el proyecto en el servidor
Eligiendo el método SSH para clonar el proyecto en el servidor

Ahora, de nuevo en la terminal, vamos a utilizar el siguiente comando:

git clone <la dirección de tu proyecto que copiamos en el paso anterior>

Tendremos que autorizar que se conecte a GitHub, presionaremos la tecla y seguido de enter y con esto comenzará a descargar el proyecto a nuestro servidor, tendríamos que ver una pantalla parecida a esta.

Clonando el repositorio en el servidor
Clonando el repositorio en el servidor

Ahora verificaremos que nuestra carpeta haya sido traída con éxito, de nuevo usaremos el comando:

ls

Y tendríamos que ver nuestra carpeta:

Carpeta del proyecto agregada con éxito
Carpeta del proyecto agregada con éxito

Ahora vamos a habilitar el puerto que usa nuestra aplicación de Django con el siguiente comando

ufw allow 7080

Lo siguiente será obtener nuestra contraseña de administrador, lo haremos con el comando:

cat /root/.litespped_password

Vamos a copiar la contraseña y abriremos una nueva pestaña en el navegador web

Viendo la contraseña de administrador
Viendo la contraseña de administrador

Vamos a buscar nuestra web, es decir, la dirección de nuestro dominio, y vamos a agregarle el puerto 7080, como ejemplo de nuestro ejercicio, hemos ingresado a la dirección nicolas-schurman.xyz:7080 y no te preocupes si ves la siguiente pantalla, es normal al tratar de ingresar de esta manera, pero tienes que presionar clic en ver avanzado y después clic en proceder a visitar el sitio.

Accediendo al panel de administración
Accediendo al panel de administración

Vas a ver la siguiente pantalla, vamos a ingresar el usuario que es «admin» y la contraseña que copiamos en el paso anterior

Accediendo con el usuario y contraseña
Accediendo con el usuario y contraseña

Ahora que hemos ingresado, vamos a la opción «Virtual Hosts«

Accediendo a Virtual Hosts
Accediendo a Virtual Hosts

Verás una pantalla como esta, y ahora vamos a hacer clic en «Example«,

Lista de Virtual Host
Lista de Virtual Host

Y luego vamos a hacer clic en la pestaña de «Context» y luego, en donde dice «AppServer«, vamos a presionar en el icono de editar dentro de la columna de «Actions«

Accediendo a la configuración del server de la App
Accediendo a la configuración del server de la App

Ahora en esta página vamos a bajar un poco para ver las opciones, y veremos que en Location, Startup File, y Environment, esta la referencia de la dirección a Demo, la aplicación predeterminada de Django, pero la cambiaremos por el nombre de nuestra app, para nuestro ejemplo es productly, quedando esta parte de la siguiente manera:

Cambiando del proyecto demo por nuestro proyecto, parte 1
Cambiando del proyecto demo por nuestro proyecto, parte 1
Cambiando del proyecto demo por nuestro proyecto, parte 2
Cambiando del proyecto demo por nuestro proyecto, parte 2

Vamos a regresar a nuestra terminal, donde nos quedamos y vamos a usar él, siguiente comando:

cd productly

Y ahora vamos a encender nuestro ambiente virtual.

source /usr/local/lsws/Example/html/bin/activate

Verás que en la terminal aparece un (HTML) antes de nuestra ruta, como la siguiente.

Ambiente virtual activado en la terminal del servidor
Ambiente virtual activado en la terminal del servidor

Ahora sí, procederemos a instalar los módulos que habíamos obtenido previamente en el archivo requirements.txt

pip install -r requirements.txt

Una vez que se terminen de instalar las dependencias, vamos a hacer un reinicio haciendo clic en el siguiente icono en la página de la pestaña «Context«

Recargando el servidor
Recargando el servidor

Si ingresas a tu dominio sin el puerto, deberías de ver el proyecto funcionando.

Proyecto cargado con éxito
Proyecto cargado con éxito

Pero si no funcionó tendremos que reiniciar el servidor en la página de hostinger, en nuestros servidores vamos a hacer clic en el botón «Manage»:

Vista de todos los proyectos
Vista de todos los proyectos

Y luego, en la pestaña de overview, vamos a bajar y encontraremos la opción «Reboot VPS«.

Reiniciando la VPS desde Hostinger
Reiniciando la VPS desde Hostinger

Con esto tenemos lista nuestra app, pero si quieres saber cómo hacer el proceso de actualización cuando realices cambios te dejaremos el siguiente artículos: ¿Cómo hacer el deploy en un servidor de manera manual y automática con GitHub Actions?, y el tutorial completo para hacer el paso por paso: ¿Cómo desplegar tus apps de Python con Hostinger y GitHub Actions?

Y si quieres adquirir un plan anual de Hostinger, no olvides utilizar el código HOLAMUNDO en tu suscripción al servicio de 12 meses para obtener aún más descuento, y ahora te preguntamos ¿qué aplicación o aplicaciones son la que subirás a tu servidor?

Te dejaremos el enlace a todos nuestros cursos de programación, los cuales los encontrarás disponibles en la academia Hola Mundo y puedes optar por adquirir los cursos de manera individual en el siguiente link: todos los cursos de Hola Mundo, si prefieres acceso a todo, también puedes elegir un plan de suscripción mensual o anual, y además te invitamos al siguiente enlace donde vas a poder obtener un descuento en tu primer año a sólo $49.90 usando el cupón PRIMERA_VEZ al momento de realizar tu pago

acceso a todo primer año

O igualmente puedes optar por cada curso de manera individual en Udemy.

Y esto ha sido todo de este post, si te ha encantado, ¡golpea al botón de me gusta!, dejanos un comentario, y para no perderte nada, no olvides suscribirte a este blog, seguirnos en todas las redes como Youtube, Twitter, Instagram y Tiktok, y por último, te invitamos a escuchar nuestra música «Hola Beats«, diseñada para ayudarte a concentrarte y acompañarte en tu aprendizaje o trabajo, la puedes encontrar en Spotify, Apple Music, Amazon Music, Youtube Music y Deezer.

¡Hasta la próxima!, y chao mundo

Gabriel Hernández

Soy desarrollador fullstack autodidacta y estudié administración en la universidad. Mi stack es principalmente con JavaScript, haciendo frontend con React y Next, y backend con Node y Express. Otras herramientas con las que he trabajado son Python para backend y Solidity para desarrollo de contratos inteligentes.

Deja un comentario

Press ESC to close

Descubre más desde Hola Mundo

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo