Hub documentation
Modo de desarrollo de Spaces: desarrollo sin interrupciones en Spaces
Modo de desarrollo de Spaces: desarrollo sin interrupciones en Spaces
El modo de desarrollo de Spaces forma parte de los planes PRO o Team & Enterprise.
Modo de desarrollo de Spaces
Spaces Dev Mode es una función que facilita la depuración de tu aplicación y agiliza la iteración en Spaces.
Cada vez que envías cambios a tu repositorio de Space, la imagen de Docker subyacente se reconstruye y, a continuación, se aprovisiona una nueva máquina virtual para alojar el nuevo contenedor.
El modo de desarrollo te permite actualizar tu Space mucho más rápido al reemplazar la imagen de Docker.
La imagen de Docker de Dev Mode inicia tu aplicación como un subproceso, lo que te permite reiniciarla sin detener el contenedor del Space. También inicia un servidor SSH (para editores y terminales locales) y un servidor de VS Code (para VS Code Web dentro del producto) en segundo plano, para que puedas conectarte al Space.
La capacidad de conectarse al Space en ejecución habilita varios casos de uso:
- Puedes realizar cambios en el código de la aplicación sin que el Space se reconstruya cada vez
- Puedes depurar una aplicación en ejecución y monitorear los recursos en tiempo real
En general, agiliza el desarrollo y la experimentación con Spaces al omitir la fase de reconstrucción de la imagen de Docker.
Interfaz
Una vez que el modo de desarrollo esté habilitado en tu Space, deberías ver un modal como el siguiente.

La aplicación no se reinicia automáticamente cuando se modifica el código. Para que los cambios se reflejen en el Space, es necesario usar el botón Refresh, que reiniciará la aplicación.
Conexión
Dev Mode expone el Space en ejecución como un host SSH estándar. VS Code y cualquier otro editor se conectan a través de ese mismo punto final SSH.
SSH
Una vez que el modo Dev esté en ejecución, conéctate con:
ssh <space-subdomain>@ssh.hf.space
El subdominio se muestra en el modal de controles de modo de desarrollo. También puede obtenerlo de forma programática:
from huggingface_hub import HfApi
print(HfApi().space_info("namespace/repo").subdomain)La CLI de Hugging Face puede resolver el subdominio y abrir la sesión por ti:
# SSH into the Space's Dev Mode container
hf spaces ssh username/my-space
# Print the SSH command instead of running it
hf spaces ssh username/my-space --dry-run
# Use a specific identity file
hf spaces ssh username/my-space -i ~/.ssh/id_ed25519Pasa --auto para habilitar el modo Dev sin solicitar confirmación si no está en ejecución. Consulta la referencia de la CLI hf spaces ssh para la lista completa de opciones.
Deberás añadir la clave pública SSH de tu máquina a tu cuenta de usuario para poder conectar al Space mediante SSH. Consulta la documentación de Git over SSH para obtener instrucciones más detalladas.
VS Code
También puedes usar una instalación local de VS Code para conectarte al contenedor del Space. Para ello, instala la extensión Remote - SSH y conéctate al mismo host <space-subdomain>@ssh.hf.space.
Persistir cambios
# Add changes and commit them
git add .
git commit -m "Persist changes from Dev Mode"
# Push the commit to persist them in the repo
git pushEl modal mostrará una advertencia si tienes cambios sin confirmar o sin enviar en el Space:

Activar el modo de desarrollo
Puedes activar el modo de desarrollo en tu Space desde la interfaz web o a través de la API.
A través de la API
Puede alternar el modo de desarrollo de forma programática:
POST https://huggingface.co/api/spaces/{namespace}/{repo}/dev-mode
Content-Type: application/json
Authorization: Bearer {token}
{
"enabled": true
}A través de la interfaz web



También puedes crear un Space con el modo de desarrollo habilitado:

Limitaciones
Dev Mode no está disponible actualmente para Spaces estáticos. Los Spaces de Docker también tienen algunos requisitos adicionales.
Espacios de Docker
El modo de desarrollo se admite para los Espacios de Docker. Sin embargo, tu Espacio debe cumplir con las siguientes reglas para que el modo de desarrollo funcione correctamente.
- Deben instalarse los siguientes paquetes:
bash(necesario para establecer conexiones SSH)curl,wgetyprocps(requeridos por el proceso del servidor de VS Code)gitygit-lfspara poder confirmar y enviar cambios desde tu entorno de Dev Mode
El código de su aplicación debe estar ubicado en la carpeta
/apppara que el daemon de Dev Mode pueda detectar los cambios.La carpeta
/appdebe pertenecer al usuario con uid1000para permitirte realizar cambios en el código.El Dockerfile debe contener una instrucción
CMDpara el inicio. Consulta la documentación de Docker sobre la instrucciónCMDpara obtener más detalles.
Dev Mode funciona bien cuando la imagen base es de tipo debian (por ejemplo, ubuntu).
Las distribuciones de Linux más exóticas (por ejemplo, alpine) no se prueban y no se garantiza que el modo de desarrollo funcione en ellas.
Ejemplo de Dockerfiles compatibles
Este es un ejemplo de un Dockerfile compatible con el modo de desarrollo de Spaces.
Instala los paquetes necesarios con apt-get, junto con algunos más para la comodidad del desarrollador (específicamente: top, vim y nano).
A continuación, inicia una aplicación de NodeJS desde /app.
FROM node:19-slim
RUN apt-get update && \
apt-get install -y \
bash \
git git-lfs \
wget curl procps \
htop vim nano && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --link ./ /app
RUN npm i
RUN chown 1000 /app
USER 1000
CMD ["node", "index.js"]Hay varios ejemplos de Docker Spaces compatibles con Dev Mode en esta organización. ¡No dudes en duplicarlos en tu espacio de nombres!
Ejemplo de aplicación en Python (servidor HTTP de FastAPI): https://huggingface.co/spaces/dev-mode-explorers/dev-mode-python
Ejemplo de aplicación en JavaScript (servidor HTTP de Express.js): https://huggingface.co/spaces/dev-mode-explorers/dev-mode-javascript
Comentarios
Puedes compartir tu opinión sobre Spaces Dev Mode directamente en HF Hub: https://huggingface.co/spaces/dev-mode-explorers/README/discussions
Update on GitHub