Contenido de la documentación

Requisitos y configuración

Autoreel no necesita ninguna cuenta de pago para producir. Necesita cinco piezas instaladas y un puñado de variables de entorno, y hay una que si falta no da error: simplemente hace que tu trabajo no lo vea nadie.

Qué hay que instalar

PiezaPara quéNota
Node 24Todo-
Python con edge-ttsLa vozpip install edge-tts
Edge o ChromiumEl render con WebCodecsEn Windows, el Edge que ya viene
ffmpegMezcla de audio y miniaturasYa incluido como dependencia; no se instala aparte
PostgreSQLLa cola y los proyectosUno gestionado, o uno local con contenedores

Variables obligatorias

Van en .env.local. Las leen la web, el worker, el servidor MCP y los scripts.

VariableQué pasa si falta
POSTGRES_URLTodo apunta al PostgreSQL por defecto en localhost y nada conecta
NEXT_PUBLIC_SUPABASE_URLLa web queda abierta y sin sesión. Aceptable en una instalación personal; en un despliegue público, no
NEXT_PUBLIC_SUPABASE_ANON_KEYLo mismo que la anterior: van en pareja
SUPABASE_SERVICE_ROLE_KEYNo se pueden crear ni borrar cuentas, y el worker no puede subir el archivo terminado
AUTOREEL_OWNER_IDLo que cree el servidor MCP se guarda sin dueño y la web no lo enseña

La que arruina el día en silencio

AUTOREEL_OWNER_ID es el identificador de tu usuario. El MCP no tiene sesión de la que deducirlo, así que sin esa línea produce videos que técnicamente existen y que nadie puede ver. No hay error, no hay aviso en la web: solo una biblioteca vacía.

El diagnóstico lista las cuentas de la base con su identificador, listas para copiar.

Variables opcionales

Todas tienen un valor por defecto que sirve.

VariablePor defectoPara qué
AUTOREEL_BASE_URLhttp://localhost:3000Dónde vive la web que rinde el video
AUTOREEL_BROWSER_CHANNELmsedgePoner chromium en Linux y en contenedores
AUTOREEL_TTS_VOICEes-DO-EmilioNeuralLa voz de la narración
AUTOREEL_TTS_RATE+27%Velocidad. El valor por defecto depende de la voz
AUTOREEL_TTS_PITCH+25HzTono. Más agudo retiene mejor en formato corto
AUTOREEL_NARRATION_VOLUME1.25La síntesis no llega a 0 dBFS; el limitador atrapa los picos
AUTOREEL_MUSIC_PATHinstrumental del repositorioLa música de fondo por defecto
WORKER_POLL_MS5000Cada cuánto el worker mira la cola
PYTHON_BINpythonSi el intérprete se llama de otra forma

Puesta en marcha

En una máquina, sin contenedores

Es el modo de trabajo normal en Windows, porque el render usa el Edge que ya está instalado.

Terminal
npm install
npm run db:push     # aplica las migraciones (idempotente)
npm run doctor      # ¿está todo? Contesta pieza por pieza
npm run dev         # la web, en el puerto 3000
npm run worker      # en otra terminal: el que produce

El orden importa en una cosa

El worker necesita que la web esté respondiendo, porque el render abre una página en ella. Si la URL es local y no responde, la levanta él.

Todo en contenedores

Terminal
docker compose up -d   # base de datos + web + worker

Las imágenes se construyen, no hay recarga en caliente: después de cambiar código hay que reconstruir web y worker.

En producción

La web se despliega sola con cada cambio en la rama de producción. El worker no se despliega: corre donde se lo ponga, y con que alcance la base de datos y el almacenamiento ya está dentro del sistema.

Comprobar que quedó bien

Terminal
npm run doctor             # runtime, medios, base, cuentas y web
npm test                   # plantillas, validador y pipeline
npm run verify-templates   # genera el pack de referencia y lo valida

El diagnóstico revisa las cinco piezas y contesta una por una. Cuando dice que todo está en orden, lo está de verdad: conecta a la base, mira las tablas, cuenta las filas sin dueño y pide la web.