# JAILGAMES Sitio web estático para publicar y descargar juegos indie del estudio JAILGAMES. Generado con **Eleventy (11ty)** y servido con **Nginx en Docker**. --- ## Requisitos previos - **Node.js 18+** (para el build local) - **Docker** + **Docker Compose** (para despliegue) --- ## Instalación ```bash npm ci ``` --- ## Desarrollo local ```bash npm run serve ``` Abre [http://localhost:8080](http://localhost:8080) en el navegador. Eleventy reconstruye automáticamente al guardar cambios. --- ## Build estático ```bash npm run build ``` El resultado queda en `_site/`. Para limpiar: ```bash npm run clean ``` --- ## Añadir un juego nuevo 1. **Crear el archivo YAML** del juego: ``` src/games/.yaml ``` Copiar de un juego existente y modificar los campos. El `slug` es el identificador URL (solo letras minúsculas, números y guiones). 2. **Crear la carpeta de imágenes:** ``` static/games// ``` Copiar: `logo.png` (o `.svg`), `screenshot-1.png`, `screenshot-2.png`, ... 3. **Crear la carpeta de descargas:** ``` downloads// ``` Copiar los binarios: `-v-.` 4. **Verificar** que las rutas en el YAML coinciden exactamente con los archivos copiados. 5. **Regenerar el sitio:** ```bash npm run build ``` 6. **Verificar localmente:** ```bash npm run serve ``` Abrir [http://localhost:8080](http://localhost:8080) y comprobar el juego nuevo. 7. **Reconstruir el contenedor Docker:** ```bash docker compose up --build -d ``` --- ## Despliegue con Docker ```bash docker compose up --build -d ``` Acceder en [http://localhost](http://localhost). Para detener: ```bash docker compose down ``` --- ## Despliegue sin internet (ferias) **En la máquina con internet:** ```bash docker compose build docker save jailgames-web:latest | gzip > jailgames-image.tar.gz ``` **Copiar** `jailgames-image.tar.gz` al portátil de la feria (USB). **En el portátil de la feria (sin internet):** ```bash gunzip -c jailgames-image.tar.gz | docker load docker run -d -p 80:80 \ -v /ruta/local/downloads:/usr/share/nginx/html/downloads:ro \ --name jailgames jailgames-web:latest ``` Abrir [http://localhost](http://localhost) en cualquier navegador. --- ## Estructura de carpetas ``` jailgames/ ├── src/ │ ├── _data/site.json # Datos globales del sitio │ ├── _includes/ │ │ ├── base.njk # Layout base HTML │ │ ├── game-card.njk # Tarjeta de juego (home) │ │ └── game-page.njk # Ficha individual de juego │ ├── games/ # Un archivo YAML por juego │ ├── css/style.css # Estilos globales │ ├── js/main.js # JS mínimo (lightbox) │ ├── index.njk # Página principal │ ├── game.njk # Generador de fichas individuales │ └── 404.njk # Página de error 404 ├── static/ │ ├── logo/ # Logo del sitio │ └── games// # Imágenes de cada juego ├── downloads// # Binarios descargables ├── _site/ # Build generado (no versionar) ├── .eleventy.js # Configuración de Eleventy ├── package.json ├── Dockerfile ├── docker-compose.yml └── nginx.conf ```