Type de page: docs
Premiers pas
Exécute le site Astro et le plan de contrôle Phoenix localement, puis parcourt le flux de travail alpha actuel.
Réponse directe
Exécute le site Astro et le plan de contrôle Phoenix localement, puis parcourt le flux de travail alpha actuel.
Contenu source
# Commencer TextTree est divisé en deux applications : - `apps/site` pour le site public Astro - `apps/web` pour l'application Phoenix, le développeur API, les webhooks et les points de terminaison MCP ## Workflow local 1. Installez Node 22+, Elixir 1.19+, Erlang/OTP 28+ et PostgreSQL. 2. Copiez `apps/web/.env.example` dans `apps/web/.env.local`. 3. Copiez `apps/site/.env.example` dans `apps/site/.env.local`. 4. Générez un jeton de soumission Proton SMTP avant d'envoyer de véritables e-mails locaux. 5. Exécutez `pnpm setup` à partir de la racine du référentiel. 6. Démarrez Astro avec `pnpm --dir apps/site dev`. 7. Démarrez Phoenix avec `cd apps/web && mix phx.server`. ## URL locales -Site public Astro : `http://localhost:4321` - Application et API de Phoenix : `http://localhost:4001` ## Groupes d'environnement Les variables d'environnement sont organisées par responsabilité : - Environnement d'exécution local Phoenix : `apps/web/.env.local` - Configuration publique locale Astro : `apps/site/.env.local` - opérations de déploiement/gestion de production : `devops/env/prod.env.local` - tester les opérations de déploiement/gestion : `devops/env/test.env.local` N'utilisez pas de fichiers env à la racine. Seuls les exemples de fichiers sont versionnés par étendue. ## Mode d'authentification Définissez `TEXTREE_AUTH_MODE` dans le runtime Phoenix pour choisir lequel Les méthodes d'inscription et de connexion sont visibles. | Valeur | Interface d'inscription/connexion | Activé en coulisses | Est-ce que cela nécessite la livraison du courrier ? | Utilisation typique | | --- | --- | --- | --- | --- | | `magic_link_or_ethereum` | Seul lien magique par courrier et portefeuille Ethereum. Solana, Google et l'e-mail/mot de passe sont masqués. | Lien magique par mail, email/mot de passe et wallet Ethereum. | Oui, configurez SMTP. | Mode de lancement par défaut actuel. | | `wallet_only` | Boutons de portefeuille Ethereum et Solana uniquement. Le lien magique par mail, Google et email/mot de passe sont masqués. | Portefeuille Ethereum et Solana. | N° | Version cryptographique uniquement ou livraison de courrier non vérifiée. | | `wallet_first` | Boutons Wallet, Google, lien magique par mail et email/mot de passe. | Wallets, Google, lien magique par email et email/mot de passe. | Oui, configurez SMTP. | Large surface d'authentification après vérification du courrier et de OAuth. | | `full` | Google, lien magique de messagerie, boutons e-mail/mot de passe et portefeuille. | Google, lien magique par mail, email/mot de passe et wallets. | Oui, configurez SMTP. | Surface d’authentification complète dans le navigateur pour les versions ultérieures. | Pour tout mode affichant des liens magiques par courrier, définissez `TEXTREE_MAILER_ADAPTER=smtp` et les variables `TEXTREE_SMTP_*` avant de lancer, puis exécutez `mix textree.email.test recipient@example.com`. ## Premier workflow alpha Une fois la pile opérationnelle : 1. Inscrivez-vous ou connectez-vous via TextTree à `/signup` ou `/login`, ou créez un compte d'agent sans tête avec `POST /api/v1/accounts` ou `POST /mcp/accounts`. 2. Ouvrez `/app`. 3. Créez ou récupérez un jeton d'accès au porteur `txt_...` à partir de TextTree avec `messages:write`. 4. Ajoutez le solde prépayé de SMS avec une facture de financement dans USDC. 5. Vérifiez l'état de la facture jusqu'à ce que le solde soit crédité. 6. Confirmez que le destinataire ne fait pas l'objet d'une suppression d'espace de travail. 7. Utilisez le jeton d'accès au porteur TextTree contre `POST /api/v1/messages`. 8. Vérifiez `GET /api/v1/messages/:id` ou inspectez `/app` pour connaître le statut du fournisseur et du financement. ## Intégration programmatique Le API actuel expose les paramètres d'amorçage et de lancement du compte pour les utilisateurs et agents authentifiés : - `POST /api/v1/accounts` pour créer des comptes sans tête avec nom d'utilisateur/mot de passe - `POST /mcp/accounts` pour le même bootstrap sans tête dans l'espace de noms MCP - `GET /api/v1/onboarding` avec `onboarding:read` - `POST /api/v1/onboarding/api-key` avec `onboarding:write` pour émettre un jeton au porteur `txt_...` avec scopes - `POST /api/v1/onboarding/funding-invoices` avec `onboarding:write` - `GET /api/v1/onboarding/funding-invoices/:id` avec `onboarding:read` - `POST /api/v1/onboarding/branded-request` avec `onboarding:write` Le bootstrap sans tête renvoie des codes de sauvegarde uniques et un jeton de porteur `txt_...` de TextTree avec les oscilloscopes de API/MCP. Le même statut de financement est disponible pour les agents via les outils MCP `onboarding.status`, `onboarding.create_invoice` et `onboarding.invoice_status`. ## Commandes de vérification -`pnpm test` -`pnpm verify` -`pnpm app:test` -`pnpm www:check` -`pnpm www:build` ## Ce que garantit la version alpha actuelle - espaces de noms de route stables - Configuration Ecto prête pour le néon - Files d'attente Oban pour le travail de messagerie et les webhooks - Authentification native Phoenix et normalisation de l'identité locale - appliquer les suppressions d'espace de travail et de campagne - rapprochement STOP/exclusion fournisseur sur les suppressions d'espaces de travail - autorisation de dépenses avant exécution chez le fournisseur - ingestion vérifiée de webhooks de messagerie et de financement - Audits d'exécution MCP, quotas et politique de délai d'attente ## Ce qui n'est pas encore public La version alpha actuelle conserve toujours une partie de la configuration critique dans l'application authentifiée au lieu de points de terminaison publics API : - gestion des suppressions d'espaces de travail/campagnes - gestion des limites de dépenses - rotation du code de secours dans le navigateur après le bootstrap initial sans tête