Implementación completa del sitio JAILGAMES (bloques A–J)
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>
This commit is contained in:
@@ -0,0 +1,151 @@
|
||||
# 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/<slug>.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/<slug>/
|
||||
```
|
||||
Copiar: `logo.png` (o `.svg`), `screenshot-1.png`, `screenshot-2.png`, ...
|
||||
|
||||
3. **Crear la carpeta de descargas:**
|
||||
```
|
||||
downloads/<slug>/
|
||||
```
|
||||
Copiar los binarios: `<slug>-v<version>-<plataforma>.<ext>`
|
||||
|
||||
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/<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
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user