Proposito: Este documento define las herramientas, versiones exactas y procedimientos de instalacion para configurar una estacion de trabajo de desarrollo para el proyecto Nebula ERP.
Todas las versiones listadas son las versiones oficiales del proyecto validadas en el ambiente del arquitecto.
Sistema Operativo de referencia: Ubuntu 24.04 LTS (Noble Numbat)
| # | Herramienta | Version | Backend | Frontend | Ambos | Descripcion |
|---|---|---|---|---|---|---|
| 1 | Git | 2.43+ | ✅ | Control de versiones del codigo fuente | ||
| 2 | Docker Engine | 29.2+ | ✅ | Motor de contenedores para ejecutar la infraestructura local (Oracle, MongoDB, Kafka, servicios) | ||
| 3 | Docker Compose | 5.1+ | ✅ | Orquestador de contenedores multi-servicio, permite levantar todo el stack con un solo comando | ||
| 4 | Java JDK | 25.0.2 LTS (Corretto) | ✅ | Lenguaje y runtime de los microservicios Nebula. Se usa Amazon Corretto por ser la distribucion LTS gratuita de Amazon con soporte empresarial | ||
| 5 | Apache Maven | 3.9.12 | ✅ | Gestor de dependencias y build tool para proyectos Java/Spring Boot. Compila, ejecuta tests y empaqueta los microservicios | ||
| 6 | Spring Tools 5 | 5.0.1 (Eclipse 4.38) | ✅ | IDE especializado para desarrollo Spring Boot. Incluye autocompletado de configuraciones, dashboard de servicios y depurador integrado | ||
| 7 | Node.js | 22.22 LTS | ✅ | Runtime JavaScript para el tooling de desarrollo frontend. Ejecuta el servidor de desarrollo Angular y las herramientas de build | ||
| 8 | npm | 11.11+ | ✅ | Gestor de paquetes de Node.js. Instala las dependencias del proyecto frontend y ejecuta scripts de build/test | ||
| 9 | Angular CLI | 21+ | ✅ | Herramienta de linea de comandos de Angular. Genera componentes, servicios, modulos y ejecuta el servidor de desarrollo |
Estas herramientas son necesarias para todos los desarrolladores, independientemente de su rol.
Que es: Sistema de control de versiones distribuido. Todo el codigo de Nebula vive en GitLab Centrica y se gestiona con Git. Cada desarrollador trabaja en ramas locales, hace commits y sube cambios mediante merge requests.
Pagina oficial: https://git-scm.com/
# Instalar via apt
sudo apt-get update
sudo apt-get install -y git
# Configurar identidad (OBLIGATORIO — usar tu nombre y correo Centrica)
git config --global user.name "Tu Nombre"
git config --global user.email "tu.usuario@centricasoluciones.com"
# Configurar credential store para que Git recuerde tus credenciales de GitLab
git config --global credential.helper store
Verificacion:
git --version
# git version 2.43.0
Que es: Docker permite ejecutar aplicaciones en contenedores aislados. En Nebula lo usamos para levantar la infraestructura local de desarrollo: Oracle Database, MongoDB, Redis, Kafka, MinIO y los propios microservicios. Docker Compose permite definir y levantar todos estos servicios con un solo archivo docker-compose.yml.
Por que es necesario para todos: Tanto backend como frontend necesitan tener los servicios corriendo localmente para probar sus desarrollos contra APIs reales.
Pagina oficial: https://docs.docker.com/engine/install/ubuntu/
# 1. Desinstalar paquetes conflictivos (versiones antiguas de Docker)
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do
sudo apt-get remove -y $pkg 2>/dev/null
done
# 2. Agregar repositorio oficial de Docker
sudo apt-get update
sudo apt-get install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 3. Instalar Docker Engine + Compose plugin + Buildx
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 4. Agregar tu usuario al grupo docker (para no usar sudo en cada comando)
sudo usermod -aG docker $USER
newgrp docker
Verificacion:
docker --version
# Docker version 29.2.1
docker compose version
# Docker Compose version v5.1.0
# Probar que funcione sin sudo
docker run hello-world
Estas herramientas son necesarias para los desarrolladores que trabajan en los microservicios Java/Spring Boot de Nebula.
Que es: Java es el lenguaje de programacion de todos los microservicios de Nebula. Usamos la version 25 LTS (Long Term Support), que garantiza soporte y parches de seguridad por varios anos. La distribucion Amazon Corretto es una build gratuita y certificada de OpenJDK mantenida por Amazon, elegida por su estabilidad en ambientes de produccion.
Pagina oficial: https://docs.aws.amazon.com/corretto/latest/corretto-25-ug/generic-linux-install.html
Descarga directa: https://downloads.corretto.aws/
# Actualizar paquetes e instalar dependencia
sudo apt-get update
sudo apt-get install -y java-common
# Descargar Amazon Corretto 25 LTS
wget https://corretto.aws/downloads/latest/amazon-corretto-25-x64-linux-jdk.deb
# Instalar
sudo dpkg --install amazon-corretto-25-x64-linux-jdk.deb
Configurar JAVA_HOME (agregar al final de ~/.bashrc):
echo 'export JAVA_HOME=/usr/lib/jvm/java-25-amazon-corretto' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Verificacion:
echo $JAVA_HOME
# /usr/lib/jvm/java-25-amazon-corretto
java -version
# openjdk version "25.0.2" 2026-01-20 LTS
# OpenJDK Runtime Environment Corretto-25.0.2.10.1
Que es: Maven es el gestor de dependencias y herramienta de build para proyectos Java. En Nebula, cada microservicio usa Maven para declarar sus dependencias (Spring Boot, Hibernate, Kafka client, etc.), compilar el codigo, ejecutar tests unitarios y empaquetar el artefacto final (JAR/Docker image). Los archivos pom.xml en cada repositorio definen toda la configuracion del build.
Pagina oficial: https://maven.apache.org/download.cgi
Guia de instalacion: https://maven.apache.org/install.html
# Descargar Maven 3.9.12
wget https://dlcdn.apache.org/maven/maven-3/3.9.12/binaries/apache-maven-3.9.12-bin.tar.gz
# Extraer en /opt
sudo tar -xzf apache-maven-3.9.12-bin.tar.gz -C /opt/
sudo ln -s /opt/apache-maven-3.9.12 /opt/maven
# Configurar variables de entorno (agregar al final de ~/.bashrc)
echo 'export MAVEN_HOME=/opt/maven' >> ~/.bashrc
echo 'export PATH=$MAVEN_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Verificacion:
mvn -version
# Apache Maven 3.9.12
# Maven home: /opt/maven
# Java version: 25.0.2, vendor: Amazon.com Inc.
Que es: Spring Tools es el IDE oficial para desarrollo con Spring Boot, basado en Eclipse. Proporciona autocompletado inteligente para archivos de configuracion (application.yml), un dashboard para visualizar los microservicios corriendo, navegacion directa entre beans y controladores, y un depurador integrado. Es el IDE estandar del equipo backend de Nebula.
Pagina oficial: https://spring.io/tools
Version: 5.0.1 (basada en Eclipse 2025-12 / 4.38)
Descarga directa Linux x86_64: https://cdn.spring.io/spring-tools/release/dist/5.0.1.RELEASE/e4.38/spring-tools-for-eclipse-5.0.1.RELEASE-e4.38.0-linux.gtk.x86_64.tar.gz
# Descargar Spring Tools 5 para Linux x86_64
wget https://cdn.spring.io/spring-tools/release/dist/5.0.1.RELEASE/e4.38/spring-tools-for-eclipse-5.0.1.RELEASE-e4.38.0-linux.gtk.x86_64.tar.gz
# Extraer en /opt
sudo tar -xzf spring-tools-for-eclipse-5.0.1.RELEASE-e4.38.0-linux.gtk.x86_64.tar.gz -C /opt/
sudo mv /opt/sts-* /opt/spring-tools-suite
# Instalar Lombok (requerido — genera getters/setters/builders automaticamente en el proyecto)
wget https://projectlombok.org/downloads/lombok.jar -O /opt/spring-tools-suite/lombok.jar
Configurar Lombok en STS — Editar /opt/spring-tools-suite/SpringToolSuite4.ini y agregar al final:
-javaagent:/opt/spring-tools-suite/lombok.jar
Alternativa si Lombok no se instala correctamente: Si al ejecutar el instalador de Lombok (
java -jar lombok.jar) aparece un error o STS no reconoce las anotaciones@Data,@Builder, etc., copiar manualmente el archivolombok.jara la raiz de la instalacion de Spring Tools:cp lombok.jar /opt/spring-tools-suite/lombok.jarLuego verificar que la linea
-javaagent:/opt/spring-tools-suite/lombok.jarexista al final del archivoSpringToolSuite4.iniy reiniciar STS.
Crear acceso directo en el escritorio (opcional):
cat > ~/.local/share/applications/spring-tools-suite.desktop << 'EOF'
[Desktop Entry]
Name=Spring Tools 5
Comment=Spring Boot IDE
Exec=/opt/spring-tools-suite/SpringToolSuite4
Icon=/opt/spring-tools-suite/icon.xpm
Terminal=false
Type=Application
Categories=Development;IDE;Java;
EOF
Verificacion: Abrir STS desde el menu de aplicaciones o ejecutar:
/opt/spring-tools-suite/SpringToolSuite4 &
Nota: Al abrir STS por primera vez, configurar el workspace en
~/workspace-nebulay verificar que detecte el JDK 25 Corretto automaticamente en Window → Preferences → Java → Installed JREs.
Estas herramientas son necesarias para los desarrolladores que trabajan en las aplicaciones Angular de Nebula (SimappeAdmin, SimappeClient y futuros modulos web).
Que es: Node.js es el runtime de JavaScript que ejecuta todo el tooling de desarrollo frontend: el servidor de desarrollo de Angular (ng serve), el compilador TypeScript, el empaquetador (webpack/esbuild) y los tests. npm (Node Package Manager) es el gestor de paquetes que descarga e instala las dependencias del proyecto (Angular, RxJS, PrimeNG, etc.) definidas en el archivo package.json.
Pagina oficial: https://nodejs.org/en/download
# Agregar repositorio NodeSource para Node.js 22 LTS
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
# Instalar Node.js (npm se instala automaticamente)
sudo apt-get install -y nodejs
# Instalar NVM (Node Version Manager)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash
source ~/.bashrc
# Instalar Node.js 22 LTS y configurarlo como version por defecto
nvm install 22
nvm use 22
nvm alias default 22
Verificacion:
node --version
# v22.22.0
npm --version
# 11.11.0
Que es: Angular CLI (Command Line Interface) es la herramienta oficial de Angular para crear, desarrollar y desplegar aplicaciones. En Nebula la usamos para: generar componentes, servicios y modulos con estructura estandar (ng generate), levantar el servidor de desarrollo con hot-reload (ng serve), compilar para produccion (ng build), y ejecutar tests (ng test). El proyecto frontend sigue la arquitectura definida en el documento PATRON_ARQUITECTURA_FRONTEND.
Pagina oficial: https://angular.dev/tools/cli
# Instalar Angular CLI globalmente (version 21.x, compatible con el proyecto)
npm install -g @angular/cli@21
Verificacion:
ng version
# Angular CLI: 21.x.x
Nota: No instalar versiones anteriores ni posteriores a Angular 21 a menos que el arquitecto lo autorice. Los proyectos de Nebula estan configurados para Angular 21.
# Clonar un repositorio de prueba para validar acceso
git clone https://TU_USUARIO@gitlab.centricasoluciones.com/nebula/cross-cutting/nebula-masters.git /tmp/test-clone
# Si pide password, usar el Personal Access Token proporcionado por el arquitecto
# Despues del primer clone exitoso, las credenciales quedan almacenadas
Crear o editar el archivo ~/.m2/settings.xml:
<settings>
<servers>
<server>
<id>centrica-nexus</id>
<username>TU_USUARIO</username>
<password>TU_PASSWORD</password>
</server>
</servers>
</settings>
Nota: Las credenciales de Nexus seran proporcionadas por el arquitecto al momento de la configuracion.
# Login al registry de Docker de Centrica (si aplica)
docker login registry.centricasoluciones.com
# Ingresar usuario y password cuando lo solicite
Para evitar problemas de dependencias, instalar en este orden:
Instalar todo en este orden: Git → Docker → Java → Maven → STS → Node.js → Angular CLI
Ejecutar los siguientes comandos y verificar que todos retornen la version correcta segun tu rol:
echo "=== VALIDACION AMBIENTE DESARROLLO ==="
echo ""
echo "--- COMUNES ---"
echo "Git: $(git --version)"
echo "Docker: $(docker --version)"
echo "Docker Compose: $(docker compose version)"
echo ""
echo "--- BACKEND ---"
echo "Java: $(java -version 2>&1 | head -1)"
echo "Maven: $(mvn -version 2>&1 | head -1)"
echo "STS: Abrir Spring Tools y verificar que inicie correctamente"
echo ""
echo "--- FRONTEND ---"
echo "Node.js: $(node --version)"
echo "npm: $(npm --version)"
echo "Angular CLI: $(ng version 2>&1 | grep 'Angular CLI')"
echo ""
echo "=== FIN VALIDACION ==="
Resultado esperado (fullstack):
=== VALIDACION AMBIENTE DESARROLLO ===
--- COMUNES ---
Git: git version 2.43.0
Docker: Docker version 29.2.1, build a5c7197
Docker Compose: Docker Compose version v5.1.0
--- BACKEND ---
Java: openjdk version "25.0.2" 2026-01-20 LTS
Maven: Apache Maven 3.9.12
STS: Abrir Spring Tools y verificar que inicie correctamente
--- FRONTEND ---
Node.js: v22.22.0
npm: 11.11.0
Angular CLI: Angular CLI: 21.x.x
=== FIN VALIDACION ===
Autor: Carlos Torres — arquitecto.centrica@centricasoluciones.com
Proyecto: Nebula ERP — Centrica Soluciones
Ultima actualizacion: Marzo 2026
| Version | Fecha | Autor | Descripcion |
|---|---|---|---|
| 1.2.0 | 2026-03-05 | Carlos Torres | Actualizacion de Maven 3.9.11 a 3.9.12. Agregada alternativa de instalacion manual de Lombok en caso de error. |
| 1.1.0 | 2026-03-04 | Carlos Torres | Publicacion en Wiki Arquitectura Centrica. Actualizacion Angular CLI 19 a 21, correccion de referencias PostgreSQL a Oracle Database, actualizacion Spring Tools 4 a 5.0.1. |
| 1.0.0 | 2026-03-04 | Carlos Torres | Creacion del documento. Definicion de versiones oficiales, URLs de descarga, comandos de instalacion por rol y script de validacion. |