scrip y yaml del proyecto

This commit is contained in:
Marcos Elias Rios Nuñez 2026-06-01 10:01:13 -03:00
parent a2fa4a9a75
commit 655e61c291
2 changed files with 104 additions and 0 deletions

49
desplegar.sh Executable file
View File

@ -0,0 +1,49 @@
#!/bin/bash
# Colores para la terminal
VERDE='\033[0;32m'
AZUL='\033[0;34m'
AMARILLO='\033[1;33m'
NC='\033[0m' # No Color
echo -e "${AZUL}====================================================${NC}"
echo -e "${AZUL} S.I.P - Sistema de Identificación Papiloscópica ${NC}"
echo -e "${AZUL} Script de Despliegue y Sincronización ${NC}"
echo -e "${AZUL}====================================================${NC}"
# 1. Detener contenedores previos y limpiar volúmenes huérfanos
echo -e "\n${AMARILLO}[1/4] Limpiando el entorno Docker anterior...${NC}"
docker compose down --remove-orphans
# 2. Levantar los servicios en segundo plano (Backend, Frontend, Postgres)
echo -e "\n${AMARILLO}[2/4] Levantando contenedores en modo detached...${NC}"
docker compose up -d
# Esperar unos segundos a que la base de datos PostgreSQL acepte conexiones
echo -e "${VERDE}Esperando que PostgreSQL inicialice correctamente...${NC}"
sleep 5
# 3. Ejecutar ciclo de migraciones del ORM en el Backend
echo -e "\n${AMARILLO}[3/4] Sincronizando estructura de base de datos...${NC}"
# Verificar si la carpeta de migraciones ya existe en el contenedor
if docker exec huellas_api [ ! -d "migrations" ]; then
echo -e "${VERDE}-> Inicializando repositorio de Flask-Migrate...${NC}"
docker exec -it -e FLASK_APP=run.py huellas_api flask db init
fi
echo -e "${VERDE}-> Generando script de migración para las tablas papiloscópicas...${NC}"
docker exec -it -e FLASK_APP=run.py huellas_api flask db migrate -m "migracion_sistema_papiloscopico"
echo -e "${VERDE}-> Impactando esquema relacional en PostgreSQL...${NC}"
docker exec -it -e FLASK_APP=run.py huellas_api flask db upgrade
# 4. Ejecutar sembrado de datos iniciales
echo -e "\n${AMARILLO}[4/4] Ejecutando Seeders de control...${NC}"
docker exec -it -e FLASK_APP=run.py huellas_api flask seed
echo -e "\n${VERDE}====================================================${NC}"
echo -e "${VERDE} ¡PROCESO FINALIZADO CON ÉXITO! ${NC}"
echo -e "${VERDE} API escuchando, base de datos Postgres al día. ${NC}"
echo -e "${VERDE} Frontend listo en http://localhost:8080 ${NC}"
echo -e "${VERDE}====================================================${NC}"

55
docker-compose.yml Normal file
View File

@ -0,0 +1,55 @@
services:
db:
image: postgres:15-alpine
container_name: sip_db
restart: always
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
ports:
- "${POSTGRES_PORT}:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- sip_network
api:
build: ./api
container_name: sip_api
restart: always
volumes:
- ./api:/app
ports:
- "${FLASK_PORT}:5000"
environment:
- FLASK_ENV=${FLASK_ENV}
- DATABASE_URL=${DATABASE_URL}
- JWT_SECRET_KEY=${JWT_SECRET_KEY}
depends_on:
- db
networks:
- sip_network
frontend:
build: ./frontend
container_name: sip_front
restart: always
volumes:
- ./frontend:/app
- /app/node_modules
ports:
- "${VITE_PORT}:8080"
environment:
- VITE_API_BASE_URL=${VITE_API_BASE_URL}
depends_on:
- api
networks:
- sip_network
volumes:
postgres_data:
networks:
sip_network:
driver: bridge