Mindeka

Biblioteca de pensamientos e ideas.

Proyecto «Self-hosting» / 03 – Instalación de Nginx Proxy Manager


Una vez configurada la IP estática en nuestro servidor Debian 12 que vimos en la primera entrada, la instalación de Docker posteriormente en el segundo artículo, seguimos adelante y ahora tocará instalar el proxy inverso que hará la función de protección de nuestro servidor web frente a ataques y que nos ayudará a conseguir un mayor rendimiento.

El servidor proxy inverso siempre se sitúa por delante de los servidores/servicios web que tengamos en el servidor y es el que se encargará de reenviar las solicitudes que reciba hacía los servicios alojados. Es por ello, que es el servicio que tenemos que configurar primeramente es este.

Para instalar este proxy necesitaremos de la última versión LTS de NodeJS, la cual descargaremos desde un repositorio. Por defecto, en Debian 12 viene la versión 18 que serviría, pero siempre me gusta tener actualizada la aplicación a la última versión LTS (Long Term Support) que exista, en este caso la versión 20.

Antes de nada y como práctica habitual, primero haremos un update y upgrade para dejar el sistema actualizado hasta ese mismo momento. Lanzamos los comandos pertinentes:

Después ya podemos ir a la página del repositorio llamado NodeSource de NodeJS (https://deb.nodesource.com) desde donde podremos descargar e instalar la última versión LTS de esta herramienta. En su página veremos lo sencillo que es, básicamente tendremos que copiar/pegar dos líneas.

Pero antes de lanzar estas dos líneas, habrá que instalar el comando curl ya que por defecto no viene instalado por Debian.
Lanzamos la instalación:

Si todo ha ido bien, podemos ver que ya lo tenemos instalado:

Con esto ya estaríamos listos y podemos lanzar las dos líneas que ponían en la página del repositorio:

Terminada la instalación, toca comprobar que la versión instalada de NodeJS es la que queremos, en este caso la 20 LTS.
Ejecutamos el siguiente comando para visualizar la versión:

¡Bien hecho! Ahora ya solo toca instalar el proxy, para ello vamos a la página oficial de GitHub de NPM para ver la última versión disponible he instalarla.

Vamos a seguir exactamente los pasos que se indican ahí, que de manera resumida son las siguientes.

Creamos un fichero docker-compose.yml:

Añadimos el siguiente contenido:

Estamos indicando en el fichero qué:

  • Usaremos la última imagen disponible que exista del NPM,
  • Abriremos los puertos 80, 443 y 81 para el dashboard de administración de la app, y
  • Se crearán las siguientes carpetas de «data» y «letsencrypt».

Salvamos el fichero (:wq!) y lo ejecutamos:

Esto tardará un ratillo entre que descargar la imagen, configura, etc. Al final tendrá que indicarnos con checks de color verde, que todo ha ido bien.
Para confirmarlo podemos ver en qué estado está la aplicación dentro de docker, para ello ejecutamos lo siguiente:

Y tendría que devolvernos que el contenedor de la aplicación está corriendo como podremos ver en la columna de «Status», que dirá el tiempo que lleva levantado:

Si esto es así, el servicio estará levantado, probemos directamente lo que nos dice el puerto 80.
Abrimos un navegador en nuestro equipo y atacamos a la IP de nuestro servidor en mi caso será la IP 192.168.1.12:

Ahora vamos a ir a la página de administración de NPM que por defecto se configura en el puerto 81 y nos devolverá esta ventana de «login»:

Para acceder, como se indica en la página oficial tendremos que utilizar estas credenciales de abajo, que posteriormente nos obligarán a cambiar la primera vez que accedamos, al igual que el nombre, usuario y dirección de correo electrónico.

  • Usuario: admin@example.com
  • Contraseña: changeme

Añadimos la información que queramos poner y daremos al botón de «Save». Y ya estaremos en la página principal desde la que gestionaremos los diferentes apartados de nuestro proxy.

Y hasta aquí toda la instalación de nuestro proxy, seguiremos en próximos artículos con la instalación de los diferentes servicios que queramos tener disponibles en nuestro servidor y veremos como debemos configurar NPM para que las peticiones sean redireccionadas según al servicio que se quiera acceder.

¡Nos vemos por el Fediverso!

Categorías: , , ,

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *