From 30c682e4a00cb72f4252dd4e6e73de50ee365a02 Mon Sep 17 00:00:00 2001 From: Consult AS Technology Date: Fri, 28 Aug 2026 16:03:19 +0000 Subject: [PATCH] =?UTF-8?q?docs:=20acceso=20p=C3=BAblico=20v=C3=ADa=20Clou?= =?UTF-8?q?dflare=20Tunnel=20(frasa.consultoria-as.com)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index 6c7097d..447206c 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,22 @@ El stack corre directo en el host: (`systemctl status frasa-api`, logs en `/var/log/frasa-api.log`). - Rebuild de apps tras cambios: `VITE_API_URL=/api npm run build` en cada app + `systemctl reload nginx` (no requiere restart). +### Acceso público: Cloudflare Tunnel + +El stack se expone en **https://frasa.consultoria-as.com** mediante Cloudflare +Tunnel (Zero Trust), sin abrir puertos ni depender del DDNS: + +- Túnel administrado desde el dashboard (Zero Trust → Networks → Tunnels); + el ingress vive en Cloudflare: public hostname `frasa.consultoria-as.com` → + `http://localhost:80`. No hay `config.yml` local. +- Servicio systemd `cloudflared` (instalado con `cloudflared service install `, + token en `/etc/cloudflared/token`). SSL lo termina Cloudflare automáticamente; + Certbot ya no aplica en este servidor. +- NGINX de host sigue en puerto 80 con `server_name _` (catch-all), así que + cualquier hostname del túnel funciona sin cambios. +- Las ligas de firma remota se construyen con `window.location.origin`, así que + ya salen con el dominio público al usarlas desde ahí. + El `docker-compose.yml` queda listo para cuando el stack se mude a una VM con Docker. ## Deploy con Docker (VM futura)