Instalación
Docker-Compose
Dependency-Track dispone de imágenes de Docker ya preparadas, por lo que solo es necesario realizar algunas configuraciones básicas.
Crea un archivo .env en la raíz del proyecto con el siguiente contenido, adaptando los valores a tus necesidades:
USERDB=dtrackOSDO
PASSWORDDB=dtrackPassword
DTRACKDB=dtrack
Crear la red para conectar Dependency-Track con Traefik:
docker network create dtrack
A continuación, crea el archivo docker-compose.yml que define los servicios necesarios:
- Base de datos PostgreSQL
 - API
 - Frontal
 
La base de datos es opcional para pruebas, ya que la propia API puede utilizar una base de datos interna si se eliminan las líneas de configuración ALPINE_DATABASE.
Es necesario cambiar en el label de Traefik el Host example.com por el dominio correspondiente.
services:
  dtrack-postgres:
    image: postgres@sha256:f1314058032e52cce689f2daf3fffe7c136775e3fdd1af3fb36ae5cdc61c7891
    container_name: dtrack-postgres
    environment:
      - POSTGRES_USER=${USERDB}
      - POSTGRES_PASSWORD=${PASSWORDDB}
      - POSTGRES_DB=${DTRACKDB}
    volumes:
      - postgres_data:/var/lib/postgresql/data
    restart: unless-stopped
    networks:
      - dtrack
    labels:
      - "traefik.enable=false"
  dtrack-apiserver:
    image: dependencytrack/apiserver@sha256:bffd457f60dd4aed9a005d20b2a42b7307930518c2a081d1c28baa2c319f391d
    container_name: dtrack-api
    environment:
      - ALPINE_DATABASE_MODE=external
      - ALPINE_DATABASE_URL=jdbc:postgresql://dtrack-postgres:5432/${DTRACKDB}
      - ALPINE_DATABASE_DRIVER=org.postgresql.Driver
      - ALPINE_DATABASE_USERNAME=${USERDB}
      - ALPINE_DATABASE_PASSWORD=${PASSWORDDB}
    deploy:
      resources:
        limits:
          memory: 12288m
        reservations:
          memory: 8192m
      restart_policy:
        condition: on-failure
    volumes:
      - 'dependency-track:/data'
    restart: unless-stopped
    depends_on:
      - dtrack-postgres
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.dtrackapi.rule=Host(`dtrack-api.example.com`)"
      - "traefik.http.routers.dtrackapi.entrypoints=websecure"
      - "traefik.http.routers.dtrackapi.tls=true"
      - "traefik.http.routers.dtrackapi.tls.certresolver=le"
    networks:
      - dtrack
  dtrack-frontend:
    image: dependencytrack/frontend@sha256:63d6a6cc9f4cab15a056d4ec1ba9f8a87203415e8f1f73741fadee7f93bc191e
    container_name: dtrack
    depends_on:
      - dtrack-apiserver
    environment:
      - API_BASE_URL=https://dtrack-api.example.com
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.dtrack.rule=Host(`dtrack.example.com`)"
      - "traefik.http.routers.dtrack.entrypoints=websecure"
      - "traefik.http.routers.dtrack.tls=true"
      - "traefik.http.routers.dtrack.tls.certresolver=le"
    restart: unless-stopped
    networks:
      - dtrack
networks:
  dtrack:
    external: true
volumes:
  postgres_data:
  dependency-track:
Antes de iniciar los servicios, asegúrate de añadir la red en Traefik.
Se recomienda disponer de al menos 4 GB de RAM en el host para que el contenedor funcione correctamente.
Iniciar los contenedores:
docker-compose up -d
Kubernetes
Para instalar Dependency-Track en la plataforma, primero es necesario clonar su repositorio para revisar los valores que se utilizarán en el despliegue.
https://github.com/DependencyTrack/dependency-track
Clonar el repositorio:
git clone https://github.com/DependencyTrack/dependency-track
Esto permite ubicar el chart de Helm y validar las configuraciones necesarias. Luego, agregar el repositorio de Helm:
helm repo add evryfs-oss https://evryfs.github.io/helm-charts/
Existen dos opciones: copiar y modificar el archivo values.yaml disponible en la ruta oficial o crear uno nuevo. Si se clona el repositorio, acceder al directorio correspondiente:
cd charts/dependency-track/
En el archivo values.yaml se deben definir los siguientes parámetros:
frontend:
  enabled: true
  annotations: {}
  replicaCount: 2
  image:
    repository: dependencytrack/frontend
    tag: 4.6.1
    pullPolicy: IfNotPresent
  env:
    - name: API_BASE_URL
      value: "https://dtrack.yourdomain.com"
ingress:
  enabled: true
  tls:
    enabled: true
    secretName: "osdo-certs"
  annotations: {}
  host: dtrack.opensecdevops.com
  ingressClassName: appsec-nginx
Instalar con Helm:
helm upgrade --install dependency-track evryfs-oss/dependency-track -f values.yaml -n dependency-track --create-namespace
Detalles del comando anterior:
--install: Instala la aplicación si no está instalada.--create-namespace: Crea el namespace si no existe.-f values.yaml: Especifica el archivo de configuración personalizado.-n dependency-track: Indica el namespace donde se instalará la aplicación.