Files
engram-wiki/03-seguridad-cloud.md
2026-05-03 17:02:28 +02:00

3.4 KiB

Engram Cloud — Configuración de Seguridad

Guía completa para securizar Engram Cloud en el VPS.


Configuración actual

  • Servidor: https://engram.v-encore-lab.com
  • Dashboard: https://engram.v-encore-lab.com/dashboard/
  • Token: e5ace1caed605543642c1032ef9e24f803f092b4ef9863cc068a8eceaa01445b
  • Modo: enterprise con autenticación JWT activa
  • Proyectos permitidos: smoke-project, planificacion_proyectos, gestion-talleres-2000, engram-wiki

Docker Compose del VPS

Ubicación: /opt/engram/docker-compose.cloud.yml

services:
  postgres:
    restart: always
    image: postgres:16-alpine
    container_name: engram-cloud-postgres
    environment:
      POSTGRES_USER: engram
      POSTGRES_PASSWORD: engram_dev
      POSTGRES_DB: engram_cloud
    ports:
      - "127.0.0.1:5433:5432"
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U engram -d engram_cloud"]
      interval: 5s
      timeout: 3s
      retries: 10
    volumes:
      - engram-cloud-pg:/var/lib/postgresql/data
  cloud:
    restart: always
    build:
      context: .
      dockerfile: docker/cloud/Dockerfile
    container_name: engram-cloud
    depends_on:
      postgres:
        condition: service_healthy
    environment:
      ENGRAM_DATABASE_URL: postgres://engram:engram_dev@postgres:5432/engram_cloud?sslmode=disable
      ENGRAM_JWT_SECRET: "e5ace1caed605543642c1032ef9e24f803f092b4ef9863cc068a8eceaa01445b"
      ENGRAM_CLOUD_TOKEN: "e5ace1caed605543642c1032ef9e24f803f092b4ef9863cc068a8eceaa01445b"
      ENGRAM_CLOUD_ALLOWED_PROJECTS: smoke-project,planificacion_proyectos,gestion-talleres-2000
      ENGRAM_CLOUD_HOST: 0.0.0.0
      ENGRAM_PORT: "18080"
    ports:
      - "127.0.0.1:18080:18080"
    command: ["cloud", "serve"]
volumes:
  engram-cloud-pg:

Si el VPS se cae o necesitas reinstalar

1. Clonar el repo y arrancar

cd /opt
sudo git clone https://github.com/Gentleman-Programming/engram
cd /opt/engram

Sobreescribe el docker-compose con la configuración segura:

cat > /opt/engram/docker-compose.cloud.yml << 'EOF'
# pega aquí el contenido del bloque de arriba
EOF

Arranca:

docker compose -f docker-compose.cloud.yml up -d

2. Conectar a la red de Nginx Proxy Manager

docker network connect nginx-proxy-manager_default engram-cloud

Si necesitas regenerar el token

En el VPS genera uno nuevo:

openssl rand -hex 32

Actualiza ENGRAM_JWT_SECRET y ENGRAM_CLOUD_TOKEN en el docker-compose y reinicia:

docker compose -f docker-compose.cloud.yml up -d --force-recreate cloud

Acceso al dashboard

  • URL: https://engram.v-encore-lab.com/dashboard/
  • Campo Cloud Token: pega el ENGRAM_CLOUD_TOKEN
  • Sin el token nadie puede acceder a los datos

Verificar que el servidor está seguro

docker logs engram-cloud --tail 10

Correcto — debe mostrar solo:

Starting Engram cloud server on port 18080
[engram-cloud] listening on 0.0.0.0:18080

Inseguro — si aparece esta línea hay que eliminarla del docker-compose:

warning: ENGRAM_CLOUD_INSECURE_NO_AUTH=1 disables cloud API authentication

Nginx Proxy Manager — Configuración del proxy host

Campo Valor
Domain engram.v-encore-lab.com
Scheme http
Forward Hostname engram-cloud
Forward Port 18080
SSL Let's Encrypt
Force SSL