Configuración

Configuración

Todas las variables de entorno que lee styx: qué controlan, su defecto, si son secreto y quién las lee.

ImplementadoSin versión del tren todavía· generada desde scripts/docs/env.schema.ts

Página generada desde scripts/docs/env.schema.ts + inventario de lecturas (scripts/docs/env-scan.ts). No se edita a mano: bun run docs:gen la regenera y bun run docs:check falla si difiere.

Los secretos se pasan como X_FILE (la ruta de un secreto de compose); con NODE_ENV=production, X en claro es un error (dec-0118 §7). Ningún valor de secreto aparece aquí. resolveSecretEnv (@styx/service-http) resuelve todos los secretos de SERVICE_SECRET_NAMES en cada servicio que arranca con él, por eso aparecen en todos.

VariableQué controlaDefectoMarcasLa leen
CACHE_MODEL_TRACETests del modelo de invariantes de la caché (test:cache_model): con cualquier valor, trazan cada operación del programa.—sólo devmedia-core (daemon)
CATALOG_MEDIA_ENGINEMotor que catalog-svc pide al daemon para qry.media.probe: zig, libav o auto. Sin valor, el daemon elige según su política (dec-0110).——catalog-svc
CATALOG_PROBE_TIMEOUT_MSPlazo de cada probe de catalog-svc al daemon, en ms.10000—catalog-svc
DATABASE_PASSWORDContraseña de PostgreSQL. Se une a DATABASE_URL al arrancar; en producción la URL no puede llevar contraseña embebida.—secreto (_FILE)catalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc
DATABASE_URLURL de PostgreSQL del servicio (usuario del servicio, sin contraseña).—obligatoriacatalog-svc, cli, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc
DEVFlag de Vite (import.meta.env.DEV) en la web: activa ayudas de desarrollo (i18n estricto, devtools). La pone el bundler, no el operador.—sólo devweb
HOMEDirectorio personal del usuario. styx-upload guarda ahí el estado de reanudación (~/.local/state/styx) si no hay XDG_STATE_HOME; sin ninguno de los dos no reanuda.——cli, cli (zig)
HOSTNAMENombre del contenedor/host; la telemetría lo usa como service.instance.id (si falta, un UUID por proceso).——@styx/observability
IDENTITY_ACCESS_TOKEN_TTL_SVida de un access token de identity-svc, en segundos.900—identity-svc
IDENTITY_ADMIN_SUBJECTSSujetos OIDC (lista separada por comas) con rol admin (roles desde config, TS2-P3-05).——identity-svc
IDENTITY_ALLOWED_RETURN_ORIGINSOrígenes (separados por comas) a los que identity-svc permite volver tras el login.—obligatoriaidentity-svc
IDENTITY_BFF_ACCESS_TOKEN_TTL_SVida del access token que el BFF de la web obtiene para una sesión de navegador, en segundos. No puede superar el máximo del código.el máximo de MAX_BFF_ACCESS_TOKEN_TTL_S—identity-svc
IDENTITY_BROWSER_ROTATE_SCada cuánto rota la sesión de navegador (cookie __Host-), en segundos.900—identity-svc
IDENTITY_CSRF_KEYClave del token CSRF de las sesiones de navegador (dec-0118).—obligatoria, secreto (_FILE)catalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc
IDENTITY_DEVICE_ACCESS_TOKEN_TTL_SVida del access token de un dispositivo del device grant (RFC 8628), en segundos. Sin valor, la de IDENTITY_ACCESS_TOKEN_TTL_S.——identity-svc
IDENTITY_DEVICE_CODE_IP_MAXCódigos de dispositivo (POST /auth/device/code, anónimo) que una IP puede pedir por ventana.10—identity-svc
IDENTITY_DEVICE_CODE_IP_WINDOW_SVentana, en segundos, de IDENTITY_DEVICE_CODE_IP_MAX.600—identity-svc
IDENTITY_DEVICE_CODE_TTL_SVida, en segundos, de un código de dispositivo antes de aprobarse (un solo uso).600—identity-svc
IDENTITY_DEVICE_INTERVAL_SIntervalo mínimo de sondeo del dispositivo, en segundos (RFC 8628 §3.2); sondear más rápido da slow_down.5—identity-svc
IDENTITY_DEVICE_MAX_PENDINGPeticiones de dispositivo pendientes máximas en toda la instalación; al llegar, 503 con Retry-After.1000—identity-svc
IDENTITY_DEVICE_VERIFICATION_URIverification_uri del device grant: la página /link de la web. Sin valor, el primer origen de IDENTITY_ALLOWED_RETURN_ORIGINS más /link.——identity-svc
IDENTITY_DIRECT_CLIENTStrue si identity-svc recibe a los clientes sin proxy delante (la IP del socket cuenta). Alternativa a IDENTITY_TRUSTED_PROXIES (TS2-P2-02).——identity-svc
IDENTITY_DISABLED_SUBJECTSSujetos OIDC (separados por comas) bloqueados: no pueden iniciar sesión.——identity-svc
IDENTITY_INVITE_CREATE_RATE_LIMIT_MAXInvitaciones que un actor puede crear por hora.20—identity-svc
IDENTITY_INVITE_MAX_ACTIVEInvitaciones activas (sin usar, sin caducar, sin revocar) a la vez.100—identity-svc
IDENTITY_INVITE_MAX_TTL_SVida máxima de una invitación, en segundos.604800—identity-svc
IDENTITY_LOGIN_TTL_SPlazo para completar un login OIDC iniciado, en segundos.600—identity-svc
IDENTITY_MAX_DEVICE_SESSIONS_PER_ACTORSesiones de dispositivo (CLI, TV) vivas por actor; tope aparte del de navegador: al superarlo cae el dispositivo más antiguo, nunca una sesión de navegador.5—identity-svc
IDENTITY_MAX_SESSIONS_PER_ACTORSesiones de navegador vivas por actor; la más antigua se revoca al superar el tope (los dispositivos tienen su propio tope).10—identity-svc
IDENTITY_MEMBER_SUBJECTSSujetos OIDC (separados por comas) con rol member.——identity-svc
IDENTITY_OWNER_SUBJECTSSujetos OIDC (separados por comas) con rol owner.——identity-svc
IDENTITY_PAT_ACCESS_TOKEN_TTL_SVida, en segundos, del access token que se canjea por una API key (POST /auth/token). No puede superar 300.300—identity-svc
IDENTITY_PAT_DEFAULT_TTL_SCaducidad por defecto de una API key personal, en segundos (obligatoria: no hay «nunca caduca»).2592000—identity-svc
IDENTITY_PAT_MAX_ACTIVEAPI keys vivas máximas por cuenta.20—identity-svc
IDENTITY_PAT_MAX_TTL_SCaducidad máxima de una API key personal, en segundos.7776000—identity-svc
IDENTITY_PROXY_PROOFPrueba que el proxy de entrada añade a cada petición hacia identity-svc: sin ella, X-Forwarded-For no cuenta (TS3-P2-01).—secreto (_FILE)catalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc
IDENTITY_PUBLIC_URLOrigen público de identity-svc (sin path). Es el issuer de los tokens que emite.—obligatoriaidentity-svc
IDENTITY_RATE_LIMIT_MAXPeticiones por ventana y cliente en /auth/*.30—identity-svc
IDENTITY_RATE_LIMIT_WINDOW_SVentana del rate-limit de /auth/*, en segundos.60—identity-svc
IDENTITY_REFRESH_GRACE_SMargen en el que un refresh token ya rotado sigue valiendo (peticiones concurrentes), en segundos.10—identity-svc
IDENTITY_ROLE_SOURCEDe dónde sale el rol de una identidad no listada (dec-0125 §5.3): config+db (default) deja que su invitación le dé member; config la deja restricted.config+db—identity-svc
IDENTITY_SESSION_IDLE_TTL_SInactividad máxima de una sesión, en segundos. No puede superar IDENTITY_SESSION_MAX_TTL_S.2592000—identity-svc
IDENTITY_SESSION_MAX_TTL_SVida máxima absoluta de una sesión, en segundos.7776000—identity-svc
IDENTITY_SESSION_RATE_LIMIT_MAXPeticiones por ventana y sesión (bucket por sesión además del de cliente).600—identity-svc
IDENTITY_SIGNING_KEYClave privada (PEM, Ed25519) con la que identity-svc firma los JWT (EdDSA).—obligatoria, secreto (_FILE)catalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc
IDENTITY_TRUSTED_PROXIESIPs o CIDR (separados por comas) de los proxies de confianza delante de identity-svc. En producción exige IDENTITY_PROXY_PROOF.——identity-svc
NATS_URLURL del servidor NATS del bus (spire, dec-0120).nats://localhost:4222—@styx/bus, catalog-svc, identity-svc, media-daemon (daemon), playback-svc, realtime-svc, sources-svc, web, workers-svc
NODE_ENVproduction activa las reglas de producción: secretos sólo por _FILE, sin contraseñas en URLs, detalle de validación mínimo y NKey obligatoria.——@styx/bus, @styx/observability, @styx/service-http, catalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc
OIDC_CLIENT_IDClient id de identity-svc en el IdP OIDC (Pocket ID u otro).—obligatoriaidentity-svc
OIDC_CLIENT_SECRETClient secret de identity-svc en el IdP. Opcional: sin él, cliente público con PKCE.—secreto (_FILE)catalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc
OIDC_ISSUERURL del issuer OIDC (descubrimiento en /.well-known/openid-configuration).—obligatoriaidentity-svc
OIDC_SCOPESScopes pedidos al IdP, separados por espacios.openid profile email—identity-svc
OTEL_BSP_MAX_EXPORT_BATCH_SIZEDaemon: registros por lote de la exportación OTLP (spans y logs). Entre 1 y 256 (dec-0135 D4).128—media-daemon (daemon)
OTEL_BSP_MAX_QUEUE_SIZEDaemon: capacidad de la cola de exportación OTLP; llena, se descarta y se cuenta. Entre 16 y 8192 (dec-0135 D4).1024—media-daemon (daemon)
OTEL_BSP_SCHEDULE_DELAYDaemon: espera máxima, en ms, antes de exportar un lote OTLP incompleto (10 a 60000).5000—media-daemon (daemon)
OTEL_EXPORTER_OTLP_ENDPOINTEndpoint OTLP de trazas. Sin él, OpenTelemetry queda desactivado. Los servicios usan el gRPC del colector (4317); el daemon exporta spans y logs por OTLP/HTTP JSON a <endpoint>/v1/traces y /v1/logs y necesita el receptor HTTP (4318), en http:// (dec-0135 D4).——@styx/observability, media-daemon (daemon)
OTEL_EXPORTER_OTLP_LOGS_ENDPOINTURL completa de los logs OTLP/HTTP del daemon; sustituye a OTEL_EXPORTER_OTLP_ENDPOINT + /v1/logs.——media-daemon (daemon)
OTEL_EXPORTER_OTLP_PROTOCOLDaemon: grpc apaga su exportación OTLP (sólo habla OTLP/HTTP); cualquier otro valor se acepta y se responde con JSON.——media-daemon (daemon)
OTEL_EXPORTER_OTLP_TIMEOUTDaemon: plazo, en ms, de cada POST OTLP (100 a 30000). Un endpoint que falla entra en backoff.10000—media-daemon (daemon)
OTEL_EXPORTER_OTLP_TRACES_ENDPOINTURL completa de los spans OTLP/HTTP del daemon; sustituye a OTEL_EXPORTER_OTLP_ENDPOINT + /v1/traces.——media-daemon (daemon)
OTEL_INGEST_TOKENToken con el que los servicios y el daemon se autentican contra el colector OTel. El daemon lo lee de OTEL_INGEST_TOKEN_FILE; en claro lo rechaza.—secreto (_FILE)@styx/observability, catalog-svc, identity-svc, media-daemon (daemon), playback-svc, realtime-svc, sources-svc, web, workers-svc
OTEL_METRIC_EXPORT_INTERVALIntervalo de exportación de métricas OTLP de los servicios, en ms; mínimo 1000 (defecto 15000).15000—@styx/observability
OTEL_SDK_DISABLEDDaemon: true o 1 apaga la exportación OTLP aunque haya endpoint.——media-daemon (daemon)
OTEL_SERVICE_NAMENombre de servicio en las trazas.el nombre del servicio (catalog-svc, …)—@styx/observability, @styx/service-http, media-daemon (daemon), web
OTEL_TRACES_SAMPLER_ARGRatio de muestreo de trazas (0..1, defecto 1). Un traceparent remoto con sampled=1 no fuerza el 100 %.——@styx/observability
PATHRuta de búsqueda de ejecutables. El CLI styx busca en ella los binarios de cada runtime (systemctl, podman, docker…) antes de lanzarlos; sin ellos, la orden falla con código 127.——cli
PLAYBACK_CATALOG_TIMEOUT_MSPlazo de las peticiones de playback-svc a catalog-svc por el bus, en ms.5000—playback-svc
PLAYBACK_DAEMON_TIMEOUT_MSPlazo de cada petición de playback-svc al daemon por el socket de control, en ms.5000—playback-svc
PLAYBACK_INGEST_RELAY_MSCada cuánto playback-svc drena del daemon las subidas terminadas para darlas de alta en el catálogo, en ms.1000—playback-svc
PLAYBACK_SESSION_REGISTRY_MAXEntradas máximas del registro de sesiones de playback-svc.10000—playback-svc
PLAYBACK_SESSIONS_PER_ACTORSesiones de reproducción abiertas a la vez por actor.4—playback-svc
PORTPuerto HTTP del servicio.catalog 3000 · playback 3001 · sources 3002 · realtime 3003 · workers 3004 · identity 3005—catalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, workers-svc
REALTIME_WS_ALLOWED_ORIGINSOrígenes (separados por comas) admitidos en el WebSocket de realtime-svc.(ninguno)—realtime-svc
REALTIME_WS_MAX_CONNECTIONSConexiones WebSocket totales de realtime-svc.1024—realtime-svc
REALTIME_WS_MAX_PER_ACTORConexiones WebSocket por actor.4—realtime-svc
SPIRE_KEYRINGKeyring de spire: claves públicas de los emisores del bus con las que se verifican los sobres firmados (dec-0120).——@styx/bus, media-daemon (daemon)
SPIRE_NATS_NKEY_SEEDSemilla NKey del usuario NATS del servicio (ACL por servicio generada de BUS_ROUTES). Obligatoria en producción.—secreto (_FILE)@styx/bus, catalog-svc, identity-svc, media-daemon (daemon), playback-svc, realtime-svc, sources-svc, web, workers-svc
SPIRE_SEEDSemilla de la identidad de spire del servicio: firma los sobres del bus.—obligatoria, secreto (_FILE)@styx/bus, catalog-svc, identity-svc, media-daemon (daemon), playback-svc, realtime-svc, sources-svc, web, workers-svc
STYX_ACCESS_TOKENAccess token de identity con el que styx-upload pide la sesión de ingesta a playback-svc. Sin él el CLI sale con error de uso.——cli (zig)
STYX_API_KEY_FILERuta de un fichero con la API key personal (styx_pat_…: secreto de CI o de contenedor), alternativa a STYX_TOKEN; manda sobre ella. Distinta de STYX_TOKEN_FILE, que es el access token de admin de styx invite.——cli
STYX_BUILD_METAFILERuta donde el build AOT de un servicio escribe el metafile del bundle. La pone release:build para que scripts/release/sbom.ts saque el SBOM del componente (dec-0123 D4); sin ella no se escribe.—sólo dev@styx/service-http
STYX_CACHE_L2_DIRDirectorio del anillo de caché L2 del daemon. Vacío o sin definir: sin caché L2.——media-daemon (daemon)
STYX_CATALOG_SVC_URLURL de catalog-svc para el cliente Eden de la web y de @styx/clients.http://localhost:3000—@styx/clients, web
STYX_CONTROL_ALLOWED_GIDSGIDs (separados por comas) admitidos en el socket de control del daemon (SO_PEERCRED).(ninguno)—media-daemon (daemon)
STYX_CONTROL_ALLOWED_UIDSUIDs (separados por comas) admitidos en el socket de control del daemon (SO_PEERCRED).(ninguno)—media-daemon (daemon)
STYX_DAEMON_NODE_IDId del daemon al que playback-svc firma las SCT (audiencia del token). Tiene que coincidir con STYX_NODE_ID del daemon.styx-media-daemon—playback-svc
STYX_DB_RUNTIME_ROLERol PostgreSQL sólo DML con el que corre el servicio; el paso de migración le concede permisos. El runtime nunca migra.——catalog-svc, identity-svc, sources-svc
STYX_DEMO_MEDIA_ROOTRaíz de medios del plugin de demo demo-open-cinema.—sólo devplugin demo-open-cinema
STYX_ETCDirectorio de configuración del CLI styx (styx.toml, secretos, trust.json). La opción --etc tiene prioridad./etc/styx—cli
STYX_FUZZ_CACHE_DIRFuzz largo (styx-fuzz-long --target=cache_model): directorio padre, privado (0700), del anillo de L2. Sin valor, los programas corren sin L2.—sólo devnative/zig/fuzz_long.zig
STYX_HEALTH_TIMEOUT_MSPlazo del health gate de styx update, install y rollback, en ms. Un valor no numérico o ≤ 0 deja el de por defecto.120000—cli
STYX_IDENTITY_URLURL de identity-svc para styx invite (https; http sólo en loopback). La opción --api-url tiene prioridad.——cli
STYX_INGEST_IDLE_GRACE_MSMargen tras el que playback-svc da por abandonada una sesión de ingesta sin actividad, en ms (mínimo 336000).360000—playback-svc
STYX_INGEST_LISTENDirección host:puerto del listener HTTP de ingesta conduit del daemon.127.0.0.1:8790—media-daemon (daemon)
STYX_INGEST_MAX_FILE_MIBFichero más grande que se admite en una subida, en MiB. playback-svc y el daemon aplican el mismo tope.16384—media-daemon (daemon), playback-svc
STYX_INGEST_MIN_FREE_MIBEspacio libre, en MiB, que el volumen de la raíz de ingesta conserva: el daemon no arranca la ingesta si no caben el staging entero más este suelo, y rechaza con 507 un create que lo dejaría por debajo.2048—media-daemon (daemon)
STYX_INGEST_PEERSBorde del listener de ingesta: proxy (detrás del proxy de STYX_INGEST_TRUSTED_PROXIES con STYX_INGEST_PROXY_PROOF) o direct. Obligatoria si el listener no es loopback o si hay proxy o prueba configurados.——media-daemon (daemon)
STYX_INGEST_PROXY_PROOFPrueba que el proxy de entrada añade a las peticiones de ingesta hacia el daemon (STYX_INGEST_PROXY_PROOF_FILE).—secreto (_FILE)media-daemon (daemon)
STYX_INGEST_PUBLIC_URLURL pública del listener de ingesta que se devuelve al cliente.——media-daemon (daemon)
STYX_INGEST_QUOTA_PER_ACTOR_MIBBytes que un actor puede tener guardados en la raíz de ingesta, en MiB (TS5-P2-01).65536—playback-svc
STYX_INGEST_ROOTDirectorio raíz de ingesta del daemon. Sin él, la ingesta está desactivada.——media-daemon (daemon)
STYX_INGEST_ROOT_IDId de la raíz de ingesta del daemon (dec-0121). playback-svc y el daemon tienen que coincidir.ingest—media-daemon (daemon), playback-svc
STYX_INGEST_ROOT_MAX_MIBBytes totales guardados en la raíz de ingesta, en MiB. playback-svc y el daemon aplican el mismo tope.131072—media-daemon (daemon), playback-svc
STYX_INGEST_ROOTSRaíces de ingesta que catalog-svc reconoce al dar de alta subidas (id=/ruta,…).——catalog-svc
STYX_INGEST_SESSIONS_PER_ACTORSesiones de ingesta a la vez por actor. playback-svc y el daemon aplican el mismo tope.4—media-daemon (daemon), playback-svc
STYX_INGEST_STAGING_MIBEspacio total de staging de subidas en curso del daemon, en MiB.65536—media-daemon (daemon)
STYX_INGEST_STAGING_PER_ACTOR_MIBEspacio de staging por actor, en MiB.16384—media-daemon (daemon)
STYX_INGEST_TRUSTED_PROXIESIP del proxy de confianza delante del listener de ingesta (un host, no una subred ni una lista). Con STYX_INGEST_PEERS=proxy, exige STYX_INGEST_PROXY_PROOF.——media-daemon (daemon)
STYX_LOG_FORMATFormato de los logs: json (una línea JSON por registro con trace_id/span_id, para docker logs) o pretty. Por defecto json con NODE_ENV=production.——@styx/observability, media-daemon (daemon), web
STYX_MEDIA_ALLOWED_ORIGINSOrígenes (separados por comas) admitidos por los transportes web del daemon (WebTransport/HTTP3).(ninguno)—media-daemon (daemon)
STYX_MEDIA_CERTCertificado TLS de los listeners QUIC del daemon (también el de MoQT y HTTP/3 si no se fijan aparte).certificado de desarrollo de spikes/f0b-owned-media-path—media-daemon (daemon)
STYX_MEDIA_ENGINEMotor de medios del daemon: zig, libav o auto (dec-0110).auto—media-daemon (daemon)
STYX_MEDIA_ENGINE_FALLBACKFallback de motor cuando el elegido no puede con un fichero: off o libav (dec-0110 §3). Un valor que el binario no puede cumplir detiene el daemon al arrancar.off—media-daemon (daemon)
STYX_MEDIA_H3_CERTCertificado del listener HTTP/3 de empaquetado.el de STYX_MEDIA_CERT—media-daemon (daemon)
STYX_MEDIA_H3_KEYClave del listener HTTP/3.la de STYX_MEDIA_KEY—media-daemon (daemon)
STYX_MEDIA_H3_PORTPuerto UDP del listener HTTP/3 (HLS/CMAF).4435—media-daemon (daemon)
STYX_MEDIA_KEYClave privada TLS de los listeners QUIC del daemon.clave de desarrollo de spikes/f0b-owned-media-path—media-daemon (daemon)
STYX_MEDIA_MAX_RANGE_LENGTHBytes máximos de una lectura por rango del data plane (entre 1 y 1 GiB; 0 restaura el defecto).16777216—media-core (daemon)
STYX_MEDIA_METRICS_INTERVAL_MSCada cuánto el daemon publica métricas, en ms. 0 las desactiva.0—media-daemon (daemon)
STYX_MEDIA_MOQT_FIXTUREAuto-publisher MoQT de desarrollo: <rootId>/<relPath> del fichero que publica.—sólo devmedia-daemon (daemon)
STYX_MEDIA_PACKAGING_HELD_MIBMemoria retenida por empaquetados en curso, en MiB.768—media-daemon (daemon)
STYX_MEDIA_PACKAGING_IDLE_SSegundos sin una sola petición tras los que el daemon cierra y revoca una sesión empaquetada (30 a 600: nunca más de lo que vive un SCT read).600—media-daemon (daemon)
STYX_MEDIA_PACKAGING_MAXEmpaquetados abiertos a la vez en el daemon.32—media-daemon (daemon)
STYX_MEDIA_PACKAGING_WORKERSHilos de empaquetado del daemon.2—media-daemon (daemon)
STYX_MEDIA_ROOTRaíz del adaptador local de @styx/source-sdk (anterior a STYX_MEDIA_ROOTS).'' (sin raíz)—@styx/source-sdk
STYX_MEDIA_ROOTSRaíces de medios id=/ruta[:ro][:trusted],… (hasta 16). El daemon las abre como fd de directorio y sirve cada asset fd-relativo (dec-0117 I7); catalog-svc y playback-svc traducen rutas con la misma tabla.—obligatoriacatalog-svc, media-core (daemon), playback-svc
STYX_MEDIA_SOCKETRuta del socket Unix de control del daemon (spire, dec-0120)./tmp/styx-media-daemon.sock—catalog-svc, media-daemon (daemon), playback-svc
STYX_MEDIA_TCP_ACCEPT_RATE_PER_ADDRESSConexiones nuevas por segundo que una dirección puede abrir en el origen TCP (cada una cuesta un handshake TLS en el hilo del loop); 0 = sin tope. Mismo aviso que STYX_MEDIA_TCP_MAX_PER_ADDRESS detrás de un proxy.32—media-daemon (daemon)
STYX_MEDIA_TCP_ALT_SVCAnuncia HTTP/3 con Alt-Svc: h3=":<puerto UDP>" en cada respuesta del origen TCP (on | off).on—media-daemon (daemon)
STYX_MEDIA_TCP_CERTCertificado (PEM, cadena completa) del origen TCP. Se relee cada STYX_MEDIA_TCP_CERT_RELOAD_S y, si cambió y la clave le corresponde, los handshakes siguientes usan el nuevo.el de STYX_MEDIA_H3_CERT—media-daemon (daemon)
STYX_MEDIA_TCP_CERT_RELOAD_SSegundos entre lecturas del certificado del origen TCP (0 = nunca).30—media-daemon (daemon)
STYX_MEDIA_TCP_KEYClave privada (PEM) del origen TCP.la de STYX_MEDIA_H3_KEY—media-daemon (daemon)
STYX_MEDIA_TCP_MAX_PER_ADDRESSConexiones abiertas que una dirección puede tener en el origen TCP; 0 = sin tope. Detrás de un proxy sin PROXY protocol todos los espectadores son una dirección: súbelo o ponlo a 0.16—media-daemon (daemon)
STYX_MEDIA_TCP_PORTPuerto TCP del origen HTTPS del daemon (HTTP/1.1 sobre TLS 1.3, dec-0134). off o 0 lo desactiva.el de STYX_MEDIA_H3_PORT—media-daemon (daemon)
STYX_MEDIA_TCP_PUBLIC_PORTPuerto que los clientes marcan para el origen TCP cuando no es el enlazado (un proxy en 443); es el que anuncia el descriptor de entrega.el puerto TCP enlazado—media-daemon (daemon)
STYX_MEDIA_TCP_TLSTLS en el origen TCP (on | off). off sirve HTTP/1.1 en claro, sólo detrás de un proxy que termina TLS en una red privada.on—media-daemon (daemon)
STYX_MEDIA_WT_HOSTHost del listener WebTransport del daemon.localhost—media-daemon (daemon)
STYX_MEDIA_WT_IPV6Familia del socket del listener WebTransport: 1 exige dual-stack, 0 sólo IPv4; sin definir, dual-stack si el kernel tiene IPv6. Un valor inválido o imposible deshabilita el listener.——media-daemon (daemon)
STYX_MEDIA_WT_PORTPuerto UDP del listener WebTransport.4433—media-daemon (daemon)
STYX_MOQT_CERTCertificado del listener MoQT.el de STYX_MEDIA_CERT—media-daemon (daemon)
STYX_MOQT_IPV6Familia del socket del listener MoQT: 1 exige dual-stack, 0 sólo IPv4; sin definir, dual-stack si el kernel tiene IPv6. Un valor inválido o imposible deshabilita el listener.——media-daemon (daemon)
STYX_MOQT_KEYClave del listener MoQT.la de STYX_MEDIA_KEY—media-daemon (daemon)
STYX_MOQT_PORTPuerto UDP del listener MoQT.4434—media-daemon (daemon)
STYX_NODE_IDId del nodo del daemon: audiencia que exige a las SCT.styx-media-daemon—media-daemon (daemon)
STYX_OPENAPIQué publica cada servicio HTTP de su OpenAPI: off (nada, 404), json (sólo GET /openapi/json) o ui (documento y UI Scalar en GET /openapi, sin CDN). En producción las rutas exigen Bearer con role:admin; un valor inválido equivale a off.ui fuera de producción, off en producción—@styx/service-http
STYX_OPENAPI_SERVER_URLOrigen público de cada servicio HTTP que su OpenAPI declara en servers (lo usan la UI Scalar y el playground de la documentación): una URL http(s) absoluta o una ruta que empieza por /. Sin ella el documento declara / (el origen que lo sirve) y es determinista para docs:gen; un valor inválido equivale a /./—@styx/service-http
STYX_PLAYBACK_SVC_URLURL de playback-svc para el BFF de la web.http://localhost:3001—web
STYX_QUADLET_DIRDirectorio donde el adapter Podman Quadlet del CLI escribe sus unidades. Configurable para pruebas./etc/containers/systemdsólo devcli
STYX_ROOTRaíz de instalación del CLI styx (releases/<tren>/ y el enlace current). La opción --root tiene prioridad./opt/styx—cli
STYX_SCT_PUBLIC_KEYSClaves públicas Ed25519 (con su kid) con las que el daemon verifica las SCT (dec-0117 §4.1).(ninguna: deny-by-default)—media-daemon (daemon)
STYX_SCT_SIGNING_KEYSemilla Ed25519 (base64url) con la que playback-svc firma las SCT.—secreto (_FILE)catalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc
STYX_SERVERServidor de Styx al que habla styx login|whoami|token (https://…; http:// solo en loopback). --server manda; sin ninguno de los dos, el de las credenciales guardadas.——cli
STYX_SOAK_DEBUG_MINHarness de soak de caché: activa la salida de depuración.—sólo devmedia-daemon (daemon)
STYX_SOAK_HOT_SETHarness de soak de caché: cardinalidad del conjunto de claves calientes.256sólo devmedia-daemon (daemon)
STYX_SOAK_L1_BYTESHarness de soak de caché: capacidad de L1 (RAM) en bytes.8388608 (8 MiB)sólo devmedia-daemon (daemon)
STYX_SOAK_L2_BYTESHarness de soak de caché: capacidad de L2 (NVMe) en bytes.67108864 (64 MiB)sólo devmedia-daemon (daemon)
STYX_SOAK_RING_DIRHarness de soak de caché: directorio del anillo L2.—sólo devmedia-daemon (daemon)
STYX_SOAK_SECONDSHarness de soak de caché: duración total de la ejecución en segundos.30sólo devmedia-daemon (daemon)
STYX_SOAK_SEEDHarness de soak de caché: semilla del PRNG.0xCAFE_F00D_DEAD_BEEFsólo devmedia-daemon (daemon)
STYX_SOAK_VAL_BYTESHarness de soak de caché: tamaño en bytes de cada valor que se inserta.4096sólo devmedia-daemon (daemon)
STYX_STATEDirectorio de estado del CLI styx (state.json, datos, copias). La opción --state tiene prioridad./var/lib/styx—cli
STYX_SYSTEMD_UNIT_DIRDirectorio donde los adapters systemd nativo y Quadlet del CLI instalan las unidades de systemd. Configurable para pruebas./etc/systemd/systemsólo devcli
STYX_SYSUSERS_FILEFichero sysusers.d donde el adapter systemd nativo del CLI declara los usuarios de cada servicio. Configurable para pruebas./etc/sysusers.d/styx.confsólo devcli
STYX_TOKENAPI key personal (styx_pat_…) para styx en CI y agentes: sustituye al fichero de credenciales. Es un secreto en el entorno del proceso; en contenedores y CI mejor STYX_API_KEY_FILE.——cli
STYX_TOKEN_FILERuta del fichero con el access token de admin que usa styx invite (- lee la entrada estándar). La opción --token-file tiene prioridad. El token nunca va en una variable de entorno.——cli
STYX_WEB_DIRECT_CLIENTStrue si la web recibe a los clientes sin proxy delante.——web
STYX_WEB_IMAGE_ORIGINSOrígenes extra de imágenes que admite la CSP de la web.——web
STYX_WEB_MEDIA_ORIGINSOrígenes extra de medios que admite la CSP de la web.——web
STYX_WEB_ORIGINSOrígenes propios de la web (comprobación de origen del BFF).——web
STYX_WEB_PROXY_PROOFPrueba que el proxy de entrada añade a las peticiones hacia la web.—secreto (_FILE)catalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc
STYX_WEB_TRUSTED_PROXIESIPs o CIDR de los proxies de confianza delante de la web. En producción exige STYX_WEB_PROXY_PROOF.——web
TELEMETRY_PSEUDONYM_KEYClave HMAC con la que la telemetría pseudonimiza los ids de actor (styx.actor.pseudo_id, dec-0135 §D7). Sin ella, ningún id de actor ni su pseudónimo sale en trazas ni logs.—secreto (_FILE)@styx/observability, catalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc
VALKEY_PASSWORDContraseña de Valkey (sesiones y rate-limit de identity-svc).—secreto (_FILE)catalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc
VALKEY_URLURL de Valkey (sin contraseña).—obligatoriacatalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc
VITE_CATALOG_SVC_URLURL de catalog-svc para el cliente Eden de la web en el navegador (Vite la incrusta en el build); en el servidor manda STYX_CATALOG_SVC_URL.http://localhost:3000—@styx/clients, web
XDG_CONFIG_HOMEBase (ruta absoluta) del directorio de configuración del CLI: las credenciales van en $XDG_CONFIG_HOME/styx/credentials.json (0600). Sin valor, ~/.config.——cli
XDG_STATE_HOMEDirectorio de estado XDG. styx-upload guarda el estado de reanudación de las subidas en $XDG_STATE_HOME/styx; vacío o sin definir, usa HOME.——cli (zig)