Skip to content

Repository files navigation

CIGST

Centro Integral de Gestión de Soporte Técnico

Feed de novedades · Bases de conocimiento · Tickets con adjuntos · Personas · Equipos y espacios · Chat en tiempo real

Todo en un solo lugar, corriendo 100% dentro de la red de la empresa — sin depender de internet ni de ningún servicio externo, en ningún momento.

Docker Compose Node.js PostgreSQL TypeScript npm audit Sin llamadas externas Uso


Centro de operaciones de CIGST


¿Qué es CIGST?

CIGST es la plataforma interna de pedidos de la empresa: reemplaza la planilla, el grupo de chat externo y las hojas sueltas por un único sistema donde cualquier persona pide ayuda, el área correspondiente la resuelve, y todo queda registrado — quién pidió qué, quién lo atendió, sobre qué equipo o espacio, y cuándo.

No es solo para Sistemas: cada sector que recibe pedidos define sus propias categorías. Sistemas puede tener "Hardware" y "Red"; Mantenimiento, "Arreglar" y "Modificación"; y así con cada área. El formulario de ticket se adapta solo al sector elegido.

Se instala con un solo comando, en una sola máquina de la red interna, y el resto de la empresa accede desde el navegador de siempre. Nunca sale un byte a internet en el uso diario — ver Seguridad para el detalle completo de esa garantía.

Por qué existe

Sin CIGST Con CIGST
Pedidos de soporte por chat/mail, se pierden entre mensajes Un ticket por pedido, con estado, prioridad e historial
Cada área improvisa cómo clasificar sus pedidos Cada sector define sus propias categorías de ticket
Las capturas del problema van por otro canal Imágenes, PDF y planillas adjuntos al ticket o al chat
Nadie sabe qué equipo o espacio tiene cada sector Inventario por sector, con historial automático de cada edición
El acceso a la info depende de quién pregunte primero Permisos por rol, los mismos para todos, validados en el servidor
Coordinación por WhatsApp/email externo Chat interno (1 a 1 y grupos) sin salir de la red de la empresa
Hay que recargar para ver si hubo novedades Los mensajes y los cambios de estado llegan solos, al instante
Nadie se entera de un cambio salvo que lo busque Notificaciones dentro de la plataforma, con un click al destino
"¿Ese ya se fue?" — hay que preguntar quién está Horario laboral por persona: en línea / fuera de horario, calculado solo
Listas larguísimas donde los cerrados tapan lo urgente Columnas ordenables y filtro que oculta los cerrados por defecto
Los avisos de la empresa se pierden en un grupo de WhatsApp Feed de novedades, con la grilla del sábado como tabla y no como captura
Las claves de las obras sociales, en un Excel que circula por mail Bases de conocimiento por área, con permisos y datos sensibles tapados

Funciones principales

  • 📰 Feed de novedades — el tablero de la empresa: avisos, novedades y la grilla de puestos del sábado. Publican Administradores y Supervisores; lo lee todo el personal. Se puede pegar una tabla desde Excel y queda como tabla de verdad (se busca, se lee en el celular, no es una captura de pantalla). Con comentarios, "me gusta", publicaciones fijadas y quiénes la leyeron.
  • 📚 Bases de conocimiento — cada área arma la suya (Facturación, Sistemas, RR.HH.) con secciones y artículos: instructivos, accesos y procedimientos. Quien la crea decide quién la lee y quién la edita, por sector, por rango o por persona. Los datos sensibles (usuarios y claves compartidas) se muestran tapados hasta que alguien los revela con un clic.
  • 🎫 Tickets — alta en segundos (todo por listas desplegables), estado, prioridad, responsable asignado y solución aplicada. Menú de acciones rápidas para resolver/cerrar/asignarse sin abrir el detalle.
  • 🏷️ Categorías por sector — cada área que recibe pedidos define las suyas ("Hardware" o "Red" para Sistemas; "Arreglar" o "Modificación" para Mantenimiento). Al elegir el sector a requerir en un ticket — a qué área se le pide la ayuda, que no es dónde está el equipo — la lista de categorías se ajusta sola a ese sector.
  • 🔎 Listas ordenables y filtrables — clic en cualquier columna para ordenar (y otro para invertir), buscador que filtra al escribir, y el filtro de tickets que oculta los cerrados por defecto. El orden es el que uno espera en castellano: ignora mayúsculas, ubica bien los acentos y la ñ, y compara los números por valor (Consultorio 3 antes que Consultorio 213).
  • 📎 Archivos adjuntos — imágenes, PDF y planillas en tickets y en el chat. Las imágenes se ven directamente; el resto se descarga. Hasta 5 archivos de 10 MB por vez.
  • 👤 Personas — ficha por colaborador con su sector, contacto y tickets. Se le carga el horario laboral eligiendo entrada y salida de un reloj, y la plataforma muestra sola si está en línea o fuera de horario, calculado en el servidor (incluidos los turnos que cruzan la medianoche). Cada edición queda en un historial de cambios automático.
  • 🏢 Equipos y espacios — no solo inventario informático: también consultorios, salas, puertas o instalaciones — cualquier cosa sobre la que se pida ayuda. Editable, con historial de cambios automático (qué cambió, de qué valor a qué valor, cuándo).
  • 🗂️ Sectores y turnos — catálogo compartido por Personas, Equipos y Tickets; los turnos de soporte se configuran una vez por empresa. Desde el detalle de un sector se dan de alta personas ya ubicadas ahí.
  • Tiempo real — los mensajes del chat, los cambios de estado de los tickets y las notificaciones aparecen solos, sin recargar y sin esperar. Va por WebSocket sobre el mismo puerto y la misma cookie de sesión: no abre nada nuevo hacia afuera. Si se corta la red o se suspende el equipo, reconecta solo.
  • 💬 Chat interno — mensajería 1 a 1 y grupos (los crea un Administrador), 100% tráfico local, con badge de no leídos y adjuntos.
  • 🔔 Notificaciones — campanita con lo que te corresponde a vos: ticket nuevo, cambio de estado, asignación, alta en un grupo. Un click te lleva al lugar exacto.
  • 🔐 Permisos por rol — Administrador, Supervisor y User, cada uno con exactamente el acceso que le corresponde (tabla completa en seguridad.md).
  • 📋 Bitácora técnica — registro de eventos de infraestructura, para Administradores.
Ver más capturas de pantalla
Tickets Sectores
Chat Panel administrador

Instalación en 3 pasos

  1. Descargar el proyecto (clonar el repositorio o bajar el ZIP y descomprimirlo).
  2. Ejecutar el instalador:
    • 🪟 Windows: doble click en install.bat
    • 🐧 Linux / 🍎 Mac: en una terminal, ./install.sh
  3. Elegir la opción 1 del menú y responder las preguntas (o apretar Enter para usar valores seguros por defecto). Al terminar, el instalador muestra la dirección para entrar, por ejemplo: http://localhost:3000

El mismo menú sirve después para el día a día:

   1) Instalar / iniciar / actualizar la plataforma
   2) Ver estado de los servicios
   3) Ver logs en vivo
   4) Reiniciar servicios
   5) Detener la plataforma
   6) Hacer copia de seguridad (datos + adjuntos)
   7) Restaurar una copia de seguridad
   8) Resetear todo (BORRA los datos)
   9) Salir

Actualizar sin perder datos

Important

Actualizar la plataforma NO borra nada. Los datos viven en volúmenes de Docker independientes del código: al actualizar se reemplaza la aplicación, no la información. Tickets, personas, equipos, sectores, usuarios, chats, notificaciones y archivos adjuntos siguen exactamente donde estaban.

Para actualizar a una versión nueva:

  1. (Recomendado) Opción 6 del menú → copia de seguridad. Queda en backups/AAAA-MM-DD_HH-MM/ con la base completa, los adjuntos y una copia del .env. Guardala fuera de esa máquina.
  2. Traer el código nuevo: git pull (o descargar el ZIP nuevo y reemplazar los archivos — menos tu .env, que es tuyo y nunca viene en el ZIP).
  3. Opción 1 del menú. Reconstruye la aplicación, aplica las migraciones de base de datos que falten sobre los datos existentes, y la deja andando.

Lo único que borra datos es la opción 8 (Resetear), que además exige escribir BORRAR para confirmar.

Cómo se verificó esto

Se instaló una versión anterior, se cargaron datos como los de una empresa (5 sectores, 4 personas, 3 equipos, 5 tickets, 3 usuarios, bitácora y mensajes de chat), y se actualizó a la versión actual con la opción 1. Tras la actualización: los mismos 5 sectores, 4 personas, 3 equipos, 5 tickets, 3 usuarios, bitácora y mensajes, con las tablas nuevas creadas y vacías, listas para usar.

También se probó el ciclo completo de respaldo: copia → borrado total de la plataforma → restauración → los datos volvieron completos y la plataforma siguió funcionando.

¿Qué hace exactamente el instalador, y por qué hace falta uno? Respuesta completa, paso a paso, en docs/instaladores.md.

Requisitos

Important

Lo único que hay que instalar a mano, en cualquier sistema operativo, es Docker — es la única pieza que este proyecto no puede automatizar de forma segura (instalarla requiere permisos de administrador y, normalmente, un reinicio del equipo). Todo lo demás lo hace el instalador.

Sistema Qué instalar Notas
🪟 Windows 10/11 (64 bits) Docker Desktop Requiere WSL2 y virtualización activa en la BIOS/UEFI (el instalador de Docker guía ambos pasos).
🍎 macOS Docker Desktop
🐧 Linux Docker Engine El instalador de CIGST puede instalarlo por vos (con tu confirmación explícita), o hacerlo a mano con la guía oficial.

No hace falta instalar Node.js, PostgreSQL, ni ninguna otra dependencia. Todo el software de la plataforma corre encapsulado dentro de contenedores Docker — nada se instala en el sistema operativo más allá de Docker mismo. Internet solo se usa una vez, durante la construcción inicial, para descargar esas piezas (todas de fuentes oficiales: Docker Hub y el registro oficial de npm — detalle en seguridad.md); después, el uso diario es 100% interno a la red de la empresa.

Primer ingreso

  • Usuario: admin
  • Contraseña: la que elegiste durante la instalación (o la generada automáticamente de 20 caracteres, guardada en el archivo .env de esta carpeta — ver .env.example para el detalle de cada variable).

La plataforma arranca con un caso de ejemplo cargado (una persona, un equipo, un ticket y una conversación de chat) para probar el circuito completo enseguida.

Seguridad, en breve

  • Sesiones server-side (cookie httpOnly, SameSite=Strict); nunca se guarda una contraseña ni un token de sesión en texto plano.
  • Permisos por rol validados en el servidor, no solo ocultos en la interfaz.
  • Cero llamadas a servicios externos en tiempo de ejecución (verificado con captura de tráfico de red).
  • Contenedores reforzados: sin privilegios nuevos, backend con sistema de archivos de solo lectura, base de datos sin puerto expuesto al host.
  • npm audit: 0 vulnerabilidades conocidas. Todas las dependencias son de fuentes oficiales, con versiones fijadas.

Detalle completo, con la matriz de permisos por rol y la privacidad del chat explicada punto por punto: docs/seguridad.md.

Problemas comunes

Síntoma Qué hacer
Docker Desktop no arranca (Windows) Verificar que la virtualización esté activada en la BIOS/UEFI y que WSL2 esté habilitado.
docker: permission denied (Linux) Cerrar sesión y volver a entrar después de instalar Docker (tu usuario entra al grupo docker recién ahí).
"El puerto ya está ocupado" Editar APP_PORT en el archivo .env (por ejemplo 3001) y volver a la opción 1 del menú.
La interfaz se ve rota/desordenada justo después de actualizar la plataforma Forzar recarga sin caché (Ctrl+Shift+R). No debería repetirse: el servidor ya obliga a revalidar los archivos en cada visita.
Cualquier otro error del instalador El detalle técnico completo queda en install.log, en esta misma carpeta.

Documentación

Documento Para quién
📘 Manual de uso (PDF) Cualquier persona — cómo se usa la plataforma día a día, con capturas.
⬇️ Cómo descargar la plataforma (PDF) Quien va a instalarla — Windows y Linux, paso a paso.
⚙️ Cómo instalar la plataforma (PDF) Quien va a instalarla — máximo detalle, Windows y Linux.
🔧 Instaladores: análisis técnico Quien prueba/audita install.sh/install.ps1.
🏗️ Arquitectura Desarrolladores — stack, estructura del código, decisiones de diseño.
🗄️ Modelo de datos Desarrolladores — entidades, convenciones, migraciones.
🔐 Seguridad Cualquiera evaluando si confiar en la plataforma.
🏢 Puesta en producción Infraestructura — reverse proxy (nginx/Apache), HTTPS y WebSocket.

Software interno — no distribuido públicamente.

About

CIGST - Centro Integral de Gestion de Soporte Tecnico.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages