Saltar al contenido
CADCAMFUN
Documentos

Documentación

Configuración de tiempo de ejecución

Elija el proceso, el directorio de datos, el tipo de credencial y la configuración de integración que realmente controlan cada tiempo de ejecución.

Traducido automáticamente del inglés. Ver el original en inglés

Propietarios de configuración

El sidecar lee la configuración del entorno a través de AppConfigService en apps/sidecar/src/config.ts. Una capa lee esos valores cuando se construye y pasa un valor de AppConfig a los servicios que lo necesitan. Cambiar una variable de shell principal no muta un servicio que ya se está ejecutando.

Tauri proporciona su propio token de lanzamiento y rutas de migración/datos de aplicación al iniciar el niño. La vista previa del navegador utiliza variables de conexión del lado de Vite. El móvil almacena una conexión de escritorio emparejada y las credenciales del dispositivo. El sitio de documentación tiene enlaces de trabajador separados y un proceso de estudio local independiente. No comparten un archivo de configuración universal.

Configure el propietario del comportamiento que desea cambiar. Por ejemplo, configurar la URL de migración de CLI no redirige la base de datos del escritorio nativo y configurar el asistente de documentación no proporciona las credenciales del proveedor de IA del escritorio.

Iniciar un sidecar aislado

Terminal interactivo en la raíz del repositorio
CADCAMFUN_TOKEN=local-development-token \
CADCAMFUN_DATA_DIR=/tmp/cadcamfun-config-example \
CADCAMFUN_MIGRATIONS_DIR="$PWD/packages/db/drizzle" \
CADCAMFUN_AI_HOST=direct \
CADCAMFUN_AI_OFFLINE=1 \
bun --no-env-file apps/sidecar/src/main.ts

Esto utiliza un directorio desechable y un token de desarrollo de ejemplo. Elija un token apropiado para su propio proceso. El servidor vincula el loopback en un puerto asignado; lea ese puerto desde su evento listo. Mantenga stdin abierto porque cerrarlo indica apagado. El comando pasa deliberadamente la configuración de forma explícita y desactiva la carga automática de archivos del entorno de Bun.

Para el bucle nativo normal, utilice bun run desktop:dev. Prepara el binario sidecar y las migraciones antes de lanzar Tauri, que posee la conexión del proceso resultante. No inicie un segundo sidecar manual y asuma que la vista web nativa se adjuntará a él.

Configuración de conexión y almacenamiento requerida

ConfiguraciónPor defectoComportamiento
CADCAMFUN_TOKENRequeridoCredencial de portador de aplicación redactada para rutas API locales protegidas.
CADCAMFUN_DATA_DIRRequeridoRaíz del estado local gestionado por sidecar. La base de datos es cadcamfun.db debajo de él.
CADCAMFUN_MIGRATIONS_DIRAusenteDirectorio de migración pasado a la capa de base de datos. Sin él, abrir la base de datos no crea ni actualiza las tablas de la aplicación.
CADCAMFUN_APP_URLAusente en la configuraciónURL base proporcionada a las integraciones de enlaces de cuentas. El servicio correspondiente decide su alternativa.
CADCAMFUN_DEBUG_LINKSFALSOHabilita campos de respuesta de desarrollo para enlaces de cuentas en controladores que los admiten.

El directorio de datos es una raíz de almacenamiento, no una dirección de enlace HTTP. El oyente del servidor principal está fijado en 127.0.0.1 con un puerto efímero. Las redes complementarias utilizan su propia puerta de enlace HTTPS habilitada explícitamente; cambiar una configuración de URL no hace que el oyente de bucle invertido sea público.

Mantenga el directorio de migración configurado alineado con el binario. El inicio puede fallar antes de estar listo cuando no se puede planificar, realizar una copia de seguridad o aplicar una migración. La referencia de la base de datos explica el comportamiento de las transacciones y las copias de seguridad; una tabla que falta después de omitir migraciones es un problema de configuración más que una prueba de que el proyecto fue eliminado.

El token de la aplicación se lee como un valor redactado y nunca aparece en los registros de configuración. Cada configuración en esta página se lee una vez, en apps/sidecar/src/config.ts; un valor modificado entra en vigor sólo después de que se reinicia el sidecar.

Host de IA y conectividad

ConfiguraciónPor defectoComportamiento
CADCAMFUN_AI_HOSTnikcliSeleccionar nikcli o direct. El host directo no agrega el bucle de herramientas persistentes integrado ni el programador especializado.
CADCAMFUN_AI_OFFLINEFALSODeshabilita la carga del catálogo de proveedores de red y el controlador de búsqueda web en vivo. No es una implementación de modelo local.
CADCAMFUN_AI_MINIMAX_BASE_URLAusenteAnulación de punto final recortado opcional para la configuración MiniMax integrada.

Las claves de proveedor son administradas por la API de credenciales y persistidas por el servicio de IA en <dataDir>/ai/credentials.json. No se obtienen inventando una variable de entorno no documentada para cada proveedor. Utilice los puntos finales de estado del proveedor/modelo para establecer qué está configurado y el guía de IA para enrutamiento de modelo directo compatible.

El modo sin conexión no convierte una llamada del proveedor de la nube en una respuesta sin conexión. Un modelo integrado o directo configurado aún puede requerir la conexión de su proveedor para realizar inferencias. El producto local primero conserva proyectos locales sin una conexión modelo; esa propiedad de almacenamiento es distinta de la inferencia de IA fuera de línea.

La política del operador se carga desde <dataDir>/ai/policy.json. El host integrado aísla sus propios directorios de trabajo/configuración debajo del almacenamiento de IA de la aplicación. La política, las credenciales, el contexto de la sesión y el caché del catálogo de proveedores tienen diferentes propósitos; copiar un archivo no reconstruye todo el tiempo de ejecución de una conversación.

Integraciones de cuentas y facturación

ConfiguraciónUsarcuando está ausente
STRIPE_SECRET_KEYAutenticación API de Stripe saliente.El pago pagado y la integración del portal de facturación no están disponibles.
STRIPE_WEBHOOK_SECRETVerifique las cargas útiles del webhook de Stripe firmadas.El controlador del webhook rechaza la ingesta sin una configuración de verificación.
STRIPE_PRICE_BASIC, STRIPE_PRICE_PRO, STRIPE_PRICE_ENTERPRISEIdentificadores de precios para planes pagos. Los valores en blanco se ignoran.Una asignación faltante no puede identificar un precio de pago configurado para ese plan.
CRON_SECRETCredencial compartida adicional para mantenimiento cron.Ese guardia no requiere ningún secreto cron adicional; la admisión del portador de la solicitud aún se aplica.
ADMIN_EMAILIdentidad del administrador utilizada por la política de cuenta/servicio.El perfil de la instalación local conserva el comportamiento administrativo local implementado por sus servicios.

Estos ajustes configuran las integraciones; no establecen que exista una cuenta remota, un precio, una suscripción o una entrega de webhook. Verifique la falla real de la operación y el estado del servicio en ejecución. No infiera que la presencia de una tabla significa que la función alojada relacionada está completamente configurada.

La interfaz AppConfig también contiene ganchos de inyección de prueba, como una fábrica de modelos de reemplazo y una base API de Stripe. No son variables de entorno leídas por esta capa de configuración de producción. Mantenga los enlaces de prueba fuera de las instrucciones de implementación a menos que el host en ejecución los exponga explícitamente.

La ruta de prueba de facturación comienza un 14 día PRO ensayo (TRIAL_DAYS en apps/sidecar/src/repos/billing-repo.ts, utilizado por http/billing.ts). Los planes disponibles son FREE, BASIC, PRO, y ENTERPRISE; sólo los tres planes pagos toman un STRIPE_PRICE_* configuración.

Registros y telemetría

OTEL_EXPORTER_OTLP_ENDPOINT habilita los exportadores de registros, métricas y rastreos OTLP/HTTP del sidecar. Sin un punto final que no esté en blanco, esta capa de telemetría opcional está deshabilitada. El código del exportador construye los puntos finales específicos de la señal; configurar un recopilador que admita esas señales.

El registro normal de sidecar es independiente de la exportación de telemetría. Stdout lleva el protocolo de error/preparación JSON consumido por el shell, mientras que los registros se dirigen a stderr. Al diagnosticar el inicio, conserve el primer error relevante y su contexto de operación en lugar de esperar que la ventana de la aplicación contenga todos los detalles de la inicialización.

No incluya tokens de inicio, claves de proveedor, tokens de sesión ni archivos de credenciales completos en los paquetes de diagnóstico. Las rutas de origen, el método/estado, los ID de los puntos finales, los ID de los proyectos no secretos y la operación fallida de la base de datos suelen proporcionar un punto de partida más seguro y útil.

Configuración del cliente

Una vista previa de escritorio solo para navegador utiliza la API en memoria falsa cuando VITE_SIDECAR_URL está ausente. Para conectarlo a un sidecar iniciado manualmente, configure esa URL y VITE_SIDECAR_TOKEN antes de iniciar Vite. En su lugar, la ruta Tauri empaquetada obtiene su conexión del shell.

Navegador que utiliza el sidecar iniciado manualmente
VITE_SIDECAR_URL=http://127.0.0.1:READY_PORT \
VITE_SIDECAR_TOKEN=local-development-token \
bun run --filter @cadcamfun/desktop dev

Reemplace el marcador de posición del puerto. La configuración de Vite pertenece al proceso de desarrollo del frontend; cambiarlos no reinicia ni reconfigura el sidecar. El acceso al navegador está sujeto a la política de loopback/Tauri CORS del sidecar y a la admisión normal del portador.

El emparejamiento móvil almacena su dirección de escritorio, huella digital del certificado y token del dispositivo a través de la aplicación móvil. Cambiar el token de inicio del escritorio no es una forma normal de emparejar un teléfono. Utilice el procedimiento de emparejamiento y revocar dispositivos individuales cuando sea necesario.

Selección de ruta de base de datos

ProcesoRegla de selección
Sidecar de escritorio nativoDirectorio de datos de aplicaciones proporcionado por Tauri, luego cadcamfun.db.
sidecar manualCADCAMFUN_DATA_DIR/cadcamfun.db.
CLI de migración de base de datosDATABASE_URL, eliminando una inicial file:; de lo contrario, relativo al proceso ./data/cadcamfun.db.
Raíz db:migrate envolturaEjecuta el script del paquete DB, por lo que el valor predeterminado se resuelve dentro packages/db.
Estudio de documentaciónCADCAMFUN_DB, entonces DATABASE_URL, luego raíz del repositorio data/cadcamfun.db. El archivo debe existir.

Por lo tanto, una lista de proyectos vacía puede significar que abrió otra base de datos válida. Registre el proceso y la ruta absoluta seleccionada antes de cambiar migraciones o copiar datos. Una sesión de cuenta también puede cambiar qué recursos son visibles sin cambiar el archivo.

Aplicar y verificar un cambio

  1. Identifique el proceso propietario y la ruta de almacenamiento actual. Conserve los datos necesarios antes de cambiar el almacenamiento o las migraciones.
  2. Detenga ese proceso limpiamente y actualice su configuración de inicio explícita o configuración nativa.
  3. Inícielo de nuevo y espere el resultado de preparación real. Resuelva la nueva conexión en lugar de reutilizar un puerto antiguo.
  4. Consulta una llamada de salud pública y una llamada protegida admitida.
  5. Verifique el comportamiento específico: aparece el proyecto deseado, el estado del proveedor cambia, la puerta de enlace se vuelve accesible o el recopilador de telemetría configurado recibe la señal esperada.

La presencia de un valor configurado no es lo mismo que una integración externa funcional. Lea el resultado del servicio después de realizar un cambio. Los valores de configuración predeterminados deben distinguirse de los valores opcionales para los cuales el servicio receptor decide su respaldo.

Diagnóstico de configuración

Si la inicialización falla antes de estar listo, inspeccione la configuración requerida, la disponibilidad de la migración, el acceso al directorio y el error de construcción de la primera capa. Si el estado tiene éxito pero falla una llamada protegida, verifique el tipo de token y el proceso actual. Si un proveedor falla mientras los proyectos funcionan, inspeccione la configuración de AI en lugar de restablecer la base de datos.

Si Studio no está disponible en el sitio alojado, su API de producción devuelve intencionalmente 503; inicie su proceso Bun local contra el archivo existente seleccionado. Si el asistente de documentación no está disponible, inspeccione los enlaces del trabajador o su backend nikcli configurado. Ninguno de los diagnósticos requiere reemplazar las credenciales del escritorio.

Fuente de evidencia: apps/sidecar/src/config.ts, layers.ts, main.ts, observability.ts, services/ai.ts, packages/db/src/migrate.ts, y packages/web/script/studio-server.ts.

Cada configuración de sidecar en una mesa

AppConfigService es el único lugar del sidecar que lee el entorno. La tabla enumera cada variable que lee, en el orden en que las lee. Los valores opcionales que están vacíos o con espacios en blanco se tratan como ausentes cuando se indique lo contrario.
VariableTipoPor defectoUtilizado por
CADCAMFUN_TOKENcadena redactadarequeridoMiddleware portador para cada ruta protegida
CADCAMFUN_DATA_DIRcadenarequeridoBase de datos, almacenamiento de IA, complementos, complemento, cargas
CADCAMFUN_MIGRATIONS_DIRcadenaausenteCapa de base de datos; ausente significa que no se crea ningún esquema
CADCAMFUN_APP_URLcadenaausenteEnlaces en los correos electrónicos de cuentas (el legado NEXTAUTH_URL)
CADCAMFUN_DEBUG_LINKSbooleanofalseRestablecimiento de eco y enlaces mágicos en las respuestas (solo desarrollo)
CADCAMFUN_AI_OFFLINEbooleanofalseSin descarga del catálogo de proveedores ni búsqueda web en vivo
CADCAMFUN_AI_HOSTnikcli | directnikcliAnfitrión asistente; cualquier otro valor falla al iniciar
CADCAMFUN_AI_MINIMAX_BASE_URLcuerda, recortadaausentePunto final MiniMax para el host integrado
STRIPE_WEBHOOK_SECRETcadenaausenteSin él, los webhooks de Stripe se rechazan
STRIPE_SECRET_KEYcadena redactadaausenteSin él, el pago pago y el portal de facturación no están disponibles
STRIPE_PRICE_BASIC, _PRO, _ENTERPRISEcuerda, recortadaausenteID de precio por plan pago; los valores en blanco se ignoran
CRON_SECRETcadenaausentesecreto compartido para /api/cron/*; sin él, la ruta está abierta a la aplicación local.
ADMIN_EMAILcadenaausenteCorreo electrónico del administrador; por defecto el perfil local administra su propia instalación
OTEL_EXPORTER_OTLP_ENDPOINTcuerda, recortadaausenteURL base del recopilador OTLP/HTTP; la telemetría está apagada sin ella

La aplicación reportada version está arreglado en el código (6.0.0), no leer del entorno.

Los valores no válidos detienen el inicio

Una variable requerida que falta o un valor que no se analiza (por ejemplo CADCAMFUN_AI_HOST=local), falla la capa de configuración. Luego, el sidecar imprime un error en lugar de su línea de listo y el escritorio informa el error de inicio.

Variables leídas fuera de la configuración del sidecar

VariableLectorObjetivo
DATABASE_URLpackages/db migrar script y llovizna-kitObjetivo para db:migrate / db:generate; un líder file: está despojado. Por defecto ./data/cadcamfun.db relativo a packages/db.
CADCAMFUN_DB, entonces DATABASE_URLServidor Web Studio (packages/web/script/studio-server.ts)Se abre la base de datos del estudio local; por defecto data/cadcamfun.db en la raíz del repositorio.
NIKCLI_LOCALE, NIKCLI_LANGUAGE, NIKCLI_REGIONAnfitrión asistente integradoAnula el idioma y la región del asistente.
LC_ALL, LC_MESSAGES, LANG, LANGUAGE, TZAnfitrión asistente integradoDetección de zona horaria y configuración regional del sistema cuando no se establece ninguna anulación.

El shell del escritorio pasa exactamente tres variables al sidecar que inicia: CADCAMFUN_TOKEN (un nuevo token aleatorio por lanzamiento), CADCAMFUN_DATA_DIR (el directorio de datos de la aplicación) y CADCAMFUN_MIGRATIONS_DIR (las migraciones agrupadas). Cualquier otra cosa debe estar presente en el entorno con el que se inició la aplicación de escritorio.

¿Qué vive en el directorio de datos?

<CADCAMFUN_DATA_DIR>/
cadcamfun.db            SQLite database (+ -wal / -shm while running)
backups/                pre-migration snapshots, newest five kept
auth-secret             signing secret for account session tokens (0600)
auth-revoked.json       revoked session tokens
ai/
  credentials.json      provider API keys (owner-readable only)
  policy.json           operator policy for the assistant
  skills/               user skills
  session-owners/       which account owns which assistant session
  nikcli/               isolated working and config dirs of the embedded host
plugins/                assistant plugins loaded at startup
plugins-registry/       installed marketplace plugin files
companion/              gateway TLS cert.pem and key.pem (0600)
storage/                file storage for library import/export, entity I/O and plugins
uploads/profiles/       profile pictures
downloads/              files served by /api/download
waitlist.json           local waitlist entries

Los directorios se crean en el primer uso, por lo que una nueva instalación contiene sólo aquellos que sus funciones han tocado. Haga una copia de seguridad de todo el directorio con la aplicación detenida: la base de datos, las credenciales, el secreto de autenticación y las claves complementarias van juntas. Los dispositivos complementarios emparejados se almacenan en la tabla clave-valor de la base de datos, no en companion/.

Trate el directorio como secreto

ai/credentials.json, auth-secret y la clave privada complementaria son credenciales. No envíe un directorio de datos de desarrollo ni lo adjunte a informes de errores.

Configuraciones de ejemplo

Desarrollo fuera de línea con una base de datos desechable
export CADCAMFUN_TOKEN=dev-$(openssl rand -hex 16)
export CADCAMFUN_DATA_DIR="$(mktemp -d)"
export CADCAMFUN_MIGRATIONS_DIR="$PWD/packages/db/drizzle"
export CADCAMFUN_AI_HOST=direct
export CADCAMFUN_AI_OFFLINE=true
bun --no-env-file apps/sidecar/src/main.ts
Prueba de correo electrónico de cuenta
export CADCAMFUN_APP_URL=http://localhost:4321
export CADCAMFUN_DEBUG_LINKS=true      # reset/magic links appear in responses
Telemetría a un coleccionista local.
export OTEL_EXPORTER_OTLP_ENDPOINT=http://127.0.0.1:4318
Facturación en modo de prueba
export STRIPE_SECRET_KEY=sk_test_...
export STRIPE_WEBHOOK_SECRET=whsec_...
export STRIPE_PRICE_PRO=price_...

Nunca configurar CADCAMFUN_DEBUG_LINKS desarrollo externo: coloca enlaces de cuentas en respuestas HTTP.

En 3D

Donde se lee la configuración Arrastrar para orbitar · desplazarse para hacer zoom · arrastrar con el botón derecho para desplazarse
Processes at run time. The Tauri shell spawns the sidecar and waits for its {”event”:”ready”,”port”:N} line on stdout (sidecar.rs); the webview then talks HTTP to 127.0.0.1 on that port with the bearer token. The sidecar owns the SQLite database, the embedded nikcli AI host (CADCAMFUN_AI_HOST=nikcli, the default) and plugins; the mobile app reaches it through companion pairing.