Todas las variables de entorno que lee styx: qué controlan, su defecto, si son secreto y quién las lee.
scripts/docs/env.schema.tsPágina generada desde
scripts/docs/env.schema.ts + inventario de lecturas (scripts/docs/env-scan.ts). No se edita a mano:bun run docs:genla regenera ybun run docs:checkfalla 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.
| Variable | Qué controla | Defecto | Marcas | La leen |
|---|---|---|---|---|
CACHE_MODEL_TRACE | Tests del modelo de invariantes de la caché (test:cache_model): con cualquier valor, trazan cada operación del programa. | — | sólo dev | media-core (daemon) |
CATALOG_MEDIA_ENGINE | Motor 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_MS | Plazo de cada probe de catalog-svc al daemon, en ms. | 10000 | — | catalog-svc |
DATABASE_PASSWORD | Contraseñ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_URL | URL de PostgreSQL del servicio (usuario del servicio, sin contraseña). | — | obligatoria | catalog-svc, cli, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc |
DEV | Flag 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 dev | web |
HOME | Directorio 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) |
HOSTNAME | Nombre del contenedor/host; la telemetría lo usa como service.instance.id (si falta, un UUID por proceso). | — | — | @styx/observability |
IDENTITY_ACCESS_TOKEN_TTL_S | Vida de un access token de identity-svc, en segundos. | 900 | — | identity-svc |
IDENTITY_ADMIN_SUBJECTS | Sujetos OIDC (lista separada por comas) con rol admin (roles desde config, TS2-P3-05). | — | — | identity-svc |
IDENTITY_ALLOWED_RETURN_ORIGINS | Orígenes (separados por comas) a los que identity-svc permite volver tras el login. | — | obligatoria | identity-svc |
IDENTITY_BFF_ACCESS_TOKEN_TTL_S | Vida 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_S | Cada cuánto rota la sesión de navegador (cookie __Host-), en segundos. | 900 | — | identity-svc |
IDENTITY_CSRF_KEY | Clave 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_S | Vida 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_MAX | Códigos de dispositivo (POST /auth/device/code, anónimo) que una IP puede pedir por ventana. | 10 | — | identity-svc |
IDENTITY_DEVICE_CODE_IP_WINDOW_S | Ventana, en segundos, de IDENTITY_DEVICE_CODE_IP_MAX. | 600 | — | identity-svc |
IDENTITY_DEVICE_CODE_TTL_S | Vida, en segundos, de un código de dispositivo antes de aprobarse (un solo uso). | 600 | — | identity-svc |
IDENTITY_DEVICE_INTERVAL_S | Intervalo 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_PENDING | Peticiones de dispositivo pendientes máximas en toda la instalación; al llegar, 503 con Retry-After. | 1000 | — | identity-svc |
IDENTITY_DEVICE_VERIFICATION_URI | verification_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_CLIENTS | true 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_SUBJECTS | Sujetos OIDC (separados por comas) bloqueados: no pueden iniciar sesión. | — | — | identity-svc |
IDENTITY_INVITE_CREATE_RATE_LIMIT_MAX | Invitaciones que un actor puede crear por hora. | 20 | — | identity-svc |
IDENTITY_INVITE_MAX_ACTIVE | Invitaciones activas (sin usar, sin caducar, sin revocar) a la vez. | 100 | — | identity-svc |
IDENTITY_INVITE_MAX_TTL_S | Vida máxima de una invitación, en segundos. | 604800 | — | identity-svc |
IDENTITY_LOGIN_TTL_S | Plazo para completar un login OIDC iniciado, en segundos. | 600 | — | identity-svc |
IDENTITY_MAX_DEVICE_SESSIONS_PER_ACTOR | Sesiones 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_ACTOR | Sesiones 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_SUBJECTS | Sujetos OIDC (separados por comas) con rol member. | — | — | identity-svc |
IDENTITY_OWNER_SUBJECTS | Sujetos OIDC (separados por comas) con rol owner. | — | — | identity-svc |
IDENTITY_PAT_ACCESS_TOKEN_TTL_S | Vida, 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_S | Caducidad por defecto de una API key personal, en segundos (obligatoria: no hay «nunca caduca»). | 2592000 | — | identity-svc |
IDENTITY_PAT_MAX_ACTIVE | API keys vivas máximas por cuenta. | 20 | — | identity-svc |
IDENTITY_PAT_MAX_TTL_S | Caducidad máxima de una API key personal, en segundos. | 7776000 | — | identity-svc |
IDENTITY_PROXY_PROOF | Prueba 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_URL | Origen público de identity-svc (sin path). Es el issuer de los tokens que emite. | — | obligatoria | identity-svc |
IDENTITY_RATE_LIMIT_MAX | Peticiones por ventana y cliente en /auth/*. | 30 | — | identity-svc |
IDENTITY_RATE_LIMIT_WINDOW_S | Ventana del rate-limit de /auth/*, en segundos. | 60 | — | identity-svc |
IDENTITY_REFRESH_GRACE_S | Margen en el que un refresh token ya rotado sigue valiendo (peticiones concurrentes), en segundos. | 10 | — | identity-svc |
IDENTITY_ROLE_SOURCE | De 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_S | Inactividad máxima de una sesión, en segundos. No puede superar IDENTITY_SESSION_MAX_TTL_S. | 2592000 | — | identity-svc |
IDENTITY_SESSION_MAX_TTL_S | Vida máxima absoluta de una sesión, en segundos. | 7776000 | — | identity-svc |
IDENTITY_SESSION_RATE_LIMIT_MAX | Peticiones por ventana y sesión (bucket por sesión además del de cliente). | 600 | — | identity-svc |
IDENTITY_SIGNING_KEY | Clave 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_PROXIES | IPs o CIDR (separados por comas) de los proxies de confianza delante de identity-svc. En producción exige IDENTITY_PROXY_PROOF. | — | — | identity-svc |
NATS_URL | URL 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_ENV | production 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_ID | Client id de identity-svc en el IdP OIDC (Pocket ID u otro). | — | obligatoria | identity-svc |
OIDC_CLIENT_SECRET | Client 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_ISSUER | URL del issuer OIDC (descubrimiento en /.well-known/openid-configuration). | — | obligatoria | identity-svc |
OIDC_SCOPES | Scopes pedidos al IdP, separados por espacios. | openid profile email | — | identity-svc |
OTEL_BSP_MAX_EXPORT_BATCH_SIZE | Daemon: 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_SIZE | Daemon: 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_DELAY | Daemon: espera máxima, en ms, antes de exportar un lote OTLP incompleto (10 a 60000). | 5000 | — | media-daemon (daemon) |
OTEL_EXPORTER_OTLP_ENDPOINT | Endpoint 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_ENDPOINT | URL completa de los logs OTLP/HTTP del daemon; sustituye a OTEL_EXPORTER_OTLP_ENDPOINT + /v1/logs. | — | — | media-daemon (daemon) |
OTEL_EXPORTER_OTLP_PROTOCOL | Daemon: 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_TIMEOUT | Daemon: 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_ENDPOINT | URL completa de los spans OTLP/HTTP del daemon; sustituye a OTEL_EXPORTER_OTLP_ENDPOINT + /v1/traces. | — | — | media-daemon (daemon) |
OTEL_INGEST_TOKEN | Token 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_INTERVAL | Intervalo de exportación de métricas OTLP de los servicios, en ms; mínimo 1000 (defecto 15000). | 15000 | — | @styx/observability |
OTEL_SDK_DISABLED | Daemon: true o 1 apaga la exportación OTLP aunque haya endpoint. | — | — | media-daemon (daemon) |
OTEL_SERVICE_NAME | Nombre de servicio en las trazas. | el nombre del servicio (catalog-svc, …) | — | @styx/observability, @styx/service-http, media-daemon (daemon), web |
OTEL_TRACES_SAMPLER_ARG | Ratio de muestreo de trazas (0..1, defecto 1). Un traceparent remoto con sampled=1 no fuerza el 100 %. | — | — | @styx/observability |
PATH | Ruta 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_MS | Plazo de las peticiones de playback-svc a catalog-svc por el bus, en ms. | 5000 | — | playback-svc |
PLAYBACK_DAEMON_TIMEOUT_MS | Plazo de cada petición de playback-svc al daemon por el socket de control, en ms. | 5000 | — | playback-svc |
PLAYBACK_INGEST_RELAY_MS | Cada 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_MAX | Entradas máximas del registro de sesiones de playback-svc. | 10000 | — | playback-svc |
PLAYBACK_SESSIONS_PER_ACTOR | Sesiones de reproducción abiertas a la vez por actor. | 4 | — | playback-svc |
PORT | Puerto 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_ORIGINS | Orígenes (separados por comas) admitidos en el WebSocket de realtime-svc. | (ninguno) | — | realtime-svc |
REALTIME_WS_MAX_CONNECTIONS | Conexiones WebSocket totales de realtime-svc. | 1024 | — | realtime-svc |
REALTIME_WS_MAX_PER_ACTOR | Conexiones WebSocket por actor. | 4 | — | realtime-svc |
SPIRE_KEYRING | Keyring 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_SEED | Semilla 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_SEED | Semilla 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_TOKEN | Access 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_FILE | Ruta 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_METAFILE | Ruta 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_DIR | Directorio del anillo de caché L2 del daemon. Vacío o sin definir: sin caché L2. | — | — | media-daemon (daemon) |
STYX_CATALOG_SVC_URL | URL de catalog-svc para el cliente Eden de la web y de @styx/clients. | http://localhost:3000 | — | @styx/clients, web |
STYX_CONTROL_ALLOWED_GIDS | GIDs (separados por comas) admitidos en el socket de control del daemon (SO_PEERCRED). | (ninguno) | — | media-daemon (daemon) |
STYX_CONTROL_ALLOWED_UIDS | UIDs (separados por comas) admitidos en el socket de control del daemon (SO_PEERCRED). | (ninguno) | — | media-daemon (daemon) |
STYX_DAEMON_NODE_ID | Id 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_ROLE | Rol 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_ROOT | Raíz de medios del plugin de demo demo-open-cinema. | — | sólo dev | plugin demo-open-cinema |
STYX_ETC | Directorio de configuración del CLI styx (styx.toml, secretos, trust.json). La opción --etc tiene prioridad. | /etc/styx | — | cli |
STYX_FUZZ_CACHE_DIR | Fuzz largo (styx-fuzz-long --target=cache_model): directorio padre, privado (0700), del anillo de L2. Sin valor, los programas corren sin L2. | — | sólo dev | native/zig/fuzz_long.zig |
STYX_HEALTH_TIMEOUT_MS | Plazo 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_URL | URL de identity-svc para styx invite (https; http sólo en loopback). La opción --api-url tiene prioridad. | — | — | cli |
STYX_INGEST_IDLE_GRACE_MS | Margen 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_LISTEN | Dirección host:puerto del listener HTTP de ingesta conduit del daemon. | 127.0.0.1:8790 | — | media-daemon (daemon) |
STYX_INGEST_MAX_FILE_MIB | Fichero 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_MIB | Espacio 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_PEERS | Borde 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_PROOF | Prueba 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_URL | URL pública del listener de ingesta que se devuelve al cliente. | — | — | media-daemon (daemon) |
STYX_INGEST_QUOTA_PER_ACTOR_MIB | Bytes que un actor puede tener guardados en la raíz de ingesta, en MiB (TS5-P2-01). | 65536 | — | playback-svc |
STYX_INGEST_ROOT | Directorio raíz de ingesta del daemon. Sin él, la ingesta está desactivada. | — | — | media-daemon (daemon) |
STYX_INGEST_ROOT_ID | Id 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_MIB | Bytes 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_ROOTS | Raíces de ingesta que catalog-svc reconoce al dar de alta subidas (id=/ruta,…). | — | — | catalog-svc |
STYX_INGEST_SESSIONS_PER_ACTOR | Sesiones 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_MIB | Espacio total de staging de subidas en curso del daemon, en MiB. | 65536 | — | media-daemon (daemon) |
STYX_INGEST_STAGING_PER_ACTOR_MIB | Espacio de staging por actor, en MiB. | 16384 | — | media-daemon (daemon) |
STYX_INGEST_TRUSTED_PROXIES | IP 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_FORMAT | Formato 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_ORIGINS | Orígenes (separados por comas) admitidos por los transportes web del daemon (WebTransport/HTTP3). | (ninguno) | — | media-daemon (daemon) |
STYX_MEDIA_CERT | Certificado 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_ENGINE | Motor de medios del daemon: zig, libav o auto (dec-0110). | auto | — | media-daemon (daemon) |
STYX_MEDIA_ENGINE_FALLBACK | Fallback 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_CERT | Certificado del listener HTTP/3 de empaquetado. | el de STYX_MEDIA_CERT | — | media-daemon (daemon) |
STYX_MEDIA_H3_KEY | Clave del listener HTTP/3. | la de STYX_MEDIA_KEY | — | media-daemon (daemon) |
STYX_MEDIA_H3_PORT | Puerto UDP del listener HTTP/3 (HLS/CMAF). | 4435 | — | media-daemon (daemon) |
STYX_MEDIA_KEY | Clave privada TLS de los listeners QUIC del daemon. | clave de desarrollo de spikes/f0b-owned-media-path | — | media-daemon (daemon) |
STYX_MEDIA_MAX_RANGE_LENGTH | Bytes 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_MS | Cada cuánto el daemon publica métricas, en ms. 0 las desactiva. | 0 | — | media-daemon (daemon) |
STYX_MEDIA_MOQT_FIXTURE | Auto-publisher MoQT de desarrollo: <rootId>/<relPath> del fichero que publica. | — | sólo dev | media-daemon (daemon) |
STYX_MEDIA_PACKAGING_HELD_MIB | Memoria retenida por empaquetados en curso, en MiB. | 768 | — | media-daemon (daemon) |
STYX_MEDIA_PACKAGING_IDLE_S | Segundos 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_MAX | Empaquetados abiertos a la vez en el daemon. | 32 | — | media-daemon (daemon) |
STYX_MEDIA_PACKAGING_WORKERS | Hilos de empaquetado del daemon. | 2 | — | media-daemon (daemon) |
STYX_MEDIA_ROOT | Raíz del adaptador local de @styx/source-sdk (anterior a STYX_MEDIA_ROOTS). | '' (sin raíz) | — | @styx/source-sdk |
STYX_MEDIA_ROOTS | Raí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. | — | obligatoria | catalog-svc, media-core (daemon), playback-svc |
STYX_MEDIA_SOCKET | Ruta 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_ADDRESS | Conexiones 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_SVC | Anuncia HTTP/3 con Alt-Svc: h3=":<puerto UDP>" en cada respuesta del origen TCP (on | off). | on | — | media-daemon (daemon) |
STYX_MEDIA_TCP_CERT | Certificado (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_S | Segundos entre lecturas del certificado del origen TCP (0 = nunca). | 30 | — | media-daemon (daemon) |
STYX_MEDIA_TCP_KEY | Clave privada (PEM) del origen TCP. | la de STYX_MEDIA_H3_KEY | — | media-daemon (daemon) |
STYX_MEDIA_TCP_MAX_PER_ADDRESS | Conexiones 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_PORT | Puerto 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_PORT | Puerto 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_TLS | TLS 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_HOST | Host del listener WebTransport del daemon. | localhost | — | media-daemon (daemon) |
STYX_MEDIA_WT_IPV6 | Familia 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_PORT | Puerto UDP del listener WebTransport. | 4433 | — | media-daemon (daemon) |
STYX_MOQT_CERT | Certificado del listener MoQT. | el de STYX_MEDIA_CERT | — | media-daemon (daemon) |
STYX_MOQT_IPV6 | Familia 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_KEY | Clave del listener MoQT. | la de STYX_MEDIA_KEY | — | media-daemon (daemon) |
STYX_MOQT_PORT | Puerto UDP del listener MoQT. | 4434 | — | media-daemon (daemon) |
STYX_NODE_ID | Id del nodo del daemon: audiencia que exige a las SCT. | styx-media-daemon | — | media-daemon (daemon) |
STYX_OPENAPI | Qué 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_URL | Origen 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_URL | URL de playback-svc para el BFF de la web. | http://localhost:3001 | — | web |
STYX_QUADLET_DIR | Directorio donde el adapter Podman Quadlet del CLI escribe sus unidades. Configurable para pruebas. | /etc/containers/systemd | sólo dev | cli |
STYX_ROOT | Raí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_KEYS | Claves 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_KEY | Semilla 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_SERVER | Servidor 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_MIN | Harness de soak de caché: activa la salida de depuración. | — | sólo dev | media-daemon (daemon) |
STYX_SOAK_HOT_SET | Harness de soak de caché: cardinalidad del conjunto de claves calientes. | 256 | sólo dev | media-daemon (daemon) |
STYX_SOAK_L1_BYTES | Harness de soak de caché: capacidad de L1 (RAM) en bytes. | 8388608 (8 MiB) | sólo dev | media-daemon (daemon) |
STYX_SOAK_L2_BYTES | Harness de soak de caché: capacidad de L2 (NVMe) en bytes. | 67108864 (64 MiB) | sólo dev | media-daemon (daemon) |
STYX_SOAK_RING_DIR | Harness de soak de caché: directorio del anillo L2. | — | sólo dev | media-daemon (daemon) |
STYX_SOAK_SECONDS | Harness de soak de caché: duración total de la ejecución en segundos. | 30 | sólo dev | media-daemon (daemon) |
STYX_SOAK_SEED | Harness de soak de caché: semilla del PRNG. | 0xCAFE_F00D_DEAD_BEEF | sólo dev | media-daemon (daemon) |
STYX_SOAK_VAL_BYTES | Harness de soak de caché: tamaño en bytes de cada valor que se inserta. | 4096 | sólo dev | media-daemon (daemon) |
STYX_STATE | Directorio de estado del CLI styx (state.json, datos, copias). La opción --state tiene prioridad. | /var/lib/styx | — | cli |
STYX_SYSTEMD_UNIT_DIR | Directorio donde los adapters systemd nativo y Quadlet del CLI instalan las unidades de systemd. Configurable para pruebas. | /etc/systemd/system | sólo dev | cli |
STYX_SYSUSERS_FILE | Fichero sysusers.d donde el adapter systemd nativo del CLI declara los usuarios de cada servicio. Configurable para pruebas. | /etc/sysusers.d/styx.conf | sólo dev | cli |
STYX_TOKEN | API 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_FILE | Ruta 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_CLIENTS | true si la web recibe a los clientes sin proxy delante. | — | — | web |
STYX_WEB_IMAGE_ORIGINS | Orígenes extra de imágenes que admite la CSP de la web. | — | — | web |
STYX_WEB_MEDIA_ORIGINS | Orígenes extra de medios que admite la CSP de la web. | — | — | web |
STYX_WEB_ORIGINS | Orígenes propios de la web (comprobación de origen del BFF). | — | — | web |
STYX_WEB_PROXY_PROOF | Prueba 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_PROXIES | IPs o CIDR de los proxies de confianza delante de la web. En producción exige STYX_WEB_PROXY_PROOF. | — | — | web |
TELEMETRY_PSEUDONYM_KEY | Clave 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_PASSWORD | Contraseñ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_URL | URL de Valkey (sin contraseña). | — | obligatoria | catalog-svc, identity-svc, playback-svc, realtime-svc, sources-svc, web, workers-svc |
VITE_CATALOG_SVC_URL | URL 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_HOME | Base (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_HOME | Directorio 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) |