Guía de despliegue local
TranscribIA se instala en su propia infraestructura en modo Docker autónomo: sin dependencias de la nube ni salida de datos. Esta guía está dirigida a los equipos informáticos y responsables de TI del cliente encargados de instalarlo y operarlo. Describe la arquitectura de destino, los requisitos, las etapas de instalación, la configuración y el mantenimiento habitual.
Documento técnico · Publicado por AMBASSADIA SARL · Versión v1.0 · Última actualización:
Requisitos dimensionados según el volumen. Los valores indicados a continuación (CPU, RAM, VRAM GPU y almacenamiento) son orientativos para un despliegue representativo. Los requisitos exactos dependen del volumen de audio procesado, los usuarios simultáneos, los modelos de IA elegidos y el plazo de conservación. Responda al cuestionario de instalación local para recibir un dimensionamiento adaptado a su contexto.
1. Arquitectura de destino
TranscribIA local se basa en una infraestructura Docker Compose autónoma que orquesta servicios de aplicación y bases de datos en un mismo host (o distribuidos según su infraestructura). La transcripción, que requiere gran capacidad de cálculo, se realiza en un servidor GPU externo dedicado.
nginx — proxy inverso + terminación TLS app — backend Laravel 12 (PHP-FPM) queue — worker de tareas default + exportaciones queue-ai — worker de generación con IA queue-media — worker de procesamiento multimedia scheduler — planificador (cron Laravel) reverb — servidor WebSockets en tiempo real frontend — compilación estática React (servida por nginx) postgres:16 — base de datos relacional redis:7 — caché, colas y sesiones El servidor de transcripción GPU (motores WhisperX y pyannote, ejecución CUDA) es un componente separado conectado al resto de la infraestructura. Puede compartir el host GPU o estar aislado en un servidor dedicado según su topología de red.
2. Requisitos de hardware
Servidor de aplicaciones
- CPU — 8 vCPU como mínimo, 16+ recomendadas (arquitectura x86_64).
- RAM — 16 GB como mínimo, 32 GB recomendados.
- Almacenamiento — 100 GB SSD como mínimo (sistema + imágenes + datos). El volumen real depende del audio procesado y del plazo de conservación; se admite almacenamiento local, NFS o compatible con S3.
- Red — acceso desde la intranet del cliente; puerto HTTP
3480expuesto por nginx (o reconfigurado).
Servidor de transcripción — GPU
La transcripción y la diarización se ejecutan con un acelerador gráfico. Se admiten dos familias de hardware:
Recomendado — NVIDIA CUDA
- GPU : NVIDIA RTX 4090 (24 GB de VRAM) como mínimo recomendado, o equivalente de centro de datos (RTX 6000 Ada, L40S, A5000).
- VRAM : 24 GB como mínimo para los modelos WhisperX + pyannote en producción.
- Software : controlador NVIDIA + CUDA 12.x + NVIDIA Container Toolkit instalados.
- Comprobación :
nvidia-smioperativa, GPU visible desde Docker.
Alternativa — Apple Silicon
- Chips : Apple Silicon (M2/M3/M4, preferiblemente Ultra) para volúmenes moderados.
- Memoria unificada : 32 GB como mínimo, 64 GB+ recomendados según los modelos.
- Entorno de ejecución : aceleración Metal/MPS nativa (no requiere CUDA).
- Uso : despliegues de capacidad pequeña/media o ubicaciones secundarias.
3. Requisitos de software
- Docker Engine 24+ y Docker Compose v2 (plugin
docker compose). - SO : Linux recomendado en producción (Ubuntu 22.04/24.04 LTS, Debian 12, RHEL 9). Windows y macOS compatibles para evaluación.
- Git para obtener el repositorio y las actualizaciones.
- GNU Make (se incluyen los objetivos
make install,make up…). - NVIDIA Container Toolkit en el host GPU (si se transcribe con CUDA).
4. Etapas de instalación
El repositorio proporciona un Makefile
y un .env.example. El procedimiento estándar se realiza con unos pocos comandos:
# 1. Obtener el repositorio
git clone <repo-transcribia> transcribia cd transcribia # 2. Préparer le fichier d'environnement cp .env.example .env # → renseigner DB_PASSWORD, REDIS_PASSWORD, clés IA… # 3. Installation complète # (build images + dépendances Composer/NPM + migrations + seed) make install # ── ou, étape par étape ────────────────────── docker compose build docker compose up -d docker compose exec app php artisan key:generate docker compose exec app php artisan migrate docker compose exec app php artisan db:seed
# Aplicación accesible en http://localhost:3480
Objetivos útiles: make up,
make down,
make restart,
make logs,
make migrate,
make seed.
5. Configuración (.env)
Las siguientes variables controlan la base de datos, la caché y los motores de IA. En modo 100 % local, se activa el LLM local y se deja vacía la clave de la nube:
# ── Base de données PostgreSQL ────────────── DB_DATABASE=transcribia DB_USERNAME=transcribia DB_PASSWORD=<mot-de-passe-fort> # ── Redis (cache + queues + sessions) ──────── REDIS_PASSWORD=<mot-de-passe-fort> # ── Moteurs IA ─────────────────────────────── ALLOW_LOCAL_LLM=true LLM_BASE_URL=http://llm-local:8000/v1 # serveur LLM local OPENROUTER_API_KEY= # vide en full on-premise
ALLOW_LOCAL_LLM redirige la generación (resúmenes, actas, etc.) al endpoint local declarado en LLM_BASE_URL. Mientras OPENROUTER_API_KEY permanezca vacía, ninguna llamada de IA saldrá de su infraestructura.
6. Modo air-gap (sin conexión)
Para entornos sin acceso a Internet, TranscribIA funciona completamente desconectado tomando tres precauciones:
- Modelos descargados previamente : los modelos WhisperX y pyannote (y los posibles LLM locales) se descargan de Hugging Face en un equipo conectado y después se transfieren al servidor de destino.
- Imágenes Docker disponibles localmente : las imágenes se cargan desde un archivo (
docker load) en lugar de descargarse de un registro público. - Actualizaciones manuales : las nuevas versiones se aplican mediante transferencia de paquetes, sin
git pullnidocker pullen línea.
# Forzar el modo sin conexión (modelos ya en la caché local)
export HF_HUB_OFFLINE=1 # Hugging Face : pas d'accès réseau export TRANSFORMERS_OFFLINE=1
7. Primer inicio y verificación
Cada servicio de docker-compose.yml
expone una comprobación de estado. Comprobación posterior al inicio:
docker compose ps # tous les services "healthy" docker compose exec app php artisan migrate:status curl -fsS http://localhost:3480/ # page d'accueil (HTTP 200) docker compose logs -f app # journaux applicatifs
Un servicio que no alcanza el estado healthy
suele indicar que falta una variable de entorno (DB / Redis) o que no se detecta la GPU en el servidor de transcripción.
8. Actualizaciones y mantenimiento
# Récupérer la nouvelle version git pull # Reconstruire + migrer make install # Redémarrer proprement docker compose up -d
- Copias de seguridad : programar volcados PostgreSQL regulares y la copia del volumen
storage/(archivos de audio, exportaciones), preferiblemente en otra ubicación. - Rotación de registros : gestionada por Docker (
json-file, 10 MB × 3 archivos por servicio). - Parches : AMBASSADIA SARL proporciona las actualizaciones de seguridad, aplicables con el mismo procedimiento.
9. Supervisión
- Estado de los contenedores :
docker compose psy comprobaciones de estado integradas. - Registros de la aplicación :
docker compose logs -f app(Laravel); registros estructurados enstorage/logs. - Colas : seguimiento de los workers queue, queue-ai, queue-media mediante Redis.
- GPU :
nvidia-smi -l 5para la carga y la VRAM del servidor de transcripción. - Métricas : exportación posible a sus herramientas de supervisión actuales (Prometheus/Grafana, etc.) bajo petición.
10. Responsabilidades — cliente y Transcribia
Reparto orientativo de responsabilidades operativas en un despliegue local:
Por parte del cliente (responsables y equipos de TI)
- Infraestructura física: servidor, GPU, almacenamiento y red
- Sistema operativo e instalación de Docker
- Red, cortafuegos, terminación TLS y certificados
- Copias de seguridad, recuperación y continuidad de la actividad
- Actualizaciones del SO y los componentes del sistema
- Gestión de accesos, SSO y cuentas de administrador
- Supervisión de primer nivel y escalado
Por parte de Transcribia (AMBASSADIA SARL)
- Entrega de la aplicación: imágenes Docker y código fuente
- Documentación de despliegue y operación
- Soporte durante la instalación y la primera puesta en servicio
- Actualizaciones de versión y migraciones asistidas
- Parches de seguridad y mejoras del producto
- Configuración de motores de IA (WhisperX, pyannote, LLM)
- Asistencia técnica y diagnóstico de incidentes
El reparto preciso de roles y los SLA correspondientes se formalizan en el contrato de soporte y el DPA de instalación local. Esta guía no sustituye a dichos documentos contractuales.
Dimensionar su despliegue
Los requisitos exactos dependen de su volumen y sus restricciones. Responda al cuestionario de instalación local para obtener un dimensionamiento y presupuesto adaptados.
Responder al cuestionario de instalación local