BDT CLI (bdt)

Shell de operaciones de la plataforma BDT: clona los repositorios desde el GitLab del banco, compila los servicios, construye sus imágenes Docker y los levanta con docker compose. Incluye menú interactivo y asistente guiado de construcción.

Requisitos

  • bash 3.2+ (macOS o Linux)
  • git
  • Docker + Docker Compose v2
  • Java 21 (JDK) — para compilar gateway / service-bus
  • Node.js 20 — para el frontend (solo si se compila fuera de Docker)

Instalación

git clone https://git.dcgeeks.net/BDT/bdt-cli.git
cd bdt-cli
./bdt.sh setup        # instala el comando global 'bdt' + autocompletado + alias

O descarga directa del script:

curl -fsSL https://git.dcgeeks.net/BDT/bdt-cli/raw/branch/main/bdt.sh -o bdt.sh
chmod +x bdt.sh
./bdt.sh setup

setup guarda la raíz del proyecto en ~/.bdt/project-root. Ejecutalo desde el directorio donde van a vivir los repositorios de la plataforma (el script clona backend/, frontend/, infrastructure/, etc. relativo a esa raíz).

Configuración

El script lee ~/.bdt/config al arrancar (las variables de entorno tienen prioridad):

# GitLab del banco
GITLAB_URL=http://gitlab.bicentenariobu.com.ve
GITLAB_GROUP=dcgeeks

# Ambiente por defecto (desarrollo|calidad|demo|produccion)
DEFAULT_ENV=desarrollo

# Servidor de deploy remoto (comando server-deploy)
DEPLOY_SERVER=<ip-del-servidor>
DEPLOY_USER=<usuario-ssh>

Credenciales git (para que clone/pull no pidan contraseña):

bdt git-auth <usuario-gitlab>

Uso rápido

bdt                  # menú interactivo
bdt construir        # asistente: elegir servicio + rama → git → build → docker → up
bdt deploy           # pipeline completo: pull → compilar → imágenes → up → health
bdt status           # estado de servicios y contenedores
bdt health           # health check completo
bdt logs gateway -f  # seguir logs de un servicio
bdt help             # ayuda completa

Asistente construir (opción 0 del menú)

Flujo guiado para construir y desplegar un servicio:

  1. Pregunta qué servicio construir (frontend, gateway, service-bus, canales-admin-web, canales-worker) mostrando rama por defecto y estado del contenedor.
  2. Pregunta la rama (Enter = rama por defecto del servicio).
  3. Muestra el plan y pide confirmación.
  4. Ejecuta: descarga de la rama desde el GitLab del banco → gradle bootJar (solo servicios Java) → docker builddocker compose up -d --force-recreate → health check.

Si hay cambios locales sin commitear, ofrece guardarlos en stash antes de cambiar de rama.

Servicios gestionados

Servicio Stack Rama default Puerto
frontend Next.js develop 59002
gateway Spring Boot develop 58050
service-bus Spring Boot develop 58060
canales-admin-web Next.js (pnpm) master 58180
canales-worker Node (pnpm) master 59091

Infraestructura (postgres, redis, redpanda, keycloak, mailpit, prometheus, grafana) se levanta con bdt up infra.

Notas

  • Los servicios Java se compilan con gradle bootJar antes del docker build (el Dockerfile copia build/libs/*.jar). Frontend y canales compilan dentro del Docker build (multi-stage).
  • El nombre del remote que apunta al GitLab del banco puede variar por repositorio; el script lo detecta automáticamente por URL.
  • Logs de compilación en <raíz>/logs/.
Description
CLI de operaciones BDT Platform — clone, build, deploy y monitoreo de servicios Docker
Readme 233 KiB
Languages
Shell 100%