Ir al contenido

gtc setup

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.

Ventana de terminal
gtc setup [OPTIONS] <BUNDLE_PATH>
OpciónDescripción
--answers <FILE>Ruta al archivo de respuestas (no interactivo)
--dry-runPrevisualiza la configuración sin realizar cambios
--emit-answers <FILE>Genera una plantilla de respuestas
--advancedIncluye campos opcionales en la plantilla de respuestas
--provider <NAME>Configura solo un provider específico
--skip <NAME>Omite un provider específico
-v, --verboseHabilita salida detallada

Ejecuta la configuración en modo interactivo para que se te solicite información para cada provider:

Ventana de terminal
gtc setup ./my-bundle

La CLI solicitará:

  • Credenciales del provider (API keys, tokens)
  • URL pública para webhooks
  • Opciones de configuración opcionales

Primero, genera una plantilla con todos los campos requeridos:

Ventana de terminal
# 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-bundle
answers.json
{
"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
}
}
Ventana de terminal
gtc setup --answers answers.json ./my-bundle
{
"messaging-telegram": {
"enabled": true,
"public_base_url": "https://your-domain.com",
"bot_token": "123456789:ABCdefGHIjklMNOpqrsTUVwxyz"
}
}

Cómo obtener credenciales:

  1. Envía un mensaje a @BotFather en Telegram
  2. Envía /newbot y sigue las indicaciones
  3. 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:

  1. Ve a api.slack.com/apps
  2. Crea una app nueva o selecciona una existente
  3. Obtén el Bot Token en OAuth & Permissions
  4. Obtén el App ID en Basic Information
  5. Obtén el Configuration Token en App Manifest
{
"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"
}
}
{
"messaging-whatsapp": {
"enabled": true,
"public_base_url": "https://your-domain.com",
"phone_number_id": "123456789",
"access_token": "EAAxxxxx",
"verify_token": "your-verify-token"
}
}
Ventana de terminal
# Start ngrok in separate terminal
ngrok http 8080
# Copy the HTTPS URL (e.g., https://abc123.ngrok-free.app)
# Use this as public_base_url in answers
Ventana de terminal
# Cloudflared generates URL automatically with gtc start
gtc start ./my-bundle --cloudflared on

Cuando ejecutas gtc setup, hace lo siguiente:

  1. Carga la configuración del bundle

    Lee greentic.demo.yaml para encontrar providers.

  2. Valida las respuestas

    Comprueba que todos los campos requeridos estén presentes.

  3. Ejecuta los flows de configuración

    Ejecuta el setup_flow de cada provider (por ejemplo, registro de webhooks).

  4. Almacena las credenciales

    Guarda las credenciales en el secrets store configurado.

  5. Ejecuta la verificación

    Ejecuta verify_flow para confirmar que la configuración funcionó.

Ventana de terminal
gtc setup --provider messaging-telegram ./my-bundle
Ventana de terminal
gtc setup --skip messaging-teams ./my-bundle
Ventana de terminal
# Force re-setup (useful after URL changes)
gtc start ./my-bundle --force-setup
Error: Failed to register webhook: 401 Unauthorized

Verifica que el token de tu bot sea correcto y no haya expirado.

Error: Missing required field 'bot_token' for messaging-telegram

Asegúrate de que todos los campos requeridos estén en tu archivo de respuestas.

Error: Webhook verification failed: Connection refused

Asegúrate de que tu URL pública sea accesible desde internet. Verifica que ngrok/cloudflared esté en ejecución.

Error: Secret 'slack_bot_token' not found

Ejecuta gtc setup para configurar el provider, o revisa tu archivo de respuestas.

  1. Usa archivos de respuestas en CI/CD - Evita prompts interactivos en pipelines automatizados
  2. Mantén seguras las credenciales - No hagas commit de archivos de respuestas con tokens reales a git
  3. Usa variables de entorno - Referencia secrets mediante $ENV_VAR en las respuestas
  4. Prueba con dry-run - Previsualiza la configuración antes de aplicar cambios
  5. Regenera al cambiar la URL - Vuelve a ejecutar la configuración cuando cambie tu URL pública