Tabla de contenidos
- ¿Que es MxSIG?
- Requerimientos
- Instalación
- Consideraciones
- Cambios importantes en MxSIG 2.1
- Actualización del Cliente MxSIG durante una Liberación
- Modulos de software libre que utiliza
- Servicios estandarizados que provee
- Funcionalidades
- Ventajas
- Licencias
¿Que es MxSIG?
Plataforma de código abierto para la web desarrollada para implementar soluciones geomáticas que facilitan el uso, integración, interpretación, publicación y análisis de la información geográfica y estadística. Está desarrollada utilizando módulos robustos de software de código libre.
Requerimientos
Usando como base una tecnología que segrega los procesos (Docker), MxSIG se puede configurar de diferentes formas, y plataformas, de modo que pueden ejecutarse de manera independiente a través de contenedores que ofrecen modelos de implementación basado en Imágenes.
Se requiere instalar, cumplir las siguientes requerimientos será suficiente.
| Hardware | Recomendado |
|---|---|
| Memoria RAM | 4 GB |
| Memoria SWAP | 2 GB |
| Disco duro | 30 GB |
| Procesador | Quad core |
Estos son requerimientos básicos para la instalación de MxSIG, si en lo particular el usuario requiere más recursos son a su propia consideración.
Clonar proyecto
Forma recomendada de obtener y utilizar el proyecto
Para facilitar la actualización de MxSIG y mantener una copia sincronizada con el repositorio oficial, se recomienda obtener el proyecto mediante Git, realizando una clonación del repositorio.
Esta forma de obtener el proyecto permite posteriormente consultar y descargar las actualizaciones disponibles sin necesidad de volver a descargar el proyecto completo.
Clonación recomendada mediante Git
Desde una terminal, ejecute:
git clone https://git.inegi.org.mx/mxsig/mxsig.git
Actualización del proyecto
Una de las principales ventajas de utilizar Git es que permite mantener el proyecto actualizado mediante el repositorio remoto.
Para consultar y obtener los cambios disponibles:
git pull
De esta manera, cuando exista una actualización del proyecto, es posible incorporarla a la copia local sin tener que realizar nuevamente todo el proceso de descarga.
Recomendación: Se recomienda conservar el proyecto como un repositorio Git y utilizar git pull para obtener las actualizaciones. Esto facilita el mantenimiento de la instalación y permite mantener una copia local vinculada al repositorio oficial de MxSIG.
Otras formas de obtener el proyecto
El uso de Git es la forma recomendada, pero no es la única alternativa. Dependiendo de las necesidades del entorno, el proyecto también puede obtenerse mediante otros mecanismos disponibles en GitLab, por ejemplo:
- Descargar el proyecto como archivo ZIP desde la interfaz web de GitLab.
- Descargar un snapshot de una rama o versión específica.
- Obtener el proyecto mediante otros mecanismos de exportación disponibles en GitLab.
Estas alternativas pueden ser útiles cuando el equipo no cuenta con Git o cuando únicamente se necesita una copia puntual del proyecto.
Sin embargo, una copia descargada como ZIP no mantiene la relación con el repositorio remoto. Por lo tanto, para obtener posteriormente una actualización será necesario realizar nuevamente la descarga o utilizar otro mecanismo para reemplazar los archivos.
Instalación
Una vez clonado el proyecto de MxSIG este se puede configurar de diferentes formas y en diferentes plataformas.
1.- Instalación mediante script
MxSIG incluye el script mxsig-started.sh para realizar el proceso de instalación y configuración inicial.
Este archivo en sistemas Linux o Mac, debe de tener permisos de ejecución.-
chmod +x mxsig-started.sh
Windows
En Windows existen diferentes alternativas para ejecutar las tareas de instalación de MxSIG.
Opción recomendada: Git Bash
Como alternativa favorable, se recomienda utilizar Git Bash para ejecutar el script mxsig-started.sh. Git Bash forma parte de Git para Windows y proporciona un entorno de línea de comandos compatible con herramientas y comandos utilizados habitualmente en sistemas Linux y macOS.
Una vez instalado Git Bash:
- Abra Git Bash.
- Ubíquese en el directorio donde se encuentra el proyecto MxSIG.
- Ejecute el script mediante:
sh mxsig-started.sh
En caso de que el archivo tenga permisos de ejecución, también puede utilizarse:
./mxsig-started.sh
El uso de Git Bash no es obligatorio. Se presenta como una alternativa recomendada para los usuarios de Windows que prefieran ejecutar el script de instalación de MxSIG desde un entorno de línea de comandos compatible con shell.
Importante.- Si se va a utilizar esta forma de instalación se necesita mencionar que el script usa una utilería llamada unzip que en la mayoría de distribuciones Linux suele estar preinstalada, en caso contrario basta con instalarlo usando el gestor de paquetes correspondiente a tu distribución. Para Windows se puede instalar la versión de línea de comandos de unzip o usar una herramienta gráfica que soporte archivos ZIP, como WinRAR, 7-Zip, o PeaZip
Requisitos para la instalación mediante script
Antes de ejecutar el script de instalación, verifique que el equipo cuente con los componentes necesarios para ejecutar MxSIG.
Entre los principales requisitos se encuentran:
- Git.
- Docker o un entorno compatible con los contenedores utilizados por MxSIG.
- Docker Compose o una herramienta compatible con archivos Compose.
- unzip para la extracción de archivos ZIP cuando el proceso de instalación lo requiera.
- Acceso al repositorio y a los recursos necesarios para la instalación.
- Espacio suficiente en disco para las imágenes, archivos y datos de MxSIG.
Nota: Los requisitos específicos pueden variar dependiendo del sistema operativo, la versión de MxSIG y la infraestructura donde se realice la instalación.
En Windows, si utiliza Git Bash, puede utilizar los mismos comandos.
Linux o Mac
A diferencia de sistemas de Windows aqui ya tenemos el uso de nuestra consola por o que basta con dirigirse a la carpeta donde se clono el proyecto y ejecutar los comandos para que este se ejecute.
Cambio de ruta al proyecto de mxsig
cd /path/del/mxsig
Dar permisos de ejecución para mxsig
chmod +x mxsig-started.sh
Ejecutar el proyecto
./mxsig-started.sh
2.- Personalización por medio de variables
La segunda opción permite modificar las rutas y establecer el lugar donde se instalaran los archivos y volumenes del proyecto mediante el uso de variables de ambiente .env con el comando docker compose up -d --build para esto es necesario realizar la descarga de los recursos de manera manual y colocarlos en la ruta requerida
- Archivos para mapserver
- Archivos para tomcat (solr-config)
- War de mdmservices - Deprecado
- Jar de mdmservices
- Archivos shapes
Variables de ambiente
MxSIG necesita la configuración de variables de ambiente para que este funcione correctamente en un archivo .env, y dependiendo de su sistema y ambiente es la configuración de cada una. A continuación, se muestra un ejemplo y la referencia a ellas.
| Variable | Descripción |
|---|---|
| DIR_MXSIG_DATA | Ubicación de cliente de MxSIG para contenedor de apache, cliente ubicado en la url de git mdm-client |
| DIR_MXSIG_INDICES_SOLR | Ruta de archivos de configuración para contenedor de tomcat del war de mdmSearchEngine |
| DIR_MXSIG_DATA_MAP_LOGS | Ruta donde se guardaran los logs relacionados con el contenedor de mapserver |
| DIR_MXSIG_DATA_MAPS | Ruta de maps para el contenedor de mapserver |
Ejemplo archivo .env
Windows
DIR_MXSIG_DATA=C:\mxsig_data\mxsig-client
DIR_MXSIG_DATA_MAP_LOGS=C:\mxsig_data\logs\maps
DIR_MXSIG_DATA_MAPS=C:\mxsig_data\mxsig-servicios\mapserver\map
DIR_MXSIG_INDICES_SOLR=C:\mxsig_data\mxsig-servicios\tomcat\solr-config
Linux
DIR_MXSIG_DATA=/usr/local/mxsig_data/mxsig-client
DIR_MXSIG_DATA_MAP_LOGS=/usr/local/mxsig_data/logs/maps
DIR_MXSIG_DATA_MAPS=/usr/local/mxsig_data/mxsig-servicios/mapserver/map
DIR_MXSIG_INDICES_SOLR=/usr/local/mxsig_data/mxsig-servicios/tomcat/solr-config
Actualización del cliente MxSIG durante una liberación
Procedimiento de actualización
Cliente de MxSIG
1. Cambiar al directorio del proyecto
Abrir una terminal y ubicarse en el directorio del cliente.
cd /ruta/al/proyecto/mdm-client
2. Verificar el estado del repositorio
Comprobar si existen archivos modificados.
git status
3. Si existen cambios locales
En caso de tener archivos modificados, guardar el trabajo realizando un commit local.
git add .
git commit -m "Respaldo de cambios antes de actualización"
Importante: Este commit no puede enviarse al repositorio remoto.
4. Descargar las últimas actualizaciones
Actualizar la rama local con los cambios disponibles en el repositorio.
git pull
5. Resolver conflictos (si existen)
Si Git reporta conflictos durante el pull:
- Revisar los archivos marcados con conflicto.
- Resolver manualmente las diferencias.
- Agregar nuevamente los archivos.
git add .
- Finalizar el proceso si Git lo solicita.
git commit
6. Verificar el estado final
Confirmar que el repositorio se encuentra actualizado.
git status
La salida esperada debe ser similar a:
On branch <rama>
Your branch is up to date with 'origin/<rama>'.
nothing to commit, working tree clean
Recomendaciones
- No realizar
git pushhasta que el responsable de la liberación indique que el repositorio ha sido habilitado nuevamente. - Conservar los commits locales realizados durante este periodo.
- En caso de conflictos complejos, solicitar apoyo al responsable de la liberación antes de continuar.
- Mantener el repositorio actualizado para evitar conflictos mayores al finalizar la liberación.
Actualizaciones tecnológicas
- Java 21 (Eclipse Temurin 21.0.4)
- Apache Tomcat 9
- jQuery 3.7.1
- Actualización de librerías y frameworks base
Cambio arquitectónico principal
El servicio mdmservices fue migrado de Spring Framework a Spring Boot.
A partir de esta versión:
- mdmservices ya no se despliega como archivo WAR.
- mdmservices ya no se ejecuta dentro de Tomcat.
- mdmservices ahora se ejecuta como servicio independiente mediante un archivo JAR.
- Se incorpora un nuevo contenedor Docker denominado mxsig-mdmservices.
Este cambio modifica el procedimiento de personalización, despliegue y actualización de la plataforma.
Impacto para administradores de ambientes existentes
Antes de actualizar una instalación existente es importante considerar:
- Los procedimientos de despliegue cambian.
- Las personalizaciones realizadas sobre mdmservices.war deben migrarse.
- La estructura Docker Compose fue modificada.
- Se agregan nuevos contenedores al ecosistema.
- Se recomienda utilizar Git para administrar personalizaciones y futuras actualizaciones.
No seguir estas recomendaciones puede provocar la pérdida de configuraciones personalizadas durante la migración.
Migración y nuevas consideraciones
Cambio de ubicación de archivos XML
Versiones anteriores:
mdmservices.war
- WEB-INF/classes/config/xml
Versión 2.1:
mdmservices.jar
- BOOT-INF/classes/config/xml
Los archivos de configuración continúan siendo:
- aliasData.xml
- servers.xml
- mdm6.xml
El procedimiento de edición es el mismo; únicamente cambia la estructura interna del paquete.
Acceder al cliente de MxSIG
Una vez que el proceso ha finalizado de manera correcta, es posible acceder al cliente de MxSIG por medio de un navegador web; colocando la ip, dominio del servidor o de manera local.
Puertos del MxSIG
| Contenedor | Puerto |
|---|---|
| mxsig/mxsig-apache | 81 |
| mxsig/mxsig-haproxy | 80 |
| mxsig/mxsig-tomcat | 8080 |
| mxsig/mxsig-mapserver7 | 9000 |
| mxsig/mxsig-db | 5432 |
| mxsig/mxsig-mdmservices | 8087 |
Nota.- Si es necesario cambiar la forma en que se exponen los puertos, deberá modificar el archivo docker-compose.yml, solamente en donde se expone el contenedor. Ejemplo.
contenedor de tomcat
- ports:
- "8084:80"
Consideraciones
Importante
Si se viene de una versión anterior de MxSIG, para poder implementar esta nueva versión se debe de tener en consideración lo siguiente.
-
Al querer usar información de versiones anteriores de MxSIG, no será posible un cambio transparente, por las diferencias en las versiones de volumenes y contenedores de MxSIG-DB. Por tanto, si se quiere traer información, es necesario realizar un back-up de la base de datos y restaurarla en el nuevo volumen del contenedor.
-
De igual forma, es necesario sustituir el mdm-client; sea en la carpeta clientes o en la elegida por el usuario, ajustada en el archivo .env.
-
Del mismo modo que el mdm-client, se debe realizar lo propio con los mapas, indiferentemente que sea en la carpeta mapserver o en el archivo .env.
-
A menos que tenga la intención de eliminar la base de datos y comenzar de nuevo cuando ejecute su proyecto de MxSIG, tenga cuidado al ejecutar comandos como docker system prune o docker volume prune; independientemente de si utiliza un parámetro externo los volúmenes de su base de datos no persistirán más allá del inicio
Contenedores de MxSIG
Para mas información sobre la personalización de contenedores sobre cada uno de ellos visitar docker hub.
Modulos de software libre que utiliza
Librerías de soporte MxSIG
- PostgreSQL
- PostGIS
- MapServer
- OpenLayers
- jQuery
Lenguaje de desarrollo
- HTML5 (JavaScript y CSS)
- Java
Servicios estandarizados que provee
- Web Map Service (WMS)
- Web Map Tile Service (WMTS)
- Representational State Transfer (REST)
Funcionalidades
- Buscador
- Medir área
- Medir distancia
- Digitalizar
- Análisis
- Importar/exportar kml
- Cruces de información
- Leyenda
- Identificar
- Área de control de escala y desplazamiento
- Acercar
- Alejar
- Mapa completo
- Mapa de referencia
- Acceso y control de las capas de información
- Capas de información
- Acceso a capas activas
- Línea de tiempo
- Mapa base
- Descarga de vista
- Imprimir
Ventajas
- Software de código abierto
- Obtención de domicilio geográfico
- Facilidad para el desarrollo de visualizadores de información estadística y geográfica
- Accesibilidad
- Experiencia
- Escalabilidad
- Interoperabilidad
Licencias
MxSIG derechos reservados INEGI
MxSIG es un software gratuito, el usuario es libre de distribuirlo y/o modificarlo según los términos de “GNU Lesser General Public License”, licencia publicada por “Free Software Foundation”. MxSIG es distribuido con el interés de fomentar el uso y aprovechamiento de la información geográfica y estadística, pero SIN GARANTÍA ALGUNA; ni siquiera la garantía implícita de COMERCIALIZACIÓN o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Vea la Licencia “GNU Lesser General Public License” para más detalles.


