Explicacion

Modo público y Styx como plataforma

Cómo un servidor Styx se abre a la web pública (registro, acceso sin cuenta, quién ve, descarga, sube, edita y modera) y qué piezas de Styx puedes usar para construir lo tuyo encima.

Especificado. Esta página describe el comportamiento objetivo. El diseño está en dec-0130 (PROPOSED) y todavía no hay código. Lo que dice obliga a la implementación. Los nodos que lo construirán están propuestos en dec-0130 §15 (P10) y no existen aún en el roadmap.

Dos ideas en una

  1. Modo público: el mismo servidor Styx, configurado para una web abierta o semiabierta. Gente que no conoces se registra (o no), mira un catálogo, lo reproduce, lo descarga, y algunos suben o editan.
  2. Styx como plataforma: las piezas buenas de Styx (la API, el SDK, el player, los componentes de UI, los SDKs de plugins, el CLI) se publican y se documentan para que puedas construir tu propia app encima sin tener que hacer un fork.

Las dos van juntas porque la primera necesita la segunda: el frontend del modo público es una plantilla que sólo usa piezas públicas.

El modo es configuración

No hay un "Styx público" aparte. Es el mismo artefacto con STYX_MODE=public, que cambia los valores por defecto de cinco ajustes. Cada uno se puede cambiar por separado, por la web, la API o el CLI.

AjusteValoresPrivado (default)Público (preset)
Registroclosed, invite, approval, openinviteapproval
Acceso sin cuentaoff, browse, play, downloadoffbrowse
Visibilidad (por biblioteca)private, unlisted, publicprivateprivate
Entrega (por biblioteca)stream, download, bothbothstream
Moderaciónoff, onoffon, obligatoria

Un servidor con registro open o con acceso sin cuenta no arranca si le falta la moderación, el contacto de abuso (STYX_ABUSE_CONTACT) o las cuotas para anónimos.

Registro y acceso sin cuenta

Son dos cosas distintas:

  • Registro dice quién puede tener cuenta:
    • closed: sólo las crea un admin.
    • invite: con invitación (ver Invitaciones).
    • approval: cualquiera la pide, con un motivo, y un admin o moderador la aprueba.
    • open: cualquiera, al momento, con un periodo de prueba.
  • Acceso sin cuenta dice qué puede hacer alguien que no ha entrado: nada, ver el catálogo, reproducir o descargar.

Así, "sin registro" puede ser un catálogo que nadie puede editar pero todos ven (closed + play), o una comunidad donde mirar es libre y participar pide aprobación (approval + browse).

El inicio de sesión sigue siendo sin contraseña, con passkeys contra un proveedor OIDC (ver Iniciar sesión). Contra los bots, un reto de prueba de trabajo en el navegador, sin CAPTCHAs de terceros. Una invitación entra siempre, sea cual sea la política.

Quien entra sin cuenta no tiene historial ni perfil en el servidor. Si la web recuerda por dónde ibas, lo guarda tu navegador.

Quién ve, descarga, sube, edita y modera

Los permisos no son roles nuevos del servidor: son niveles de la concesión de cada biblioteca, de menos a más:

NivelPuede
viewver el catálogo y reproducir
downloadademás, descargar
uploadademás, subir ficheros a esa biblioteca
editademás, editar metadatos y artwork
moderateademás, resolver denuncias, ocultar, retirar, suspender

La vía por la que entraste decide tu nivel inicial:

  • sin cuenta: lo que diga el acceso sin cuenta, y sólo en bibliotecas públicas;
  • registro open o approval: view en las bibliotecas abiertas a registrados;
  • invitación o admin: el nivel que te den, que puede ser upload, edit o moderate.

Ninguna vía automática da permiso para subir. Subir y editar en un servidor abierto se da a personas concretas.

Una biblioteca es pública si está concedida a cualquiera, oculta (unlisted) si sólo se llega por enlace directo, y privada si no. Y cada biblioteca dice si se reproduce, se descarga o las dos cosas. Cuando pides una descarga en un formato que el fichero no tiene, el servidor lo genera al vuelo. Sin cuenta sólo se descargan las variantes que ya existen, porque generarlas cuesta CPU.

Moderación y retirada

En modo público la moderación no se puede apagar:

  • Cuarentena: lo que sube una cuenta nueva no lo ve nadie más hasta que un moderador lo publica.
  • Denuncias: cualquiera, también sin cuenta, puede denunciar algo. Para derechos de autor, el formulario pide los datos de un aviso completo.
  • Acciones con motivo: ocultar, retirar, restaurar o suspender lleva siempre una explicación que el afectado ve, con cómo recurrir. Todo queda en el registro de auditoría.
  • Retirada en un paso: deja de servirse por todos los caminos y corta las reproducciones en curso, desde la web, la API o styx moderation takedown. Lo retirado se conserva un tiempo configurable sin servirse y después se borra.
  • Reincidencia: un contador de retiradas confirmadas por cuenta, con suspensión al llegar al umbral que fijes.
  • Cuotas: de subida total y diaria por cuenta, de cómputo para generar formatos al vuelo y de tráfico para quien no tiene cuenta.

Styx te da los mecanismos. Cumplir la ley es cosa de quien opera el servidor: el contacto de abuso, las normas de la comunidad, el agente DMCA si aplica, los plazos de la DSA y de las órdenes de retirada de la UE.

Construir sobre Styx

Lo que se publica, cada pieza con su versión propia:

PiezaPara qué
API HTTP + OpenAPIhablar con un servidor Styx desde cualquier lenguaje
@styx/sdkcliente TypeScript tipado, generado del contrato
@styx/plugin-sdk, @styx/source-sdkescribir plugins y fuentes
@styx/playerreproducir sesiones de Styx con tu player o con el nuestro
@styx/uilos componentes visuales de Styx
CLI styxtodo lo de la API, con --json para scripts y agentes
conduit, spiresubidas/descargas reanudables y mensajería, en sus repos

Cada símbolo lleva una etiqueta de estabilidad:

  • @public: contrato; no cambia de forma incompatible sin subir la versión mayor (la menor mientras sea 0.x).
  • @beta: estable en intención; puede cambiar con aviso.
  • @alpha: para probar; puede cambiar sin aviso.
  • @internal: no lo uses.

Todo empieza en @alpha o @beta y se promueve a @public cuando lo usa algo real. Las operaciones de la API que se retiran avisan con las cabeceras Deprecation y Sunset antes de desaparecer.

La plantilla de frontend público es una app que sólo puede usar estas piezas. Si la plantilla funciona, tú puedes hacer lo mismo: copiarla, cambiarla, o ignorarla y usar sólo la API.

Lo que no cambia

  • Sigue siendo un servidor, un owner y un catálogo. Varias comunidades son varios servidores.
  • El modelo del catálogo y el de cuentas son los mismos que en un servidor privado.
  • El navegador nunca tiene tokens; la web habla con su propio backend.
  • Los bytes de vídeo los sirve el daemon, con las mismas credenciales de un solo uso de siempre.