Tipo de página: docs

Primeiros passos

Execute o site Astro e o plano de controle Phoenix localmente e, em seguida, percorra o fluxo de trabalho alfa atual.

Resposta direta

Execute o site Astro e o plano de controle Phoenix localmente e, em seguida, percorra o fluxo de trabalho alfa atual.

Conteúdo fonte

# Primeiros passos

TextTree é dividido em dois aplicativos:

- `apps/site` para o site público Astro
- `apps/web` para o aplicativo Phoenix, API do desenvolvedor, webhooks e endpoints MCP

## Fluxo de trabalho local

1. Instale Node 22+, Elixir 1.19+, Erlang/OTP 28+ e PostgreSQL.
2. Copie `apps/web/.env.example` para `apps/web/.env.local`.
3. Copie `apps/site/.env.example` para `apps/site/.env.local`.
4. Gere um token de envio Proton SMTP antes de enviar e-mails locais reais.
5. Execute `pnpm setup` na raiz do repositório.
6. Inicie o Astro com `pnpm --dir apps/site dev`.
7. Inicie o Phoenix com `cd apps/web && mix phx.server`.

## URLs locais

- Site público astro: `http://localhost:4321`
- Aplicativo e API Phoenix: `http://localhost:4001`

## Grupos ambientais

As variáveis de ambiente são organizadas por responsabilidade:

- Ambiente de execução local Phoenix: `apps/web/.env.local`
- Configuração pública do Astro local: `apps/site/.env.local`
- operações de implantação/gerenciamento de produção: `devops/env/prod.env.local`
- testar operações de implantação/gerenciamento: `devops/env/test.env.local`

Não use arquivos env na raiz. Somente arquivos de amostra são versionados por escopo.

## Modo de autenticação

Configure `TEXTREE_AUTH_MODE` no tempo de execução do Phoenix para escolher qual
Os métodos de registro e login são visíveis.

| Valor | Interface de registro/login | Habilitado nos bastidores | Requer entrega de correio? | Uso típico |
| --- | --- | --- | --- | --- |
| `magic_link_or_ethereum` | Apenas link mágico por correio e carteira Ethereum. Solana, Google e e-mail/senha estão ocultos. | Link mágico via e-mail, e-mail/senha e carteira Ethereum. | Sim, configure o SMTP. | Modo de inicialização padrão atual. |
| `wallet_only` | Apenas botões de carteira Ethereum e Solana. O link mágico por correio, Google e e-mail/senha estão ocultos. | Carteira Ethereum e Solana. | Não. | Liberação somente criptográfica ou entrega de correio não verificado. |
| `wallet_first` | Botões de carteira, Google, link mágico por correio e e-mail/senha. | Carteiras, Google, link mágico por email e email/senha. | Sim, configure o SMTP. | Ampla superfície de autenticação após verificação de correio e OAuth. |
| `full` | Google, link mágico de e-mail, e-mail/senha e botões de carteira. | Google, link mágico por correio, email/senha e carteiras. | Sim, configure o SMTP. | Superfície completa de autenticação no navegador para versões posteriores. |

Para qualquer modo que mostre links mágicos por correio, defina `TEXTREE_MAILER_ADAPTER=smtp`
e as variáveis `TEXTREE_SMTP_*` antes de iniciar e, em seguida, execute
`mix textree.email.test recipient@example.com`.

## Primeiro fluxo de trabalho alfa

Assim que a pilha estiver instalada e funcionando:

1. Registre-se ou faça login via TextTree em `/signup` ou `/login`, ou crie um
   conta de agente headless com `POST /api/v1/accounts` ou `POST /mcp/accounts`.
2. Abra `/app`.
3. Crie ou recupere um token de acesso ao portador TextTree `txt_...` com `messages:write`.
4. Adicione saldo de SMS pré-pago com uma fatura de financiamento em USDC.
5. Verifique o status da fatura até que o saldo seja creditado.
6. Confirme se o destinatário não está sendo excluído do espaço de trabalho.
7. Use o token de acesso ao portador do TextTree em relação ao `POST /api/v1/messages`.
8. Verifique `GET /api/v1/messages/:id` ou inspecione `/app` para status de fornecedor e financiamento.

## Integração programática

A API atual expõe configurações de inicialização e inicialização da conta para usuários e agentes autenticados:- `POST /api/v1/accounts` para criar contas headless com nome de usuário/senha
- `POST /mcp/accounts` para o mesmo bootstrap sem cabeça no namespace MCP
-`GET /api/v1/onboarding` com `onboarding:read`
- `POST /api/v1/onboarding/api-key` com `onboarding:write` para emitir um token de portador `txt_...` com escopos
-`POST /api/v1/onboarding/funding-invoices` com `onboarding:write`
-`GET /api/v1/onboarding/funding-invoices/:id` com `onboarding:read`
-`POST /api/v1/onboarding/branded-request` com `onboarding:write`

Headless bootstrap retorna códigos de backup únicos e um token de portador `txt_...`
de TextTree com escopos API/MCP. O mesmo status de financiamento está disponível para agentes por meio de
Ferramentas MCP `onboarding.status`, `onboarding.create_invoice` e
`onboarding.invoice_status`.

## Comandos de verificação

-`pnpm test`
-`pnpm verify`
-`pnpm app:test`
-`pnpm www:check`
-`pnpm www:build`

## O que a versão alfa atual garante

- namespaces de rota estáveis
- Configuração Ecto pronta para neon
- Filas Oban para trabalho de correio e webhooks
- autenticação nativa Phoenix e normalização de identidade local
- aplicação de exclusões de espaço de trabalho e campanha
- Reconciliação de STOP/exclusão do fornecedor em exclusões de espaço de trabalho
- autorização de despesas antes da execução no fornecedor
- ingestão verificada de webhooks de mensagens e financiamento
- Auditorias de execução de MCP, cotas e política de tempo de espera

## O que ainda não é público

A versão alfa atual ainda mantém algumas das configurações críticas no aplicativo autenticado em vez de
Terminais de API públicos:

- gerenciamento de exclusões de espaços de trabalho/campanhas
- gerenciamento de limites de gastos
- rotação de código substituto no navegador após inicialização inicial sem cabeça
Markdown