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
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
| Collocamento | Predefinito | Comportamento |
|---|---|---|
CADCAMFUN_TOKEN | Necessario | Credenziali del portatore dell'applicazione redatte per percorsi API locali protetti. |
CADCAMFUN_DATA_DIR | Necessario | Radice dello stato locale gestito dal sidecar. La banca dati è cadcamfun.db sotto di esso. |
CADCAMFUN_MIGRATIONS_DIR | Assente | Directory di migrazione passata al livello del database. Senza di esso, l'apertura del database non crea né aggiorna le tabelle dell'applicazione. |
CADCAMFUN_APP_URL | Assente nella configurazione | URL di base fornito per le integrazioni del collegamento dell'account. Il servizio interessato decide il suo fallback. |
CADCAMFUN_DEBUG_LINKS | Falso | Abilita 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à
| Collocamento | Predefinito | Comportamento |
|---|---|---|
CADCAMFUN_AI_HOST | nikcli | Selezionare nikcli o direct. L'host diretto non aggiunge il ciclo di strumenti persistenti incorporati e lo scheduler specializzato. |
CADCAMFUN_AI_OFFLINE | Falso | Disabilita 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_URL | Assente | Override 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
| Collocamento | Utilizzo | Quando assente |
|---|---|---|
STRIPE_SECRET_KEY | Autenticazione API Stripe in uscita. | Il pagamento a pagamento e l'integrazione del portale di fatturazione non sono disponibili. |
STRIPE_WEBHOOK_SECRET | Verifica 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_ENTERPRISE | ID 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_SECRET | Credenziali condivise aggiuntive per la manutenzione cron. | A quella guardia non è richiesto alcun segreto cron aggiuntivo; resta valida l'ammissione al portatore della domanda. |
ADMIN_EMAIL | Identità 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.
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
| Processo | Regola di selezione |
|---|---|
| Sidecar desktop nativo | Directory dei dati dell'applicazione fornita da Tauri, quindi cadcamfun.db. |
| Sidecar manuale | CADCAMFUN_DATA_DIR/cadcamfun.db. |
| CLI di migrazione del database | DATABASE_URL, rimuovendo un'iniziale file:; altrimenti relativo al processo ./data/cadcamfun.db. |
Radice db:migrate involucro | Esegue lo script del pacchetto DB, quindi il valore predefinito si risolve all'interno packages/db. |
| Studio di documentazione | CADCAMFUN_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
- Identificare il processo proprietario e il percorso di archiviazione corrente. Conserva i dati necessari prima di modificare lo spazio di archiviazione o le migrazioni.
- Interrompi il processo in modo pulito e aggiorna la sua configurazione di avvio esplicita o l'impostazione nativa.
- Riavviarlo e attendere il risultato di disponibilità effettiva. Risolvi la nuova connessione invece di riutilizzare una vecchia porta.
- Controllare una chiamata sanitaria pubblica e una chiamata protetta ammessa.
- 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.
| Variabile | Tipo | Predefinito | Utilizzato da |
|---|---|---|---|
CADCAMFUN_TOKEN | stringa redatta | necessario | Middleware portante per ogni tratta protetta |
CADCAMFUN_DATA_DIR | corda | necessario | Database, archiviazione AI, plug-in, compagno, caricamenti |
CADCAMFUN_MIGRATIONS_DIR | corda | assente | Livello database; assente significa che non viene creato alcuno schema |
CADCAMFUN_APP_URL | corda | assente | Collegamenti nelle e-mail dell'account (il file legacy NEXTAUTH_URL) |
CADCAMFUN_DEBUG_LINKS | booleano | false | Ripristino eco e collegamenti magici nelle risposte (solo sviluppo) |
CADCAMFUN_AI_OFFLINE | booleano | false | Nessun download del catalogo del fornitore e nessuna ricerca web in tempo reale |
CADCAMFUN_AI_HOST | nikcli | direct | nikcli | Assistente ospite; qualsiasi altro valore non riesce all'avvio |
CADCAMFUN_AI_MINIMAX_BASE_URL | corda, tagliata | assente | Endpoint MiniMax per l'host incorporato |
STRIPE_WEBHOOK_SECRET | corda | assente | Senza di esso, i webhook Stripe vengono rifiutati |
STRIPE_SECRET_KEY | stringa redatta | assente | Senza di esso, il pagamento a pagamento e il portale di fatturazione non sono disponibili |
STRIPE_PRICE_BASIC, _PRO, _ENTERPRISE | corda, tagliata | assente | ID prezzo per piano a pagamento; i valori vuoti vengono ignorati |
CRON_SECRET | corda | assente | Segreto condiviso per /api/cron/*; senza di esso il percorso è aperto all'app locale |
ADMIN_EMAIL | corda | assente | E-mail dell'amministratore; per impostazione predefinita il profilo locale amministra la propria installazione |
OTEL_EXPORTER_OTLP_ENDPOINT | corda, tagliata | assente | URL 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
| Variabile | Lettore | Scopo |
|---|---|---|
DATABASE_URL | packages/db migrare script e kit drizzle | Obiettivo per db:migrate / db:generate; un leader file: è spogliato. Predefinito ./data/cadcamfun.db relativo a packages/db. |
CADCAMFUN_DB, poi DATABASE_URL | Server 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_REGION | Host assistente incorporato | Sostituisci la lingua e la regione dell'assistente. |
LC_ALL, LC_MESSAGES, LANG, LANGUAGE, TZ | Host assistente incorporato | Rilevamento 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.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
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 export CADCAMFUN_APP_URL=http://localhost:4321
export CADCAMFUN_DEBUG_LINKS=true # reset/magic links appear in responses export OTEL_EXPORTER_OTLP_ENDPOINT=http://127.0.0.1:4318 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.