gtc setup
Resumen
Sección titulada «Resumen»El comando gtc setup configura providers en tu bundle de Greentic. Ejecuta flows de configuración para cada provider habilitado, recopilando credenciales y configurando webhooks.
gtc setup [OPTIONS] <BUNDLE_PATH>Opciones
Sección titulada «Opciones»| Opción | Descripción |
|---|---|
--answers <FILE> | Ruta al archivo de respuestas (no interactivo) |
--dry-run | Previsualiza la configuración sin realizar cambios |
--emit-answers <FILE> | Genera una plantilla de respuestas |
--advanced | Incluye campos opcionales en la plantilla de respuestas |
--provider <NAME> | Configura solo un provider específico |
--skip <NAME> | Omite un provider específico |
-v, --verbose | Habilita salida detallada |
Configuración interactiva
Sección titulada «Configuración interactiva»Ejecuta la configuración en modo interactivo para que se te solicite información para cada provider:
gtc setup ./my-bundleLa CLI solicitará:
- Credenciales del provider (API keys, tokens)
- URL pública para webhooks
- Opciones de configuración opcionales
Configuración no interactiva
Sección titulada «Configuración no interactiva»Generar una plantilla de respuestas
Sección titulada «Generar una plantilla de respuestas»Primero, genera una plantilla con todos los campos requeridos:
# Basic template (required fields only)gtc setup --dry-run --emit-answers answers.json ./my-bundle
# Full template (including optional fields)gtc setup --dry-run --emit-answers answers.json --advanced ./my-bundleFormato del archivo de respuestas
Sección titulada «Formato del archivo de respuestas»{ "messaging-telegram": { "enabled": true, "public_base_url": "https://xxx.ngrok-free.app", "bot_token": "123456789:ABCdefGHIjklMNOpqrsTUVwxyz" }, "messaging-slack": { "enabled": true, "public_base_url": "https://xxx.ngrok-free.app", "api_base_url": "https://slack.com/api", "bot_token": "xoxb-xxx-xxx-xxx", "slack_app_id": "A07XXXXXX", "slack_configuration_token": "xoxe.xoxp-xxx" }, "messaging-teams": { "enabled": false }}messaging-telegram: enabled: true public_base_url: https://xxx.ngrok-free.app bot_token: "123456789:ABCdefGHIjklMNOpqrsTUVwxyz"
messaging-slack: enabled: true public_base_url: https://xxx.ngrok-free.app api_base_url: https://slack.com/api bot_token: xoxb-xxx-xxx-xxx slack_app_id: A07XXXXXX slack_configuration_token: xoxe.xoxp-xxx
messaging-teams: enabled: falseAplicar respuestas
Sección titulada «Aplicar respuestas»gtc setup --answers answers.json ./my-bundleConfiguración específica por provider
Sección titulada «Configuración específica por provider»Telegram
Sección titulada «Telegram»{ "messaging-telegram": { "enabled": true, "public_base_url": "https://your-domain.com", "bot_token": "123456789:ABCdefGHIjklMNOpqrsTUVwxyz" }}Cómo obtener credenciales:
- Envía un mensaje a @BotFather en Telegram
- Envía
/newboty sigue las indicaciones - Copia el token del bot
{ "messaging-slack": { "enabled": true, "public_base_url": "https://your-domain.com", "bot_token": "xoxb-xxx-xxx-xxx", "slack_app_id": "A07XXXXXX", "slack_configuration_token": "xoxe.xoxp-xxx" }}Cómo obtener credenciales:
- Ve a api.slack.com/apps
- Crea una app nueva o selecciona una existente
- Obtén el Bot Token en OAuth & Permissions
- Obtén el App ID en Basic Information
- Obtén el Configuration Token en App Manifest
Microsoft Teams
Sección titulada «Microsoft Teams»{ "messaging-teams": { "enabled": true, "public_base_url": "https://your-domain.com", "app_id": "your-app-id", "app_password": "your-app-password", "tenant_id": "your-tenant-id" }}WhatsApp (via Meta)
Sección titulada «WhatsApp (via Meta)»{ "messaging-whatsapp": { "enabled": true, "public_base_url": "https://your-domain.com", "phone_number_id": "123456789", "access_token": "EAAxxxxx", "verify_token": "your-verify-token" }}Configuración de URL pública
Sección titulada «Configuración de URL pública»Usar ngrok
Sección titulada «Usar ngrok»# Start ngrok in separate terminalngrok http 8080
# Copy the HTTPS URL (e.g., https://abc123.ngrok-free.app)# Use this as public_base_url in answersUsar Cloudflared
Sección titulada «Usar Cloudflared»# Cloudflared generates URL automatically with gtc startgtc start ./my-bundle --cloudflared onEjecución del flow de configuración
Sección titulada «Ejecución del flow de configuración»Cuando ejecutas gtc setup, hace lo siguiente:
-
Carga la configuración del bundle
Lee
greentic.demo.yamlpara encontrar providers. -
Valida las respuestas
Comprueba que todos los campos requeridos estén presentes.
-
Ejecuta los flows de configuración
Ejecuta el
setup_flowde cada provider (por ejemplo, registro de webhooks). -
Almacena las credenciales
Guarda las credenciales en el secrets store configurado.
-
Ejecuta la verificación
Ejecuta
verify_flowpara confirmar que la configuración funcionó.
Configuración selectiva
Sección titulada «Configuración selectiva»Configurar un solo provider
Sección titulada «Configurar un solo provider»gtc setup --provider messaging-telegram ./my-bundleOmitir un provider específico
Sección titulada «Omitir un provider específico»gtc setup --skip messaging-teams ./my-bundleEjecutar la configuración de nuevo
Sección titulada «Ejecutar la configuración de nuevo»# Force re-setup (useful after URL changes)gtc start ./my-bundle --force-setupSolución de problemas
Sección titulada «Solución de problemas»Falló el registro del webhook
Sección titulada «Falló el registro del webhook»Error: Failed to register webhook: 401 UnauthorizedVerifica que el token de tu bot sea correcto y no haya expirado.
Falta un campo requerido
Sección titulada «Falta un campo requerido»Error: Missing required field 'bot_token' for messaging-telegramAsegúrate de que todos los campos requeridos estén en tu archivo de respuestas.
La URL pública no es accesible
Sección titulada «La URL pública no es accesible»Error: Webhook verification failed: Connection refusedAsegúrate de que tu URL pública sea accesible desde internet. Verifica que ngrok/cloudflared esté en ejecución.
Credencial no encontrada
Sección titulada «Credencial no encontrada»Error: Secret 'slack_bot_token' not foundEjecuta gtc setup para configurar el provider, o revisa tu archivo de respuestas.
Buenas prácticas
Sección titulada «Buenas prácticas»- Usa archivos de respuestas en CI/CD - Evita prompts interactivos en pipelines automatizados
- Mantén seguras las credenciales - No hagas commit de archivos de respuestas con tokens reales a git
- Usa variables de entorno - Referencia secrets mediante
$ENV_VARen las respuestas - Prueba con dry-run - Previsualiza la configuración antes de aplicar cambios
- Regenera al cambiar la URL - Vuelve a ejecutar la configuración cuando cambie tu URL pública
Siguientes pasos
Sección titulada «Siguientes pasos»- gtc start - Ejecutar el servidor runtime
- Telegram Setup - Guía detallada de Telegram
- Slack Setup - Guía detallada de Slack