Sitio estático generado con Eleventy (11ty) + Nginx en Docker: - Plantillas Nunjucks con layout base, tarjetas y fichas individuales - Datos de juegos en YAML, colección ordenada por fecha - CSS con tema oscuro gaming y diseño responsive (3/2/1 columnas) - Lightbox vanilla JS para capturas de pantalla - Build multi-stage Docker (node:20-alpine → nginx:alpine) - 2 juegos de ejemplo con imágenes SVG placeholder Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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
npm ci
Desarrollo local
npm run serve
Abre http://localhost:8080 en el navegador. Eleventy reconstruye automáticamente al guardar cambios.
Build estático
npm run build
El resultado queda en _site/. Para limpiar:
npm run clean
Añadir un juego nuevo
-
Crear el archivo YAML del juego:
src/games/<slug>.yamlCopiar de un juego existente y modificar los campos. El
sluges el identificador URL (solo letras minúsculas, números y guiones). -
Crear la carpeta de imágenes:
static/games/<slug>/Copiar:
logo.png(o.svg),screenshot-1.png,screenshot-2.png, ... -
Crear la carpeta de descargas:
downloads/<slug>/Copiar los binarios:
<slug>-v<version>-<plataforma>.<ext> -
Verificar que las rutas en el YAML coinciden exactamente con los archivos copiados.
-
Regenerar el sitio:
npm run build -
Verificar localmente:
npm run serveAbrir http://localhost:8080 y comprobar el juego nuevo.
-
Reconstruir el contenedor Docker:
docker compose up --build -d
Despliegue con Docker
docker compose up --build -d
Acceder en http://localhost.
Para detener:
docker compose down
Despliegue sin internet (ferias)
En la máquina con internet:
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):
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 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/<slug>/ # Imágenes de cada juego
├── downloads/<slug>/ # Binarios descargables
├── _site/ # Build generado (no versionar)
├── .eleventy.js # Configuración de Eleventy
├── package.json
├── Dockerfile
├── docker-compose.yml
└── nginx.conf