> ## Documentation Index
> Fetch the complete documentation index at: https://docs.basaltic.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Acceso a consola

> La transcripción de arranque, una captura de pantalla y una sesión serial interactiva para cuando la red se haya ido.

Tres puntos finales, para tres situaciones diferentes, y cada uno requiere su propia acción de IAM: leer un registro de inicio, tomar una foto de la pantalla y sostener un teclado dentro del invitado no son deliberadamente la misma concesión.

<Tabs>
  <Tab title="Console">
    **Connect** en el encabezado de la instancia ofrece tres rutas: **SSH** — *Desde su terminal*, que ensambla el comando por usted — **Serial** — *Consola de texto en el navegador* — y **Screenshot** — *Consola gráfica*.

    <Warning>
      La transcripción de arranque no tiene control de consola. Nada en la consola web lee la salida de la consola; **Serial** adjunta una sesión en vivo, y eso necesita que la instancia se esté ejecutando. Para un invitado que falló en el camino hacia arriba —el caso para el que existe la transcripción—, leerlo es solo API.
    </Warning>
  </Tab>

  <Tab title="API">
    ```bash theme={null}
    GET /v1/instances/{instance_id}/console/output
    GET /v1/instances/{instance_id}/console/screenshot
    GET /v1/instances/{instance_id}/console/serial
    ```
  </Tab>

  <Tab title="CLI">
    ```bash theme={null}
    basaltic compute instance console-output <instance-id> --max-bytes 65536
    basaltic compute instance console-screenshot <instance-id>
    basaltic compute instance serial-console <instance-id>
    ```

    `serial-console` abre la sesión interactiva; la CLI establece sus propias cabeceras, por lo que no necesita ningún ticket.
  </Tab>

  <Tab title="Go">
    ```go theme={null}
    out, err := compute.New(cfg).GetConsoleOutput(ctx, instanceID, nil)
    ```

    La consola serie es un WebSocket en lugar de una solicitud, por lo que el SDK no la envuelve; use la CLI o la consola.
  </Tab>
</Tabs>

<AccordionGroup>
  <Accordion title="Salida de la consola — la transcripción de arranque" icon="scroll-text">
    `GET /v1/instances/{instance_id}/console/output` devuelve lo que el invitado escribió en su consola serie durante su **arranque actual**: un fstab malo, un kernel incorrecto, un fallo de cloud-init. No hay que instalar nada en el invitado y funciona en una instancia detenida, que es exactamente cuando lo necesita.

    `max_bytes` es un límite que puede bajar, no subir: el máximo es 65536 y los valores más grandes se sujetan a él. Cuando la transcripción es más larga de lo que usted pidió, su **principio** se elimina y `truncated` es `true`. El final siempre se mantiene.

    La transcripción se reinicia en cada inicio, por lo que la última transcripción de un invitado que se ha bloqueado desaparece una vez que se reinicia — léala antes de reiniciar. Una instancia que nunca se ha iniciado devuelve una salida vacía, no un error.

    Requiere `compute:GetConsoleOutput`.
  </Accordion>

  <Accordion title="Captura de pantalla — lo que muestra la pantalla" icon="image">
    `GET /v1/instances/{instance_id}/console/screenshot` devuelve una imagen fija, normalmente `image/png`.

    Esta es la contraparte de todo lo que una transcripción en serie no puede alcanzar: un invitado sentado en su gestor de arranque, en un prompt de GRUB, en pánico antes de la inicialización en serie, o arrancado desde una imagen cuyo núcleo nunca se le dijo que se conectara al puerto serie. En estos casos, la transcripción está vacía y la pantalla contiene toda la respuesta.

    Un estado fijo, no una sesión: no hay escritorio remoto. La instancia debe estar en ejecución; una detenida no tiene pantalla para capturar y responde `409` en lugar de un marco en blanco.

    Requiere `compute:GetConsoleScreenshot`.
  </Accordion>

  <Accordion title="Consola serie — una sesión interactiva" icon="terminal">
    `GET /v1/instances/{instance_id}/console/serial` actualiza a un WebSocket que lleva una sesión interactiva en el puerto serie de la instancia. Esta es la manera de entrar cuando la red está rota: un kernel equivocado, un disco lleno, un grupo de seguridad que te bloqueó.

    Bytes sin procesar en tramas binarias, en ambas direcciones. Es un terminal, no un protocolo — apunta un emulador de terminal hacia él. La autenticación se basa en la solicitud de actualización, firmada como cualquier otra llamada, por lo que no hay un paso de token separado. Una solicitud que no sea WebSocket responde `426`.

    `backlog_bytes` reproduce la salida ya escrita antes de que comience la salida en vivo, por lo que conectarse a un invitado silencioso muestra por qué está silencioso en lugar de una pantalla vacía. Por defecto 32768, máximo 65536, `0` lo deshabilita. La repetición es la cola de la misma grabación que sirve `/console/output`, y la sesión en vivo es el puerto serie del invitado, por lo que la unión está marcada con una línea `\r\n--- live ---\r\n`: historia encima, la consola en vivo debajo. Un invitado que imprime en el instante en que se conecta puede perder unos bytes en esa línea; un invitado silencioso — para el que existe la repetición de casos — se reproduce exactamente.

    **Una sesión por instancia:** Al abrir una segunda sesión se desconecta la primera, en lugar de intercalar las pulsaciones de teclas de dos personas. Una sesión termina después de 15 minutos de inactividad, o 4 horas independientemente, y el marco de cierre dice cuál.

    Requiere `compute:StartSerialConsole`, y la instancia que se va a ejecutar.

    <Note>
      Esto te llevará al propio prompt de inicio de sesión del invitado. No es una puerta trasera — las credenciales del invitado siguen siendo necesarias, y nada aquí otorga acceso más allá de lo que el invitado mismo permite.
    </Note>
  </Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.