Infisical — gestor de secretos self-hosted

Instancia self-hosted de Infisical en vm-main, corriendo junto a los otros servicios administrativos del host (Portainer, Zabbix, GLPI, Vaultwarden) pero publicada en su propio subdominio de la cuenta estebanalcocer.cloud en vez de conkafecito.com, porque es un servicio personal de Esteban, no de Conkafecito. Tres contenedores en ~/stacks/infisical/docker-compose.yml (Infisical + Postgres 16 + Redis 7), publicado en secrets.estebanalcocer.cloud.

Reactivación 2026-08-05: bug de variable de entorno

El stack llevaba dos meses creado pero nunca había arrancado con éxito — el único intento de arranque previo (2026-08-02) falló con Invalid URL / postgresql://undefined:undefined@undefined:undefined/undefined al conectar a Postgres. Causa: el docker-compose.yml usaba DATABASE_URL como nombre de variable, pero Infisical (desde al menos v0.160.x) espera DB_CONNECTION_URI — DATABASE_URL simplemente no lo lee, y el connection string que arma internamente sale con todos los componentes undefined. Como el volumen de Postgres nunca llegó a tener datos reales (la migración de arranque de Infisical nunca corrió con éxito), se recreó el volumen desde cero (docker compose down -v) en vez de intentar reparar en caliente.

Hardening al reactivar

Los valores originales del compose eran placeholders sin cambiar (ENCRYPTION_KEY/AUTH_SECRET literalmente changeme32characterslongkey12345, POSTGRES_PASSWORD en texto plano trivial) — aceptable mientras el servicio nunca arrancó, pero no para exponerlo a internet. Se regeneraron los tres antes de levantar el stack (openssl rand -hex 16 para ENCRYPTION_KEY, openssl rand -base64 32 para AUTH_SECRET, openssl rand -hex 16 para POSTGRES_PASSWORD — hex en vez de base64 para el password de Postgres, para evitar caracteres que compliquen el parseo de la connection URI). El puerto del contenedor se cambió de 8082:8080 (todas las interfaces) a 127.0.0.1:8082:8080, mismo patrón que el resto de servicios detrás de túnel — nunca expuesto directo en la IP pública del host.

Publicación: subdominio nuevo, no el de Conkafecito

Antes vivía en infisical.conkafecito.com, servido por el túnel cloudflared-conkafecito.service (túnel vm-main_oracle, cuenta Conkafecito) junto con Portainer/Zabbix/GLPI/Vault. Al reactivarlo se movió a secrets.estebanalcocer.cloud — cuenta personal de Esteban, no la de Conkafecito — con un túnel nuevo, cloudflared-estebanalcocer.service (túnel vm-main, id 25e646d4-...), recreado específicamente para este servicio después de que el túnel anterior con ese nombre se borrara junto con el media stack el 2026-08-04. La ruta vieja (infisical.conkafecito.com) se borró del ingress de cloudflared-conkafecito.service y de su registro DNS, para no dejar dos hostnames sirviendo lo mismo.

Migración de secretos desde Doppler (2026-08-05)

Esteban creó la organización y un primer proyecto (workspace) — Estebanalcocer.cloud (id 2aefdbd1-389c-4fd0-bdb8-a5621af8aac1), descrito como “de uso general para agentes de IA” — y una identidad de máquina (claude-esteban, auth por token) para uso programático. Con esa identidad se migraron los 15 secretos que vivían en Doppler al ambiente prod del proyecto, vía la API (POST /api/v3/secrets/raw/<key>). Ver Gestión de secretos para el inventario completo, la estructura del proyecto y cómo leer un secreto por API — esta página es solo sobre el contenedor.

Cloudflare Access: no aplica

A diferencia de servicios sin ningún login propio (la wiki, Glances), Infisical ya exige autenticación en el origen — cuenta de administrador con password largo, creada en /admin/signup al reactivar el stack. Por eso, a diferencia de esos otros casos, no se agregó Cloudflare Access delante de secrets.estebanalcocer.cloud: sería una segunda capa de login sobre una que ya es fuerte, no la única línea de defensa. Se intentó igual el 2026-08-05 (ver el intento fallido documentado en Cloudflare Access), pero se descartó por innecesario una vez que quedó claro que el login propio de Infisical ya cubre el caso.

Véase también

  • Túneles de Cloudflare — túnel vm-main (cuenta estebanalcocer.cloud) que expone secrets.estebanalcocer.cloud
  • Cloudflare Access — protección de login para servicios sin auth propia; no es el caso de Infisical
  • Gestión de secretos — inventario de los 15 secretos migrados y cómo leerlos por API
  • Media stack — dueño anterior del nombre de túnel vm-main, decomisionado el 2026-08-04