Skip to main content

Requisitos previos

Overleaf es un proyecto de código abierto típico con arquitectura de microservicios, en el que todos los servicios se ejecutan en Docker. Para configurar un entorno de desarrollo de Overleaf necesitarás un servidor potente; se recomienda una configuración de al menos 8 núcleos y 16 GB de RAM, ya que tendrás que ejecutar más de 20 contenedores simultáneamente.
Como los servidores con 8 o más núcleos de CPU suelen ser caros, se recomienda encarecidamente usar tu ordenador local para el desarrollo.
Por otro lado, como desarrollador, entendemos que ya deberías estar familiarizado con la instalación de Docker. Te recomendamos encarecidamente usar una versión reciente y estable de Ubuntu LTS (por ejemplo, Ubuntu 24.04 en 2025–2026) y la última versión de Docker para el desarrollo, ya que así se reduce la posibilidad de encontrar errores inesperados. En resumen, necesitarás:
  • Un servidor o equipo de escritorio potente para desarrollar
  • Una versión reciente y estable de Ubuntu LTS (por ejemplo, Ubuntu 24.04)
  • Un entorno con Docker y Git

Tutorial de configuración

Aquí usaremos overleaf-cep como ejemplo para mostrar cómo configurar un entorno de desarrollo de Overleaf.
1

Descargar el código fuente

En primer lugar, clonemos el repositorio:
bash
2

Sincronizar package-lock.json

Como Overleaf se desarrolla en un repositorio interno, es muy probable que el archivo package-lock.json quede desincronizado debido a algunos problemas de desarrollo. Necesitamos ejecutar el siguiente comando para sincronizarlo (si tienes un entorno local de nodejs):
bash
Si no tienes nodejs instalado, no te preocupes: puedes usar directamente docker para ejecutar el mismo comando. Ejecútalo desde la raíz del repositorio de Overleaf:
bash
3

Construir la imagen de desarrollo

Overleaf proporciona un directorio dedicado, /develop, para almacenar los scripts de desarrollo. Simplemente construye los servicios:
bash
Si Docker se queda sin RAM al construir los servicios en paralelo, crea un archivo .env en este directorio que contenga COMPOSE_PARALLEL_LIMIT=1.
4

Iniciar todos los microservicios

A continuación, inicia los servicios:
bash
Una vez que los servicios estén en ejecución, abre http://localhost/launchpad para crear la primera cuenta de administrador.
Debes ejecutar bin/up antes de ejecutar el comando bin/dev. De lo contrario, podrías encontrarte con una serie de problemas de permisos.
De forma predeterminada, los privilegios de administrador no están disponibles. Debes añadir lo siguiente a develop/dev.env. Después de eso, tendrás acceso al panel de administración.

TeX Live

Para compilar un PDF es necesario construir una imagen de TeX Live que se encargue de la compilación dentro de Docker:
Para compilar en un host macOS, puede que necesites sobrescribir la ruta del socket de Docker creando un archivo .env en este directorio que contenga DOCKER_SOCKET_PATH=/var/run/docker.sock.raw También puedes usar ayaka-notes/texlive-full; puedes usar la etiqueta base, que es la versión mínima de texlive.

Desarrollo

Para evitar ejecutar bin/build && bin/up después de cada cambio en el código, puedes ejecutar Overleaf Community Edition en modo de desarrollo, en el que los servicios se actualizan automáticamente cuando cambia el código. Para ello, usa el script incluido bin/dev:
Esto iniciará todos los servicios con node --watch, que supervisará automáticamente el código y reiniciará los servicios cuando sea necesario. Para mejorar el rendimiento, puedes iniciar solo un subconjunto de los servicios en modo de desarrollo pasando una lista separada por espacios al script bin/dev:
Iniciar el servicio web en modo de desarrollo solo actualizará el servicio web cuando cambie el código del backend. Para que también se actualice automáticamente el código del frontend, asegúrate de iniciar también el servicio webpack en modo de desarrollo.
Si no se indica ningún servicio, todos los servicios se iniciarán en modo de desarrollo.

Depuración

Cuando se ejecutan en modo de desarrollo, la mayoría de los servicios exponen un puerto de depuración al que puedes conectar un depurador, como el inspector de las Dev Tools de Chrome o uno integrado en un IDE. La siguiente tabla muestra el puerto expuesto en la máquina host para cada servicio: Para conectarte a un servicio mediante la depuración remota de Chrome, ve a chrome://inspect/ y asegúrate de que Discover network targets esté marcado. Después haz clic en Configure… y añade una entrada localhost:[service port] para cada uno de los servicios a los que quieras conectar un depurador. Tras añadir una entrada, el servicio aparecerá como Remote Target, que podrás inspeccionar y depurar.

Registros

En el entorno de desarrollo, Overleaf proporciona el script bin/logs; sin embargo, necesitas instalar algunas dependencias:
O bien puedes ejecutar directamente:

Otras herramientas

Una vez que hayas terminado todo, puedes consultar la siguiente sección para añadir algunas herramientas de depuración a tu entorno de desarrollo de Overleaf.
Última modificación el 5 de octubre de 2026