Add a packaged-client runtime boundary so the shared UI can talk to local, desktop, remote, and VS Code runtimes through the right transport instead of assuming one same-origin web server. Centralize OpenChamber-owned API access behind RuntimeAPIs, runtimeFetch, and runtime URL helpers, while keeping official OpenCode traffic on the SDK path. Support runtime switching, remote host selection, desktop client credentials, and headless connection links for pairing packaged clients with remote OpenChamber servers. Harden the new auth model by moving long-lived client tokens out of browser URLs, introducing short-lived scoped URL tokens for browser-owned transports, restricting URL-token access to explicit readable/realtime routes, and making client-token management session-scoped or self-scoped as appropriate. Update browser-owned assets and preview proxy flows to work with the split runtime model, including authenticated project icons, preview token propagation, CSP-safe preview bridge injection, and preview proxy auth that survives short-lived URL-token expiry. Tighten Electron security boundaries for packaged clients by gating privileged preload state to trusted origins and requiring explicit confirmation before connect deep-links import or switch remote runtimes. Also refresh agent guidance and project skills so future runtime/API, auth, preview, UI, CLI, settings, locale, and drag-to-reorder work follows the new architecture.
98 lines
4.0 KiB
Plaintext
98 lines
4.0 KiB
Plaintext
---
|
|
title: OpenCode Server
|
|
description: Conecta OpenChamber a un servidor de OpenCode local o remoto.
|
|
---
|
|
|
|
# OpenCode Server
|
|
|
|
OpenChamber se ejecuta sobre un servidor de OpenCode. De forma predeterminada inicia uno por ti, así que no tienes que hacer nada. Solo necesitas esta página si quieres apuntar OpenChamber a un servidor que ya ejecutas, o gestionar el que él inicia.
|
|
|
|
## Cómo encuentra OpenChamber un servidor
|
|
|
|
Cuando OpenChamber arranca, busca un servidor en este orden:
|
|
|
|
1. reutilizar un servidor que ya inició
|
|
2. conectarse a uno externo si se lo indicaste (ver más abajo)
|
|
3. detectar automáticamente un servidor en el puerto predeterminado (`4096`)
|
|
4. de lo contrario, iniciar y gestionar el suyo propio
|
|
|
|
Si no hay nada configurado, el paso 4 ocurre automáticamente y ya tienes todo en marcha.
|
|
|
|
## Conéctate a un servidor que ya ejecutas
|
|
|
|
Define esto antes de iniciar OpenChamber:
|
|
|
|
```bash
|
|
OPENCODE_HOST=http://localhost:4096 OPENCODE_SKIP_START=true openchamber
|
|
```
|
|
|
|
- `OPENCODE_HOST` — la dirección completa de tu servidor de OpenCode, incluido el puerto (un valor como `http://localhost:4096`). No debe tener una ruta al final.
|
|
- `OPENCODE_SKIP_START=true` — le indica a OpenChamber que no inicie su propio servidor.
|
|
|
|
Si solo necesitas cambiar el puerto, define `OPENCODE_PORT` en lugar de `OPENCODE_HOST`.
|
|
|
|
Si a `OPENCODE_HOST` le falta el puerto o tiene una ruta, OpenChamber lo ignora y recurre a iniciar su propio servidor. Observa los registros de arranque por si aparece una advertencia `[config]` cuando una conexión que esperabas no ocurrió.
|
|
|
|
## Gestiona el servidor desde la CLI
|
|
|
|
```bash
|
|
openchamber status
|
|
openchamber logs
|
|
openchamber restart
|
|
openchamber stop
|
|
```
|
|
|
|
`openchamber` por sí solo inicia el servidor en segundo plano. Añade `--foreground` para mantenerlo asociado a tu terminal.
|
|
|
|
## Iniciar OpenChamber al iniciar sesión
|
|
|
|
Usa `startup enable` para instalar un servicio nativo de usuario. OpenChamber usa `launchd` en macOS, `systemd --user` en Linux y Task Scheduler en Windows.
|
|
|
|
```bash
|
|
openchamber startup enable
|
|
openchamber startup status
|
|
openchamber startup disable
|
|
```
|
|
|
|
Para proteger la UI, define la contraseña al habilitar el servicio:
|
|
|
|
```bash
|
|
OPENCHAMBER_UI_PASSWORD='secret' openchamber startup enable
|
|
```
|
|
|
|
Para un servidor headless que arranca al iniciar sesión y se usa desde apps de escritorio o móviles, añade `--api-only` y un host alcanzable:
|
|
|
|
```bash
|
|
openchamber startup enable --port 3000 --api-only --host 0.0.0.0 --ui-password secret
|
|
```
|
|
|
|
`startup enable` guarda una captura del entorno actual en el servicio para que el arranque se parezca más a ejecutar `openchamber` desde la misma shell. Así conserva tokens de proveedores, `PATH`, configuración del agente SSH y otras variables CLI de auth/config. Usa `--no-env-snapshot` si quieres un entorno de servicio mínimo.
|
|
|
|
El servicio de inicio recuerda `--port`, `--host`, `--ui-password` y `--api-only`. El reinicio por CLI y el reinicio durante una actualización reutilizan esos ajustes guardados.
|
|
|
|
Para crear un enlace de conexión para otra app de OpenChamber, usa:
|
|
|
|
```bash
|
|
openchamber connect-url --port 3000 --server http://your-host:3000 --qr
|
|
```
|
|
|
|
Ejecuta `openchamber connect-url --help` para ver todas las opciones del enlace, incluidas `--name`, `--lan`, `--server`, `--api-only`, `--ui-password` y `--qr`.
|
|
|
|
Puedes gestionar túneles de forma independiente para ese servicio en ejecución:
|
|
|
|
```bash
|
|
openchamber tunnel start --port 3000
|
|
openchamber tunnel stop --port 3000
|
|
```
|
|
|
|
Detener el túnel no reinicia el servicio ni la app.
|
|
|
|
## "OpenCode is restarting"
|
|
|
|
Mientras el servidor se inicia o reinicia, OpenChamber muestra un estado "OpenCode is restarting" y pausa las solicitudes hasta que esté listo. Esto es normal justo después de iniciar o reiniciar. Si nunca desaparece, consulta [Conexión de OpenCode](/es/troubleshooting/opencode-connection/).
|
|
|
|
## Relacionado
|
|
|
|
- [Proveedores, modelos y agentes](/es/providers/) — configura con qué se comunica el servidor
|
|
- [Conexión de OpenCode](/es/troubleshooting/opencode-connection/) — si no se conecta
|