feat: deploy en host LXC (nginx + systemd) y ajustes para mismo-origen
- deploy/nginx-host.conf: nginx del host sirve dist/ de las 4 apps y proxifica /api/ a 127.0.0.1:3000 (client_max_body_size 10m) - deploy/frasa-api.service: API Gateway como servicio systemd - landing: URLs relativas (/quote/, /client/, /pay/) - Dockerfiles de apps: ARG VITE_API_URL=/api para builds same-origin - docker-compose: NGINX_CONF parametrizado (nginx.http.conf sin SSL) - README: instrucciones para host LXC y nota de DDNS pendiente
This commit is contained in:
24
README.md
24
README.md
@@ -18,7 +18,20 @@ Cada app es un proyecto Vite independiente: `npm install && npm run dev` (o `npm
|
||||
|
||||
Variables de entorno: copiar `.env.example` a `.env` y completar (el `.env` nunca se commitea).
|
||||
|
||||
## Deploy (servidor Ubuntu + Docker)
|
||||
## Servidor actual (LXC sin Docker)
|
||||
|
||||
Esta máquina es un contenedor LXC sin nesting: Docker no puede correr contenedores.
|
||||
El stack corre directo en el host:
|
||||
|
||||
- **NGINX** (apt) sirve los `dist/` de las apps y proxifica `/api/` → `127.0.0.1:3000`.
|
||||
Config: `deploy/nginx-host.conf` → `/etc/nginx/sites-available/frasa`.
|
||||
- **API** como servicio systemd: `deploy/frasa-api.service` → `frasa-api.service`
|
||||
(`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).
|
||||
|
||||
El `docker-compose.yml` queda listo para cuando el stack se mude a una VM con Docker.
|
||||
|
||||
## Deploy con Docker (VM futura)
|
||||
|
||||
```bash
|
||||
git clone https://git.consultoria-as.com/consultoria-as/FRASA-CAS.git /opt/frasa-ecosystem
|
||||
@@ -34,13 +47,12 @@ docker compose logs -f api
|
||||
curl https://frasadesarrollos.ddns.net/api/health
|
||||
```
|
||||
|
||||
Nota primer arranque: mientras no existan los certs, comenta el bloque `server 443` de
|
||||
`nginx/nginx.conf` (o usa un cert autofirmado temporal); después de expedir, restaura y
|
||||
Modo local sin SSL (LAN): `.env` con `NGINX_CONF=nginx.http.conf` hace que NGINX
|
||||
sirva todo por HTTP en el puerto 80. Cuando el DDNS apunte a este servidor:
|
||||
`certbot certonly --webroot -w /var/www/certbot -d frasadesarrollos.ddns.net`,
|
||||
quita `NGINX_CONF` del `.env` (vuelve `nginx.conf` con 443) y
|
||||
`docker compose restart nginx`. Renovación: `certbot renew --deploy-hook "docker compose -f /opt/frasa-ecosystem/docker-compose.yml restart nginx"`.
|
||||
|
||||
Antes del deploy, cambiar en `apps/landing/src/data/modulos.ts` las URLs absolutas de
|
||||
preview por rutas relativas (`/quote/`, `/client/`, `/pay/`) y rehacer el build.
|
||||
|
||||
Backup: `scripts/backup.sh` (cron sugerido `17 2 * * *`).
|
||||
|
||||
## Monday.com
|
||||
|
||||
Reference in New Issue
Block a user