VerifyDomain
V.1.0.1
Descripción
Este proyecto nace de la necesidad de crear un servicio el cual nos permita identificar, de cada uno de los dominios especificados en la base de datos, si este tiene una redireccion HTTP/HTTPS hacia otro dominio y cual es el dominio final.
Adicionalmente, en caso de mostrar algun error HTTP/HTTPS tambien lo almacena en la base de datos
El acceso y utilización del aplicativo es mediante un acceso directo a MariaDB, donde se especifican los nuevos Dominios asi como obtener los resultados de las comprobaciones.
Esta estipulado que la funcion de comprobacion se ejecuta todos los minutos mediante las funciones CRON de automatismos de sistema.
Un concepto clave, en todo el aplicativo, es el concepto de Cadencia, el cual se refiere a los dias que transcurren entre comprobaciones de un dominio.
Estructura del Repositorio
En este Repositorio podeis encontrar la siguiente estructura de carpetas:
APP: Código fuente de toda la aplicación, la cual esta pensada para funcionar bajo servidor NginX y PHP, Adicionalmente, tambien se incluyen las clases.
API: Debido a la posibilidad de una implementación API en un futuro, hemos creado la estructura necesaria para dotar al equipo de desarrollo de una estructura unificada de repositorio.
AUTO: Scrips de automatismos
DOCS: Configuraciones de acceso y permisos, asi como diversos pantallazos de documentación.
Utilización
La utilizacion del software es bajo conexion directa a la Base de datos.
Una vez accedamos, solo debemos especificar el dominio y dejar a sistema trabajar.
Cuando se cumplan los dias de Cadencia, automaticamente se va a volver a evaluar el dominio.
Estructura del Dato
En la base de datos podemos encontrar las siguientes tablas, con sus campos asociados:
Base de Datos : verifyDomain
Tablas
-
config: Tabla de configuración global de aplicativo, en la cual solo podemos configurar los dias de Cadencia. En esta tabla podemos encontrar los siguientes campos:
- id: ID autonumerico de la fila.
- cadenciaInicial: Especificar, en dias, los periodos entre comprobaciones
-
Domains: Tabla para la configuracion de los nuevos dominios asi como para obtener los datos de los dominios consultados. En esta tabla podemos encontrar los siguientes campos:
-
id: ID autonumerico de la fila.
-
dominio: Especificar el dominio a comprobar añadiendo el protocolo, por ejemplo, https://www.fonia.ai/. Este campo es el único que necesita ser interactuado por el usuario para el uso de la aplicación
-
redireccion: Especifica, en un valor booleano si tiene redireccion o no.
-
dominioFinal: Cadena de texto con el dominio final de la consulta del dominio final. En caso de redirección, aqui aparecería el dominio final.
-
fechaPrimeraComprobación: Fecha de la primera comprobación del Registro
-
fechaActualizacion: Fecha de la última comprobación del Registro
-
cadencia: Número de días entre comprobaciones.
-
error: Error HTTP/HTTPS en caso de no resolver el dominio.
-
Accesos al Sistema
A continuación, se indican los accesos para las diversas secciones del aplicativo.
Servidor DEMO
En este momento (Feb2023), tenemos activo un servidor de DEMO para que se puedan probar todas las configuraciones antes de desplegar el servicio en su ubicación final.
La IP de acceso de este servidor es: 164.92.205.194
Para acceder el servicio PhyMyAdmin desde el servidor de Demo, la URL es: http://164.92.205.194/phpmyadmin
Este servicio se prevee activo hasta el 1 de Abril de 2023.
Accesos al Servidor
Se ha configurado un acceso root mediante SSH. Las credenciales son las siguientes:
usuario: root contraseña: wW0eI8bK0aT3sZ8b puerto: 22 protocolo: SSH
Un ejemplo de comando de conexión sería el siguiente:
ssh root@IP_Servidor -p 22
Para acceder a la base de datos MariaDB, debemos realizar dicha conexión desde un acceso SSH previo, con el fin de añadir una medida de seguridad adicional y no exponer el puerto a internet.
Para ello, debemos acceder mediante SSH con las credenciales expuestas en el punto anterior, y, adicionalmente, ingresar con las siguientes credenciales de MariaDB
usuario: jacobo Contraseña: dL6kN6iI7fV6iO2k
PhPMyAdmin
Con el fin de simplificar el acceso, hemos instalado el modulo PhpMyAdmin para poder acceder de manera simple a los datos y el aplicativo.
Las credenciales y ruta de acceso son las siguientes:
usuario: jacobo
Contraseña: dL6kN6iI7fV6iO2k
Deploy
Por el momento ,se plantean dos posibilidades para el Deploy de la app.
-
Mediante DigitalOcean 1-click-app Snapshot: Esto es, compartir directamente el snapshot del servidor con cliente, para que pueda desplegarlo con un simple click en su entorno.
-
Copiando el directorio de este propio GIT en la carpeta pública de NginX, procediendo a crear la estructura de tablas y los accesos necesarios. Toda esta informacion está estructura dentro de la carpeta Docs de este mismo desarrollo.
Consultas y dudas
Para cualquier consulta sobre este desarrollo, propuestas de ampliación y lo que necesiteis para su mantenimiento, podeis contactar directamente conmigo en carlos.presa@fonia.ai / carlos.presa@outlook.es