Solución Intermedia: Compilación Remota de PreTeXt vía Servidor Python y curl
Esta guía documenta una solución práctica para compilar libros PreTeXt en un entorno mixto usando un servidor Python HTTP y curl como puente entre la laptop y la desktop.
🧩 1. Contexto
El entorno es el siguiente:
Laptop (HIROSHIMA)
│
├── Proyecto: C:\Proyectos\Libro_Generico_PreText
│
└── VS Code (cliente SSH)
│
└── Conectado a Desktop (192.168.0.241 con Docker Desktop)
La desktop tiene Docker, pero no ve las unidades SMB o el PATH del usuario al conectarse por SSH.
Para evitar dependencias complejas, se emplea un servidor Python local y transferencias HTTP con curl.
⚙️ 2. Iniciar un servidor Python en la laptop
Desde la laptop HIROSHIMA, abre una terminal y ejecuta:
cd "C:\Proyectos\Libro_Generico_PreText"
python -m http.server 8000
Esto inicia un servidor HTTP en:
http://192.168.0.XXX:8000/
(reemplaza XXX por la IP real de HIROSHIMA en tu red).
Cualquier dispositivo en la red local puede acceder a los archivos del proyecto.
🧠 3. Descargar archivos desde la Desktop con curl
Desde la desktop (192.168.0.241), abre PowerShell o VS Code remoto y ejecuta:
curl http://192.168.0.XXX:8000/project.ptx -o project.ptx
También puedes descargar carpetas comprimidas o scripts adicionales:
curl http://192.168.0.XXX:8000/source.zip -o source.zip
Expand-Archive source.zip -DestinationPath .
De esta forma, la desktop obtiene los archivos más recientes del proyecto sin depender de SMB o de unidades mapeadas.
🧩 4. Compilar en la Desktop con Docker
Una vez descargados los archivos, ejecuta la compilación con Docker (o dentro de WSL):
wsl -d docker-desktop docker run --rm `
-v "//C/Users/rommel/Libro_Generico_PreText:/workspace" `
-w /workspace `
pretext-curso `
pretext build web
Los resultados se generarán en la carpeta /output/web del proyecto.
⚙️ 5. Publicar los resultados con servidor Python en la Desktop
Para visualizar el libro compilado, puedes servirlo desde la desktop:
cd "C:\Users\rommel\Libro_Generico_PreText\output\web"
python -m http.server 8080
Desde la laptop, abre en tu navegador:
http://192.168.0.241:8080/
✅ Verás el libro PreTeXt compilado y servido directamente desde la desktop.
🔁 6. Flujo mixto completo
[Laptop HIROSHIMA] [Desktop 192.168.0.241]
──────────────────────────────────────────────────────────────────────────────
python -m http.server 8000 ←── curl http://HIROSHIMA:8000/... (descarga fuentes)
│
├── docker run ... pretext build web
│
python -m http.server 8080 ───→ (sirve /output/web para laptop o navegador)
Este flujo es simple, reproducible y multiplataforma, sin configuraciones extra de SSH o Docker en PATH.
🧰 7. Scripts de automatización opcionales
serve-pretext.ps1 (para la laptop)
param([int]$port = 8000)
Write-Host "Levantando servidor HTTP en puerto $port..."
cd "C:\Proyectos\Libro_Generico_PreText"
python -m http.server $port
fetch-pretext.ps1 (para la desktop)
param(
[string]$server = "192.168.0.XXX",
[string]$file = "project.ptx"
)
Write-Host "Descargando $file desde $server..."
curl "http://$server:8000/$file" -o $file
Write-Host "Descarga completa. Listo para compilar."
✅ 8. Ventajas de esta solución
- No depende de que SSH o Docker Desktop compartan el mismo entorno PATH.
- Evita los conflictos con unidades de red mapeadas (Z:, X:, etc.).
- Usa herramientas universales (
python,curl) disponibles en cualquier entorno. - Permite visualización inmediata del build web desde cualquier dispositivo de la red.
Autor: Rommel Contreras
Última actualización: 11 de octubre de 2025
