Vai al contenuto
CADCAMFUN
Documentazione

Documentazione

Configurazione in fase di esecuzione

Scegli il processo, la directory dei dati, il tipo di credenziale e le impostazioni di integrazione che controllano effettivamente ciascun runtime.

Tradotto automaticamente dall'inglese. Vedi l'originale in inglese

Proprietari della configurazione

Il sidecar legge la configurazione dell'ambiente AppConfigService in apps/sidecar/src/config.ts. Un livello legge questi valori quando viene costruito e passa un valore AppConfig ai servizi che ne hanno bisogno. La modifica di una variabile della shell genitore non modifica un servizio già in esecuzione.

Tauri fornisce il proprio token di lancio e i dati dell'applicazione/percorsi di migrazione all'avvio del bambino. L'anteprima del browser utilizza variabili di connessione lato Vite. Mobile memorizza una connessione desktop associata e le credenziali del dispositivo. Il sito della documentazione dispone di collegamenti Worker separati e di un processo Studio locale indipendente. Non condividono un file di configurazione universale.

Configura il proprietario del comportamento che intendi modificare. Ad esempio, l'impostazione dell'URL di migrazione della CLI non reindirizza il database desktop nativo e la configurazione dell'assistente alla documentazione non fornisce le credenziali del provider AI desktop.

Avvia un sidecar isolato

Terminale interattivo nella root del repository
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

Utilizza una directory usa e getta e un token di sviluppo di esempio. Scegli un token appropriato per il tuo processo. Il server associa il loopback su una porta assegnata; leggi quella porta dal suo evento pronto. Mantieni stdin aperto perché chiudendolo segnala l'arresto. Il comando passa deliberatamente le impostazioni in modo esplicito e disabilita il caricamento automatico dei file d'ambiente di Bun.

Per il ciclo nativo normale, utilizzare bun run desktop:dev. Prepara il binario del sidecar e le migrazioni prima di lanciare Tauri, che possiede la connessione al processo risultante. Non avviare un secondo sidecar manuale dando per scontato che la visualizzazione web nativa verrà allegata ad esso.

Impostazioni di connessione e archiviazione richieste

CollocamentoPredefinitoComportamento
CADCAMFUN_TOKENNecessarioCredenziali del portatore dell'applicazione redatte per percorsi API locali protetti.
CADCAMFUN_DATA_DIRNecessarioRadice dello stato locale gestito dal sidecar. La banca dati è cadcamfun.db sotto di esso.
CADCAMFUN_MIGRATIONS_DIRAssenteDirectory di migrazione passata al livello del database. Senza di esso, l'apertura del database non crea né aggiorna le tabelle dell'applicazione.
CADCAMFUN_APP_URLAssente nella configurazioneURL di base fornito per le integrazioni del collegamento dell'account. Il servizio interessato decide il suo fallback.
CADCAMFUN_DEBUG_LINKSFalsoAbilita i campi di risposta di sviluppo per i collegamenti agli account nei gestori che li supportano.

La directory dei dati è una root di archiviazione, non un indirizzo di collegamento HTTP. Il listener del server principale è fisso 127.0.0.1 con un porto effimero. La rete complementare utilizza il proprio gateway HTTPS abilitato esplicitamente; la modifica di un'impostazione URL non rende pubblico il listener di loopback.

Mantieni la directory di migrazione configurata allineata al file binario. L'avvio può non riuscire prima che sia pronto quando non è possibile pianificare, eseguire il backup o applicare una migrazione. Il riferimento al database spiega il comportamento delle transazioni e del backup; una tabella mancante dopo aver omesso le migrazioni è un problema di configurazione piuttosto che una prova che il progetto è stato eliminato.

Il token dell'applicazione viene letto come valore redatto e non viene mai visualizzato nei log di configurazione. Ogni impostazione in questa pagina viene letta una volta, in apps/sidecar/src/config.ts; un valore modificato ha effetto solo dopo il riavvio del sidecar.

Host AI e connettività

CollocamentoPredefinitoComportamento
CADCAMFUN_AI_HOSTnikcliSelezionare nikcli o direct. L'host diretto non aggiunge il ciclo di strumenti persistenti incorporati e lo scheduler specializzato.
CADCAMFUN_AI_OFFLINEFalsoDisabilita il caricamento del catalogo del provider di rete e il gestore della ricerca web in tempo reale. Non è un'implementazione del modello locale.
CADCAMFUN_AI_MINIMAX_BASE_URLAssenteOverride opzionale dell'endpoint tagliato per la configurazione MiniMax incorporata.

Le chiavi del provider sono gestite dall'API delle credenziali e rese persistenti dal servizio AI su <dataDir>/ai/credentials.json. Non vengono forniti inventando una variabile d'ambiente non documentata per ogni provider. Utilizzare gli endpoint dello stato del provider/modello per stabilire cosa è configurato e il Guida all'intelligenza artificiale per il routing del modello diretto supportato.

La modalità offline non trasforma la chiamata di un fornitore di servizi cloud in una risposta offline. Un modello configurato diretto o incorporato può comunque richiedere la connessione al provider per l'inferenza. Il prodotto local-first conserva i progetti locali senza una connessione al modello; tale proprietà di archiviazione è distinta dall'inferenza dell'IA offline.

La policy dell'operatore viene caricata da <dataDir>/ai/policy.json. L'host incorporato isola le proprie directory di lavoro/configurazione sotto lo spazio di archiviazione AI dell'applicazione. La policy, le credenziali, il contesto della sessione e la cache del catalogo del provider hanno scopi diversi; la copia di un file non ricostruisce l'intera durata di una conversazione.

Integrazioni di account e fatturazione

CollocamentoUtilizzoQuando assente
STRIPE_SECRET_KEYAutenticazione API Stripe in uscita.Il pagamento a pagamento e l'integrazione del portale di fatturazione non sono disponibili.
STRIPE_WEBHOOK_SECRETVerifica i payload webhook Stripe firmati.Il gestore del webhook rifiuta l'inserimento senza la configurazione di verifica.
STRIPE_PRICE_BASIC, STRIPE_PRICE_PRO, STRIPE_PRICE_ENTERPRISEID prezzo per piani a pagamento. I valori vuoti vengono ignorati.Una mappatura mancante non può identificare un prezzo di pagamento configurato per quel piano.
CRON_SECRETCredenziali condivise aggiuntive per la manutenzione cron.A quella guardia non è richiesto alcun segreto cron aggiuntivo; resta valida l'ammissione al portatore della domanda.
ADMIN_EMAILIdentità dell'amministratore utilizzata dalla policy dell'account/servizio.Il profilo dell'installazione locale mantiene il comportamento amministrativo locale implementato dai suoi servizi.

Queste impostazioni configurano le integrazioni; non stabiliscono l'esistenza di un account remoto, di un prezzo, di un abbonamento o di una consegna webhook. Verificare l'effettivo errore dell'operazione e lo stato del servizio in esecuzione. Non dedurre che la presenza di una tabella significhi che la relativa funzionalità ospitata è completamente configurata.

L'interfaccia AppConfig contiene anche hook di test-injection come una model factory sostitutiva e una base API Stripe. Non sono variabili di ambiente lette da questo livello di configurazione di produzione. Mantenere gli hook di test fuori dalle istruzioni di distribuzione a meno che l'host in esecuzione non li esponga esplicitamente.

Il percorso di prova della fatturazione inizia tra 14 giorni PRO prova (TRIAL_DAYS in apps/sidecar/src/repos/billing-repo.ts, utilizzato da http/billing.ts). I piani disponibili sono FREE, BASIC, PRO, e ENTERPRISE; solo i tre piani a pagamento richiedono a STRIPE_PRICE_* collocamento.

Registri e telemetria

OTEL_EXPORTER_OTLP_ENDPOINT abilita la traccia OTLP/HTTP, la metrica e gli esportatori di log del sidecar. Senza un endpoint non vuoto, questo livello di telemetria opzionale è disabilitato. Il codice dell'esportatore crea gli endpoint specifici del segnale; configurare un raccoglitore che supporti tali segnali.

La normale registrazione sidecar è separata dall'esportazione della telemetria. Stdout trasporta il protocollo di disponibilità/errore JSON utilizzato dalla shell, mentre i log sono indirizzati a stderr. Durante la diagnosi dell'avvio, conservare il primo errore rilevante e il relativo contesto operativo anziché aspettarsi che la finestra dell'applicazione contenga tutti i dettagli di inizializzazione.

Non includere token di avvio, chiavi del provider, token di sessione o file di credenziali completi nei bundle di diagnostica. I percorsi di origine, il metodo/stato, gli ID endpoint, gli ID progetto non segreti e l'operazione del database non riuscita in genere forniscono un punto di partenza più sicuro e utile.

Configurazione del cliente

Un'anteprima desktop solo per browser utilizza la falsa API in memoria quando VITE_SIDECAR_URL è assente. Per collegarlo a un sidecar avviato manualmente, imposta l'URL e VITE_SIDECAR_TOKEN prima di iniziare Vite. Il percorso Tauri compresso ottiene invece la connessione dalla shell.

Browser che utilizza il sidecar avviato manualmente
VITE_SIDECAR_URL=http://127.0.0.1:READY_PORT \
VITE_SIDECAR_TOKEN=local-development-token \
bun run --filter @cadcamfun/desktop dev

Sostituisci il segnaposto della porta. Le impostazioni di Vite appartengono al processo di sviluppo del frontend; modificarli non riavvia o riconfigura il sidecar. L'accesso al browser è soggetto alla politica di loopback/Tauri CORS del sidecar e alla normale ammissione al portatore.

L'associazione mobile memorizza l'indirizzo del desktop, l'impronta digitale del certificato e il token del dispositivo tramite l'applicazione mobile. La modifica del token di avvio del desktop non è un modo normale per associare un telefono. Usa il procedura di abbinamento e revocare i singoli dispositivi quando necessario.

Selezione del percorso del database

ProcessoRegola di selezione
Sidecar desktop nativoDirectory dei dati dell'applicazione fornita da Tauri, quindi cadcamfun.db.
Sidecar manualeCADCAMFUN_DATA_DIR/cadcamfun.db.
CLI di migrazione del databaseDATABASE_URL, rimuovendo un'iniziale file:; altrimenti relativo al processo ./data/cadcamfun.db.
Radice db:migrate involucroEsegue lo script del pacchetto DB, quindi il valore predefinito si risolve all'interno packages/db.
Studio di documentazioneCADCAMFUN_DB, poi DATABASE_URL, quindi repository-root data/cadcamfun.db. Il file deve esistere.

Un elenco progetti vuoto può quindi significare che hai aperto un altro database valido. Registra il processo e il percorso assoluto selezionato prima di modificare le migrazioni o copiare i dati. Una sessione dell'account può anche modificare le risorse visibili senza modificare il file.

Applicare e verificare una modifica

  1. Identificare il processo proprietario e il percorso di archiviazione corrente. Conserva i dati necessari prima di modificare lo spazio di archiviazione o le migrazioni.
  2. Interrompi il processo in modo pulito e aggiorna la sua configurazione di avvio esplicita o l'impostazione nativa.
  3. Riavviarlo e attendere il risultato di disponibilità effettiva. Risolvi la nuova connessione invece di riutilizzare una vecchia porta.
  4. Controllare una chiamata sanitaria pubblica e una chiamata protetta ammessa.
  5. Verificare il comportamento specifico: viene visualizzato il progetto previsto, lo stato del provider cambia, il gateway diventa raggiungibile o il raccoglitore di telemetria configurato riceve il segnale previsto.

La presenza di un valore configurato non equivale a un'integrazione esterna funzionante. Leggere il risultato del servizio dopo aver apportato una modifica. I valori di configurazione con un valore predefinito devono essere distinti dai valori facoltativi per i quali il servizio ricevente decide il proprio fallback.

Diagnosi della configurazione

Se l'inizializzazione fallisce prima che sia pronta, controlla le impostazioni richieste, la disponibilità della migrazione, l'accesso alla directory e l'errore di costruzione del primo livello. Se l'integrità ha esito positivo ma una chiamata protetta fallisce, controlla il tipo di token e il processo corrente. Se un provider fallisce mentre i progetti funzionano, controlla la configurazione dell'AI anziché reimpostare il database.

Se Studio non è disponibile sul sito ospitato, la sua API di produzione restituisce intenzionalmente 503; avvia il processo Bun locale sul file esistente selezionato. Se l'assistente alla documentazione non è disponibile, controlla i collegamenti Worker o il relativo backend nikcli configurato. Nessuna delle due diagnosi richiede la sostituzione delle credenziali del desktop.

Prove di origine: apps/sidecar/src/config.ts, layers.ts, main.ts, observability.ts, services/ai.ts, packages/db/src/migrate.ts, e packages/web/script/studio-server.ts.

Ogni ambientazione per il sidecar in un unico tavolo

AppConfigService è l'unico posto nel sidecar che legge l'ambiente. La tabella elenca tutte le variabili che legge, nell'ordine in cui le legge. I valori facoltativi vuoti o gli spazi bianchi vengono considerati assenti dove indicato.
VariabileTipoPredefinitoUtilizzato da
CADCAMFUN_TOKENstringa redattanecessarioMiddleware portante per ogni tratta protetta
CADCAMFUN_DATA_DIRcordanecessarioDatabase, archiviazione AI, plug-in, compagno, caricamenti
CADCAMFUN_MIGRATIONS_DIRcordaassenteLivello database; assente significa che non viene creato alcuno schema
CADCAMFUN_APP_URLcordaassenteCollegamenti nelle e-mail dell'account (il file legacy NEXTAUTH_URL)
CADCAMFUN_DEBUG_LINKSbooleanofalseRipristino eco e collegamenti magici nelle risposte (solo sviluppo)
CADCAMFUN_AI_OFFLINEbooleanofalseNessun download del catalogo del fornitore e nessuna ricerca web in tempo reale
CADCAMFUN_AI_HOSTnikcli | directnikcliAssistente ospite; qualsiasi altro valore non riesce all'avvio
CADCAMFUN_AI_MINIMAX_BASE_URLcorda, tagliataassenteEndpoint MiniMax per l'host incorporato
STRIPE_WEBHOOK_SECRETcordaassenteSenza di esso, i webhook Stripe vengono rifiutati
STRIPE_SECRET_KEYstringa redattaassenteSenza di esso, il pagamento a pagamento e il portale di fatturazione non sono disponibili
STRIPE_PRICE_BASIC, _PRO, _ENTERPRISEcorda, tagliataassenteID prezzo per piano a pagamento; i valori vuoti vengono ignorati
CRON_SECRETcordaassenteSegreto condiviso per /api/cron/*; senza di esso il percorso è aperto all'app locale
ADMIN_EMAILcordaassenteE-mail dell'amministratore; per impostazione predefinita il profilo locale amministra la propria installazione
OTEL_EXPORTER_OTLP_ENDPOINTcorda, tagliataassenteURL di base del raccoglitore OTLP/HTTP; senza di essa la telemetria è disattivata

La domanda segnalata version è fissato nel codice (6.0.0), non letti dall'ambiente.

I valori non validi interrompono l'avvio

Una variabile obbligatoria mancante o un valore che non viene analizzato (ad esempio CADCAMFUN_AI_HOST=local), non supera il livello di configurazione. Il sidecar quindi stampa un errore invece della riga pronta e il desktop segnala l'errore di avvio.

Le variabili vengono lette all'esterno della configurazione del sidecar

VariabileLettoreScopo
DATABASE_URLpackages/db migrare script e kit drizzleObiettivo per db:migrate / db:generate; un leader file: è spogliato. Predefinito ./data/cadcamfun.db relativo a packages/db.
CADCAMFUN_DB, poi DATABASE_URLServer di Web Studio (packages/web/script/studio-server.ts)Si apre il database dello Studio locale; predefinito data/cadcamfun.db nella radice del repository.
NIKCLI_LOCALE, NIKCLI_LANGUAGE, NIKCLI_REGIONHost assistente incorporatoSostituisci la lingua e la regione dell'assistente.
LC_ALL, LC_MESSAGES, LANG, LANGUAGE, TZHost assistente incorporatoRilevamento delle impostazioni internazionali del sistema e del fuso orario quando non è impostata alcuna sostituzione.

La shell del desktop passa esattamente tre variabili al sidecar che avvia: CADCAMFUN_TOKEN (un nuovo token casuale per lancio), CADCAMFUN_DATA_DIR (la directory dei dati dell'applicazione) e CADCAMFUN_MIGRATIONS_DIR (le migrazioni raggruppate). Qualsiasi altra cosa deve essere presente nell'ambiente con cui è stata avviata l'app desktop stessa.

Ciò che vive nella directory dei dati

<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

Le directory vengono create al primo utilizzo, quindi una nuova installazione contiene solo quelle toccate dalle sue funzionalità. Eseguire il backup dell'intera directory con l'applicazione arrestata: il database, le credenziali, il segreto di autenticazione e le chiavi complementari appartengono insieme. I dispositivi associati associati vengono archiviati nella tabella dei valori-chiave del database, non in companion/.

Tratta la directory come segreta

ai/credentials.json, auth-secret e la chiave privata complementare sono credenziali. Non salvare una directory di dati di sviluppo né allegarla a segnalazioni di bug.

Configurazioni di esempio

Sviluppo offline con un database usa e getta
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
Test della posta elettronica dell'account
export CADCAMFUN_APP_URL=http://localhost:4321
export CADCAMFUN_DEBUG_LINKS=true      # reset/magic links appear in responses
Telemetria a un collezionista locale
export OTEL_EXPORTER_OTLP_ENDPOINT=http://127.0.0.1:4318
Fatturazione in modalità test
export STRIPE_SECRET_KEY=sk_test_...
export STRIPE_WEBHOOK_SECRET=whsec_...
export STRIPE_PRICE_PRO=price_...

Non impostare mai CADCAMFUN_DEBUG_LINKS sviluppo esterno: inserisce collegamenti agli account nelle risposte HTTP.

Nel 3D

Dove viene letta la configurazione Trascina per orbitare · scorri per ingrandire · trascina con il tasto destro per eseguire la panoramica
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.