# Sistema de Gestión del Transporte Público Metropolitano Repositorio de los diferentes componentes del sistema de almacenamiento y análisis de los datos del transporte público del Gran Concepción. ## Uso ### Creación de los contenedores Se dispone del archivo `docker-compose.yaml` que permite construir los contenedores a partir de las diferentes imagenes. Para construir las imagenes ejecute en el directorio: ``` docker-compose build ``` Para subir las imagenes al repositorio configurado en el archivo, ejecute: ``` docker-compose push ``` ### Instalación del enjambre Se deja el archivo `docker-compose.srv.yaml` con una configuración básica de un enjambre del proyecto. Primero, debe crear los volumenes externos donde se almacenan los estados persistentes de la base de datos: ``` docker volume create static_gtfs_volume docker volume create pgdata_web docker volume create pgdata_hot_gtfs ``` Una vez creados los volumenes persistentes, para correr una instancia del enjambre con el nombre `prueba-tpmc` ejecute: ``` docker stack deploy prueba-tpmc --compose-file docker-compose.srv.yaml ``` Esto dejará corriendo los contenedores en el enjambre, cada uno se encuentra sirviendo sus endpoints configurados en el servicio y requiere adicionalmente un proxy inverso haciendo relay a de los requests a los contenedores correctos. ### Disclaimer Se deben crear manualmente las schemas en el `system_db`: ``` docker ps docker exec -it hash#del#contendor#system_db bash psql -U postgres \c docker create schema doc; create schema gestion; create schema registros; create schema usuarios; ``` Luego, enviar una solicitud al contenedor `private-dynamic` crea las tablas del modelo una vez que los schemas se encuentran creados. #### Este procedimiento es temporal # TODO * Avanzar exponiendo endpoints dinamicos en `public-dynamic`: listado de archivos GTFS para descargar y mapa de paraderos. * Programar la lógica para la carga de los GTFS-Estáticos a la bases de datos en `carga-gtfs`. * Consolidar los modelos en archivos `.sql`