Instalación¶
Los servicios están definidos en el archivo docker-compose.yml
.
Los siguientes servicios están disponibles:
front
, un servidor web nginx en el puerto 9000 que publica la aplicación del visor de SITMUN (http://localhost:9000/viewer
) y la aplicación administrativa de SITMUN (http://localhost:9000/admin
) y enruta las solicitudes a los serviciosbackend
(http://localhost:9000/backend
) yproxy
(http://localhost:9000/middleware
)backend
, que expone el API de autenticación, autorización y configuración de SITMUNproxy
, que expone el API proxy-middleware de SITMUN y que se comunica con el serviciobackend
persistence
: base de datos PostgreSQL que almacena los datos en el volumenpgdata
.
Para fines de prueba, el uso del proxy
está controlado por la variable de entorno sitmun.proxy.force
en backend
, que por defecto es true
.
block-beta
columns 5
space:2
front["<b>front</b><br>nginx<br>localhost:9000"]
space:2
space:5
persistence[("<b>persistence</b><br>postgres<br>SITMUN database")]
space:1
backend["<b>backend</b><br>Spring Boot<br>SITMUN backend"]
space:1
proxy["<b>proxy</b><br>Spring Boot<br>SITMUN proxy-middleware"]
front -- "/middleware" --> proxy
front -- "/backend" --> backend
proxy -- "/api/config/proxy" --> backend
backend -- "jdbc" --> persistence
Pasos de instalación
Para instalar SITMUN, sigue estos pasos:
-
Clona el repositorio y los proyectos anidados de SITMUN:
-
Cambia al directorio del repositorio:
-
Crea un nuevo archivo llamado
.env
dentro del directorio. Abre el archivo.env
en un editor de texto y agrega tu token de acceso personal de GitHub (GITHUB_TOKEN
) en el siguiente formato: -
Inicia la plataforma SITMUN:
Este comando construirá e iniciará todos los servicios definidos en el archivo
docker-compose.yml
. -
Accede a la aplicación del visor de SITMUN en http://localhost:9000/viewer. Usa el acceso público que no requiere autenticación.
-
Accede a la aplicación administrativa de SITMUN en http://localhost:9000/admin. Esto requiere autenticación. El nombre de usuario predeterminado es
admin
y la contraseña predeterminada esadmin
.
Configuración
Las variables de entorno se definen en el archivo .env
.
Las siguientes variables de entorno están disponibles:
GITHUB_TOKEN
: Token de acceso personal de GitHub (clásico). El token es necesario para obtener paquetesnpm
de GitHub Packages.
Desinstalación
Para detener y eliminar todos los servicios, volúmenes y redes definidos en el archivo docker-compose.yml
, usa:
En desarrollo
Esta sección está siendo actualizada.
Las instrucciones de instalación son un ejemplo de como serán en un futuro.
Actualmente, se recomienda solo usar en modo de prueba heroku-dev-full
que requiere de una base de datos postgres
.
Una vez completada la instalación de los prerrequisitos y la configuración, puedes proceder con la compilación del backend siguiendo estos pasos:
- Descarga el proyecto https://github.com/sitmun/sitmun-backend-core en tu equipo.
- Crea un proyecto nuevo a partir de las plantillas de la carpeta
deploy
y añádelo asettings.gradle
. - Configura el fichero
application.yml
del nuevo proyecto. Ver Configuración. - Ejecutar el siguiente comando desde la raíz del proyecto en una terminal. Este comando genera el fichero JAR del proxy en la ruta
Los sistemas operativos en los que se pueden desplegar el backend son:
- Linux: como servicio init.d, como servicio systemd o mediante un script de arranque.
- Windows: puede ejecutarse como un servicio Windows usando la herramienta WinSW o mediante un script de arranque.
Una vez completada la instalación de los prerrequisitos y la configuración, puedes proceder con la compilación del proxy siguiendo estos pasos:
- Descarga el proyecto https://github.com/sitmun/sitmun-proxy-middleware en tu equipo.
- Abre el proyecto descargado y modifica del fichero
application.yml
las propiedadessecurity.authentication.middleware.secret
ysitmun.config.url
.security.authentication.middleware.secret
debe contener el token que se ha configurado en el backend para que el proxy pueda autenticarse.sitmun.config.url
debe contener la URI de la API de Configuración y Autorización del backend. Si el proxy y el backend son servicios internos de la misma red, se recomienda usar el nombre interno o la dirección IP interna del backend. Ver Configuración. -
Ejecutar el siguiente comando desde la raíz del proyecto en una terminal.
Este comando genera el fichero JAR del proxy en la ruta
./build/libs/
con el nombresitmun-proxy-middleware-[version].jar
.
Los sistemas operativos en los que se pueden desplegar el proxy son:
- Linux: como servicio init.d, como servicio systemd o mediante un script de arranque.
- Windows: puede ejecutarse como un servicio Windows usando la herramienta WinSW o mediante un script de arranque.
El proxy middleware puede ser desplegado usando Docker.
En la raíz del proyecto se encuentra la carpeta docker
,
en la cual se puede encontrar el fichero docker-compose.yml
y el fichero Dockerfile
.
Si se quiere desplegar únicamente el proxy, se puede hacer construyendo y arrancando la imagen del Dockerfile
.
Como se ha comentado anteriormente,
el proxy depende de la API de Configuración y Autorización y,
por lo tanto, es importante tener correctamente configurada la URL a la API en el fichero de configuración
(sitmun.config.url
).
Es posible desplegar el proxy middleware en local sin necesidad de Docker mediante JVM ejecutando el siguiente comando en la ubicación del fichero JAR generado al construir el proxy.
Una vez completada la instalación de los prerrequisitos puedes proceder con la compilación del visor de mapas siguiendo estos pasos:
- Descarga el proyecto https://github.com/sitmun/sitmun-viewer-app en tu equipo.
- Obtiene un token de GitHub para trabajar con el registro de npm de GitHub Packages.
-
Desde la consola de comandos ejecuta el siguiente comando para autenticarte en el registro de GitHub Packages de npm:
Sustituye
<token>
por el token que has obtenido en el paso anterior. -
Abre el proyecto descargado y modifica el parámetro
apiUrl
en el archivoenvironments.ts
para que apunte a la URI donde está desplegado el backend. Ver Configuración. -
Desde la consola de comandos, navega hasta el directorio raíz del proyecto y ejecuta el comando:
Donde
<conf>
es la configuración y<baseHref>
es la URI donde se va a desplegar. Este comando compilará el visor de mapas para el entorno de producción y generará los archivos en la carpetadist/sitmun-viewer-app
.
Para desplegar el visor de mapas en un servidor web, copia la carpeta sitmun-viewer-app
a tu servidor web.
Configura tu servidor para redirigir las solicitudes de archivos no encontrados a index.html
Es fundamental configurar correctamente esta redirección para el correcto funcionamiento del visor de mapas.
No olvides configurar la redirección a index.html
en tu servidor
Si no se configura correctamente la redirección, es posible que la navegación dentro del visor de mapas funcione correctamente, pero al hacer clic en un enlace externo (por ejemplo, un enlace de correo electrónico), al introducir una URI directamente en la barra de direcciones o simplemente al refrescar la página, se produzca un error 404. Esto ocurre porque estas peticiones son manejadas directamente por el navegador y no por enrutador de Angular que gestiona la navegación dentro del visor de mapas. Ver Routed apps must fall back to index.html en la documentación oficial de Angular para más información.
Una vez completada la instalación de los prerrequisitos puedes proceder con la compilación del administrador siguiendo estos pasos:
- Descarga el proyecto https://github.com/sitmun/sitmun-admin-app en tu equipo.
- Obtiene un token de GitHub para trabajar con el registro de npm de GitHub Packages.
-
Desde la consola de comandos ejecuta el siguiente comando para autenticarte en el registro de GitHub Packages de npm:
Sustituye
<token>
por el token que has obtenido en el paso anterior. -
Abre el proyecto descargado y modifica el parámetro
apiUrl
en el archivoenvironments.ts
para que apunte a la URI donde está desplegado el backend. Ver Configuración. -
Desde la consola de comandos, navega hasta el directorio raíz del proyecto y ejecuta el comando:
Donde
<conf>
es la configuración y<baseHref>
es la URI donde se va a desplegar. Este comando compilará el administrador para el entorno de producción y generará los archivos en la carpetadist/sitmun-admin-app
.
Para desplegar el administrador en un servidor web, copia la carpeta sitmun-admin-app
a tu servidor web.