Añadir compose para producción con Traefik/Portainer
- docker-compose.portainer.yml: Nginx alpine con labels Traefik, volúmenes en /var/volumes/web_jailgames/, red web externa - README: flujo de despliegue online (rsync + Portainer), alternativa Apache VirtualHost Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -85,7 +85,75 @@ npm run clean
|
||||
|
||||
---
|
||||
|
||||
## Despliegue con Docker
|
||||
## Despliegue en producción (servidor con Traefik + Portainer)
|
||||
|
||||
Usa `docker-compose.portainer.yml`. El flujo de trabajo es:
|
||||
|
||||
**1. Preparar el servidor (primera vez):**
|
||||
```bash
|
||||
# En el servidor, crear la estructura de volúmenes
|
||||
mkdir -p /var/volumes/web_jailgames/html
|
||||
mkdir -p /var/volumes/web_jailgames/nginx
|
||||
|
||||
# Copiar la configuración de Nginx
|
||||
cp nginx.conf /var/volumes/web_jailgames/nginx/default.conf
|
||||
```
|
||||
|
||||
**2. Build y subida del sitio (cada actualización):**
|
||||
```bash
|
||||
# En tu máquina de desarrollo
|
||||
npm run build
|
||||
|
||||
# Subir _site/ al servidor (ajusta usuario e IP)
|
||||
rsync -avz --delete _site/ usuario@servidor:/var/volumes/web_jailgames/html/
|
||||
|
||||
# Subir descargas (binarios de juegos)
|
||||
rsync -avz downloads/ usuario@servidor:/var/volumes/web_jailgames/html/downloads/
|
||||
```
|
||||
|
||||
**3. Desplegar en Portainer:**
|
||||
- En Portainer → Stacks → Add stack
|
||||
- Pegar el contenido de `docker-compose.portainer.yml`
|
||||
- Ajustar el dominio en las labels de Traefik si es necesario
|
||||
- Deploy
|
||||
|
||||
El sitio quedará disponible en `https://jailgames.sustancia.synology.me`.
|
||||
|
||||
---
|
||||
|
||||
## Alternativa: dentro de Apache existente
|
||||
|
||||
Si prefieres añadirlo como un VirtualHost más en tu Apache actual, solo necesitas copiar `_site/` al directorio del servidor y configurar el VirtualHost. No hace falta contenedor extra.
|
||||
|
||||
```bash
|
||||
# Build local
|
||||
npm run build
|
||||
|
||||
# Copiar al volumen de Apache (ajusta la ruta)
|
||||
rsync -avz --delete _site/ usuario@servidor:/var/volumes/apache/html/jailgames/
|
||||
rsync -avz downloads/ usuario@servidor:/var/volumes/apache/html/jailgames/downloads/
|
||||
```
|
||||
|
||||
Luego añade en Apache:
|
||||
```apache
|
||||
<VirtualHost *:80>
|
||||
ServerName jailgames.sustancia.synology.me
|
||||
DocumentRoot /usr/local/apache2/htdocs/jailgames
|
||||
|
||||
<Directory /usr/local/apache2/htdocs/jailgames>
|
||||
Options -Indexes
|
||||
AllowOverride None
|
||||
Require all granted
|
||||
|
||||
# Rutas limpias (equivalente al try_files de Nginx)
|
||||
FallbackResource /jailgames/404.html
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Despliegue local (desarrollo)
|
||||
|
||||
```bash
|
||||
docker compose up --build -d
|
||||
@@ -93,33 +161,6 @@ 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
|
||||
|
||||
Reference in New Issue
Block a user