Fase 2: 04_sanitize.py - scrubbing de secretos de skills/agentes/plans (10 secretos unicos, gate en verde)

This commit is contained in:
2026-07-29 00:35:59 +00:00
parent 21bc219f31
commit 837f91060f
79 changed files with 10153 additions and 0 deletions
@@ -0,0 +1,61 @@
# Plan: Habilitar SSL en PostgreSQL para conexiones externas
## Context
Se quiere que PostgreSQL acepte tanto conexiones no encriptadas (para la app interna) como conexiones encriptadas SSL (para administración remota). PostgreSQL lo soporta nativamente: se habilita SSL en el servidor y cada cliente decide si lo usa o no.
## Cambios
### 1. Generar certificado SSL auto-firmado
Crear un script de setup que genere el certificado al iniciar el contenedor por primera vez:
```bash
# luminarrh/generate-ssl.sh
openssl req -new -x509 -days 3650 \
-nodes \
-text \
-out server.crt \
-keyout server.key \
-subj "/CN=postgres"
chmod 600 server.key
cat server.crt server.key > server-ssl.pem
rm server.crt server.key
```
### 2. Actualizar `postgresql.conf`
Agregar al final:
```conf
# SSL
ssl = on
ssl_cert_file = '/var/lib/postgresql/18/docker/server-ssl.pem'
ssl_key_file = '/var/lib/postgresql/18/docker/server-ssl.pem'
```
### 3. Actualizar `docker-compose.yaml`
```yaml
volumes:
- /volume1/docker/postgres/postgres-sarh/data:/var/lib/postgresql
- /volume1/docker/projects/synology-apps-containers/luminarrh/databases/postgresql.conf:/etc/postgresql/postgresql.conf
- ./luminarrh_demo.sql:/docker-entrypoint/initdb.d/luminarrh_demo.sql
- ./generate-ssl.sh:/docker-entrypoint/initdb.d/generate-ssl.sh # nueva línea
```
### 4. Crear `luminarrh/generate-ssl.sh`
Script ejecutable que se corre en el primer inicio del contenedor para generar el certificado SSL.
## Cómo funciona
- **App interna**: Se conecta sin SSL (sin cambiar nada en la app, funciona como antes)
- **Admin externo**: Se conecta con SSL usando `sslmode=require` o `sslmode=verify-full`
## Verificación
1. `docker compose -f luminarrh/docker-compose.yaml up -d`
2. Verificar SSL activo: `docker exec -i postgres-sarh psql -U sarh2 -d sarh_db -c "SHOW ssl;"`
3. Conectar con SSL: `psql "host=IP port=5434 dbname=sarh_db user=sarh2 sslmode=require"`
4. Conectar sin SSL (desde app interna): `psql "host=IP port=5434 dbname=sarh_db user=sarh2"`