'use client'; import { Reveal } from '@/components/ui/Reveal'; import { SectionHeader } from '@/components/ui/SectionHeader'; import { Card } from '@/components/ui/Card'; const SERVICES = [ { name: 'api', port: '8000', image: 'Dockerfile.api', role: 'REST API, job queue, health checks', }, { name: 'frontend', port: '3000', image: 'Dockerfile.frontend', role: 'Next.js standalone production build', }, { name: 'audio-worker', port: '—', image: 'Dockerfile.audio', role: 'Transcription & diarization (workers profile)', }, { name: 'ml-worker', port: '—', image: 'Dockerfile.ml', role: 'Feature extraction & prediction (workers profile)', }, ]; const VOLUMES = [ { name: 'nexus_uploads', mount: '/app/uploads' }, { name: 'nexus_database', mount: '/app/database' }, { name: 'nexus_logs', mount: '/app/logs' }, ]; export function DeploymentSection() { return (

Services

{SERVICES.map((service) => ( ))}
Service Port Image Role
{service.name} {service.port} {service.image} {service.role}

Volumes

    {VOLUMES.map((volume) => (
  • {volume.name}

    {volume.mount}

  • ))}

docker compose -f docker-compose.v2.yml --profile workers up

); }