# Explorador de Mediciones V0.3.2 · servidor Linux

Este paquete contiene una aplicación estática. En producción no requiere Node.js, npm, Python, PHP ni base de datos. Puede servirse con Nginx, Apache o Caddy.

La compilación está preparada para ocupar la raíz de un dominio o subdominio, por ejemplo `https://explorador.ejemplo.cl/`. Si debe instalarse en una subruta como `/explorador/`, hay que generar una compilación con esa ruta base.

## 1. Verificar el paquete

Desde la carpeta extraída:

```bash
./verificar_paquete.sh
```

El resultado esperado es `106 estaciones y 1403 bloques anuales de observaciones`.

## 2. Copiar los archivos públicos

```bash
sudo mkdir -p /var/www/explorador-mediciones
sudo cp -a site/. /var/www/explorador-mediciones/
sudo chown -R root:www-data /var/www/explorador-mediciones
sudo find /var/www/explorador-mediciones -type d -exec chmod 755 {} \;
sudo find /var/www/explorador-mediciones -type f -exec chmod 644 {} \;
```

Antes de reemplazar una instalación existente, conserva un respaldo de `/var/www/explorador-mediciones`.

## 3A. Configurar Nginx

1. Edita `config/nginx-explorador.conf.example` y reemplaza `explorador.ejemplo.cl` por el dominio real.
2. Copia el archivo a `/etc/nginx/sites-available/explorador-mediciones`.
3. Activa el sitio y valida la configuración:

```bash
sudo ln -s /etc/nginx/sites-available/explorador-mediciones /etc/nginx/sites-enabled/explorador-mediciones
sudo nginx -t
sudo systemctl reload nginx
```

## 3B. Configurar Apache

1. Edita `config/apache-explorador.conf.example` y reemplaza `explorador.ejemplo.cl` por el dominio real.
2. Copia el archivo a `/etc/apache2/sites-available/explorador-mediciones.conf`.
3. Activa los módulos y el sitio:

```bash
sudo a2enmod headers mime
sudo a2ensite explorador-mediciones.conf
sudo apache2ctl configtest
sudo systemctl reload apache2
```

## 3C. Configurar Caddy

El archivo `config/Caddyfile.example` puede incorporarse al Caddyfile principal después de reemplazar el dominio de ejemplo. Caddy administra HTTPS automáticamente cuando el dominio apunta correctamente al servidor.

## 4. DNS y HTTPS

Apunta el registro DNS del dominio o subdominio a la IP del servidor. La configuración TLS depende del servidor y de la política de la organización; los ejemplos Nginx y Apache incluyen sólo HTTP para no imponer una solución de certificados.

## 5. Comprobar la publicación

```bash
curl -I https://explorador.ejemplo.cl/
curl -I https://explorador.ejemplo.cl/data/catalog.json
curl -I https://explorador.ejemplo.cl/data/raw/170001/2013.bin
```

Los tres recursos deben responder con estado `200`. El catálogo debe declararse como JSON y el bloque `.bin` como `application/octet-stream`.

Los datos, gráficos y descargas se sirven desde el propio servidor. Los mapas base se solicitan a Esri y OpenStreetMap, por lo que los clientes necesitan acceso a Internet para ver el fondo cartográfico.
