Documentação
Início rápido
De dependências de espaço de trabalho a uma janela de desktop apoiada pelo sidecar local real.
Traduzido automaticamente do inglês. Ver o original em inglês
Requisitos
Instaladores e uma verificação de origem são diferentes
Uma versão de desktop publicada está no página de download. Este guia instala o repositório e executa desktop:dev. Ler Instalar quando você quiser os artefatos de lançamento.
O espaço de trabalho declara Bun 1.4.4 como seu gerenciador de pacotes. Use o arquivo de bloqueio do repositório para instalação de dependência. O desenvolvimento de desktop nativo também requer um conjunto de ferramentas Rust, as dependências de construção Tauri da plataforma e um webview do sistema instalado. A CLI Tauri já é uma dependência de desenvolvimento de desktop.
- macOS: Ferramentas de linha de comando Xcode para vinculação e empacotamento Rust/nativo.
- Windows: o conjunto de ferramentas MSVC e os pré-requisitos de tempo de execução/construção do WebView2.
- Linux: WebKitGTK 4.1, indicador de aplicativo, librsvg, OpenSSL e ferramentas de empacotamento. O fluxo de trabalho do CI registra os pacotes usados no Ubuntu.
- companheiro iOS: macOS, Xcode, CocoaPods e uma versão nativa do Expo contendo o módulo de fixação local.
Uma visualização do navegador requer dependências do Bun e do espaço de trabalho, mas não compila o shell Rust. Um instalador de versão também requer configuração de assinatura; isso é separado do desenvolvimento de UI local.
Instalar dependências
bun install
bun run --filter @cadcamfun/desktop typecheck
bun test packages/core Instale uma vez na raiz do espaço de trabalho de forma local workspace:* dependências são resolvidas juntas. CI usa bun install --frozen-lockfile para rejeitar o desvio do arquivo de bloqueio. Use os scripts de pacote para selecionar o compilador configurado do repositório em vez de assumir que cada pacote usa o mesmo executável TypeScript.
Os comandos direcionados acima fornecem uma verificação rápida da fonte. As verificações completas do espaço de trabalho são bun run typecheck e bun run test; eles cobrem mais módulos e podem demorar mais. Um pacote de aprovação individual não prova que todas as integrações de tempo de execução estão configuradas.
Configuração do banco de dados
A área de trabalho real não requer um comando de migração CLI separado. Seu iniciador fornece o diretório de dados do aplicativo e migrações preparadas para o sidecar; abrir o banco de dados aplica migrações pendentes. bun run desktop:dev prepara o recurso de migração como parte da preparação do sidecar.
A ferramenta de linha de comando do banco de dados é separada. bun run db:migrate delega para o pacote de banco de dados e o padrão é ./data/cadcamfun.db relativo ao diretório de processos desse pacote, normalmente packages/db/data/cadcamfun.db quando invocado através do script raiz. Defina um valor absoluto DATABASE_URL quando você precisa direcionar um banco de dados específico.
bun run db:generate
bun run db:migrate Leituras de geração packages/db/src/schema.ts e escreve migrações sob packages/db/drizzle. A aplicação de migrações atualiza o banco de dados CLI selecionado, e não todos os bancos de dados do aplicativo. Os dados nativos da área de trabalho residem no diretório de dados do aplicativo Tauri; um sidecar iniciado manualmente usa CADCAMFUN_DATA_DIR.
Escolha o banco de dados deliberadamente
Uma migração CLI bem-sucedida não altera qual banco de dados o desktop abre. Localize o diretório de dados secundários antes de investigar projetos ausentes ou aplicar uma operação manual de dados.
Abra a área de trabalho
bun run desktop:dev Isso compila o sidecar real do Bun e organiza as migrações e, em seguida, executa o Tauri. Tauri inicia Vite em http://localhost:1420 e abre o webview. O shell Rust aguarda o handshake pronto do sidecar; o webview verifica a integridade antes de mostrar as telas roteadas.
Mantenha o terminal de lançamento aberto. O shell possui o ciclo de vida do sidecar e fornece seu token de lançamento e caminhos. Se a inicialização falhar, inspecione o motivo da inicialização e os logs do aplicativo. O webview tenta novamente a descoberta de endpoint por até 150 segundos; o shell permite uma reinicialização automática do sidecar.
bun run --filter @cadcamfun/desktop dev Abrir http://localhost:1420. Sem VITE_SIDECAR_URL, isso usa a API falsa na memória. Ele oferece suporte a um subconjunto de solicitações e não fornece projetos persistentes, sessões de provedor ou diálogos nativos. Conecte-se a um sidecar ativo definindo o URL do sidecar Vite e as variáveis de processo de token.
O pacote desktop tauri:dev o script cria um sidecar de stub quando o binário está faltando. O stub oferece suporte ao isolamento do shell. Prefira a raiz desktop:dev comando ao exercer serviços de aplicativo.
bun run desktop:dev primeiras corridas build:sidecar, que compila o sidecar e prepara as migrações (etapas do pipeline compile e resources). Então começa tauri dev no pacote desktop.
Verifique a primeira sessão
- Aguarde o aplicativo sair da tela de boot e confirme se ele está conectado à API pretendida.
- Crie ou abra um projeto e entre em CAD ou CAM.
- Salve o trabalho e reabra-o por meio da UI do projeto/recurso para verificar a persistência.
- Se estiver usando o assistente, configure um provedor de modelo compatível nas configurações da área de trabalho antes de iniciar uma conversa.
- Se estiver usando o iOS Companion, habilite seu gateway e crie um emparelhamento de dispositivos na área de trabalho.
Testar um caminho visível não valida a segurança da usinagem. Inspecione estoque, ferramentas, limites da máquina, pós-saída e resultados de verificação da operação real antes de transferir a saída NC para uma máquina.
bun run --cwd packages/web start
bun run --cwd packages/web check
bun run --cwd packages/web build A teia start comando executa o Astro. Use seu endereço local impresso. A teia dev o script inicia adicionalmente a API do Studio, que pode abrir o banco de dados local selecionado; use-o ao trabalhar no Studio, em vez de apenas com documentação estática.
Próximos comandos
| Meta | Comando |
|---|---|
| Compilar apenas sidecar e preparar migrações | bun run build:sidecar |
| Crie front-end sem instaladores | bun run build:desktop |
| Revise o plano de construção nativo | bun scripts/build.ts --dry-run |
| Gerar novamente clientes de API | bun run generate |
| Verifique os clientes gerados | bun run generate:check |
| Execute testes de transporte complementar | bun run --cwd apps/mobile test |
Verifique uma API real sem modelo
Inicie o sidecar manual descrito no guia de desenvolvimento local ou use o endpoint/token de um processo de desenvolvimento que você controla. A receita a seguir cria um projeto descartável e o lista. Precisa de ondulação; a extração opcional do identificador usa Bun. Substitua a porta e o token de exemplo pelos do seu sidecar isolado.
CADCAM_URL=http://127.0.0.1:43111
CADCAM_TOKEN=local-development-token
curl --fail-with-body "$CADCAM_URL/api/health"
curl --fail-with-body -X POST "$CADCAM_URL/api/projects" -H "Authorization: Bearer $CADCAM_TOKEN" -H 'Content-Type: application/json' -d '{"name":"Documentation smoke","description":"Disposable local check","isPublic":false}' -o /tmp/cadcamfun-project-smoke.json
curl --fail-with-body "$CADCAM_URL/api/projects" -H "Authorization: Bearer $CADCAM_TOKEN"
CADCAM_PROJECT_ID=$(bun --no-env-file -e 'const row = await Bun.file("/tmp/cadcamfun-project-smoke.json").json(); console.write(row.id)')
curl --fail-with-body "$CADCAM_URL/api/projects/$CADCAM_PROJECT_ID" -H "Authorization: Bearer $CADCAM_TOKEN" Health retorna um objeto de status/timestamp. A criação do projeto retorna HTTP 201 e uma linha do projeto com seu identificador. A listagem retorna uma série de projetos com relações e contagens entre proprietário/organização; a leitura por identificador retorna um desses projetos relacionados. O exemplo não chama um modelo nem gera saída de máquina.
Feche o sidecar manual de forma limpa, reinicie-o com o mesmo diretório de dados, atualize a URL efêmera e liste os projetos novamente para verificar a persistência. Um novo lançamento pode escolher uma porta diferente. Se este projeto estiver ausente, primeiro compare o diretório de dados, o terminal do cliente e o contexto de autorização.
A limpeza é opcional e destrutiva para este projeto descartável: envie DELETE /api/projects/<id> somente após confirmar o identificador retornado. Persistência do aplicativo de criação/lista/leitura de exercícios sem a necessidade de limpeza para ter sucesso.
Interpretar falhas na primeira execução
| Falha | Limite provável | Próxima ação |
|---|---|---|
| A instalação de dependência não pode resolver um pacote local | Instalação do espaço de trabalho | Execute a partir da raiz do repositório com a versão Bun declarada e o arquivo de bloqueio. |
| Link nativo ou erro do WebKit | Pré-requisitos Tauri | Instale as bibliotecas do conjunto de ferramentas/plataforma usadas pelo destino de CI correspondente. |
| Nenhum evento pronto | Configuração, migração ou inicialização do Sidecar | Inspecione stderr e o evento de erro estruturado. Mantenha o stdin aberto. |
| Saúde funciona, chamada do projeto retorna 401 | Autorização | A saúde é pública; chamadas de API protegidas ainda precisam do token do processo atual. |
| Criar devoluções 400 | Validação de solicitação/validação de negócios | Envie JSON com um nome não vazio e inspecione a mensagem retornada. |
| Crie devoluções 403 com dados da organização | Associação à organização | Use uma organização acessível ou omita o campo da organização para uma verificação local. |
| O companheiro nativo diz que a fixação não está disponível | Módulo Expo local ausente | Use uma versão personalizada do iOS, não o Expo Go. |
Mantenha a primeira verificação pequena: integridade, um projeto, um desenho/programa persistente e, em seguida, integrações opcionais. Uma inicialização bem-sucedida do aplicativo base não configura Stripe, provedores de IA, um repositório GitHub remoto ou roteamento móvel automaticamente.
Detalhes do requisito
| Ferramenta | Versão | Necessário para |
|---|---|---|
| Bun | 1.4.4 (o repositório packageManager) | Tudo: instalação, testes, sidecar, scripts |
| Conjunto de ferramentas Rust + pré-requisitos Tauri | estável; bibliotecas de webview da plataforma no Linux | O shell da área de trabalho (desktop:dev, constrói) |
| CLI SQLite | qualquer | Opcional: inspeção de banco de dados somente leitura |
| Código X | — | Somente para o companheiro iOS |
Sua primeira hora, passo a passo
git clone https://github.com/nikomatt69/cadcamfun.git
cd cadcamfun
bun install --frozen-lockfile
bun run typecheck # all workspaces
bun run test # bun test packages apps scripts
bun run desktop:dev # builds the sidecar + migrations, then tauri dev - Quando a janela é aberta, o status do sidecar fica pronto em segundos; um novo diretório de dados é migrado na primeira inicialização.
- Crie um projeto, adicione um desenho, desenhe um retângulo e faça a extrusão.
- Abra o CAM, escolha o sólido e gere. Verifique o nível de liberação e as reivindicações antes de exportar NC.
- Abra o painel de histórico e faça o commit: o projeto agora tem sua primeira versão.
Nenhuma chave de modelo necessária
Tudo acima funciona sem um provedor de IA. Adicione uma chave posteriormente nas configurações do assistente.