gtc setup
Überblick
Abschnitt betitelt „Überblick“Der Befehl gtc setup konfiguriert Provider in deinem Greentic-Bundle. Er führt für jeden aktivierten Provider Setup-Flows aus, sammelt Zugangsdaten und konfiguriert Webhooks.
Verwendung
Abschnitt betitelt „Verwendung“gtc setup [OPTIONS] <BUNDLE_PATH>Optionen
Abschnitt betitelt „Optionen“| Option | Beschreibung |
|---|---|
--answers <FILE> | Pfad zur Answer-Datei (nicht interaktiv) |
--dry-run | Setup in der Vorschau anzeigen, ohne Änderungen vorzunehmen |
--emit-answers <FILE> | Answer-Vorlage erzeugen |
--advanced | Optionale Felder in die Answer-Vorlage aufnehmen |
--provider <NAME> | Nur einen bestimmten Provider einrichten |
--skip <NAME> | Bestimmten Provider überspringen |
-v, --verbose | Ausführliche Ausgabe aktivieren |
Interaktives Setup
Abschnitt betitelt „Interaktives Setup“Führe das Setup interaktiv aus, um für jeden Provider abgefragt zu werden:
gtc setup ./my-bundleDie CLI fragt nach:
- Provider-Zugangsdaten (API keys, tokens)
- Öffentliche URL für Webhooks
- Optionalen Konfigurationsoptionen
Nicht interaktives Setup
Abschnitt betitelt „Nicht interaktives Setup“Answer-Vorlage erzeugen
Abschnitt betitelt „Answer-Vorlage erzeugen“Erzeuge zuerst eine Vorlage mit allen erforderlichen Feldern:
# 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-bundleFormat der Answer-Datei
Abschnitt betitelt „Format der Answer-Datei“{ "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: falseAnswers anwenden
Abschnitt betitelt „Answers anwenden“gtc setup --answers answers.json ./my-bundleProvider-spezifische Konfiguration
Abschnitt betitelt „Provider-spezifische Konfiguration“Telegram
Abschnitt betitelt „Telegram“{ "messaging-telegram": { "enabled": true, "public_base_url": "https://your-domain.com", "bot_token": "123456789:ABCdefGHIjklMNOpqrsTUVwxyz" }}So erhältst du die Zugangsdaten:
- Schreibe @BotFather auf Telegram
- Sende
/newbotund folge den Anweisungen - Kopiere den Bot-Token
{ "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" }}So erhältst du die Zugangsdaten:
- Gehe zu api.slack.com/apps
- Erstelle eine neue App oder wähle eine vorhandene
- Hole den Bot Token aus OAuth & Permissions
- Hole die App ID aus Basic Information
- Hole den Configuration Token aus App Manifest
Microsoft Teams
Abschnitt betitelt „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 (über Meta)
Abschnitt betitelt „WhatsApp (über Meta)“{ "messaging-whatsapp": { "enabled": true, "public_base_url": "https://your-domain.com", "phone_number_id": "123456789", "access_token": "EAAxxxxx", "verify_token": "your-verify-token" }}Konfiguration der öffentlichen URL
Abschnitt betitelt „Konfiguration der öffentlichen URL“ngrok verwenden
Abschnitt betitelt „ngrok verwenden“# 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 answersCloudflared verwenden
Abschnitt betitelt „Cloudflared verwenden“# Cloudflared generates URL automatically with gtc startgtc start ./my-bundle --cloudflared onAusführung des Setup-Flows
Abschnitt betitelt „Ausführung des Setup-Flows“Wenn du gtc setup ausführst, passiert Folgendes:
-
Bundle-Konfiguration laden
Liest
greentic.demo.yaml, um Provider zu finden. -
Answers validieren
Prüft, ob alle erforderlichen Felder vorhanden sind.
-
Setup-Flows ausführen
Führt den
setup_flowjedes Providers aus (z. B. Webhook-Registrierung). -
Zugangsdaten speichern
Speichert Zugangsdaten im konfigurierten Secret-Store.
-
Verifizierung ausführen
Führt
verify_flowaus, um zu bestätigen, dass das Setup funktioniert hat.
Selektives Setup
Abschnitt betitelt „Selektives Setup“Einzelnen Provider einrichten
Abschnitt betitelt „Einzelnen Provider einrichten“gtc setup --provider messaging-telegram ./my-bundleBestimmten Provider überspringen
Abschnitt betitelt „Bestimmten Provider überspringen“gtc setup --skip messaging-teams ./my-bundleSetup erneut ausführen
Abschnitt betitelt „Setup erneut ausführen“# Force re-setup (useful after URL changes)gtc start ./my-bundle --force-setupFehlerbehebung
Abschnitt betitelt „Fehlerbehebung“Webhook-Registrierung fehlgeschlagen
Abschnitt betitelt „Webhook-Registrierung fehlgeschlagen“Error: Failed to register webhook: 401 UnauthorizedPrüfe, ob dein Bot-Token korrekt und nicht abgelaufen ist.
Erforderliches Feld fehlt
Abschnitt betitelt „Erforderliches Feld fehlt“Error: Missing required field 'bot_token' for messaging-telegramStelle sicher, dass alle erforderlichen Felder in deiner Answer-Datei enthalten sind.
Öffentliche URL nicht erreichbar
Abschnitt betitelt „Öffentliche URL nicht erreichbar“Error: Webhook verification failed: Connection refusedStelle sicher, dass deine öffentliche URL aus dem Internet erreichbar ist. Prüfe, ob ngrok/cloudflared läuft.
Zugangsdaten nicht gefunden
Abschnitt betitelt „Zugangsdaten nicht gefunden“Error: Secret 'slack_bot_token' not foundFühre gtc setup aus, um den Provider zu konfigurieren, oder prüfe deine Answer-Datei.
Best Practices
Abschnitt betitelt „Best Practices“- Answers-Dateien in CI/CD verwenden - Interaktive Prompts in automatisierten Pipelines vermeiden
- Zugangsdaten sicher aufbewahren - Keine Answer-Dateien mit echten Tokens in git committen
- Umgebungsvariablen verwenden - Secrets über
$ENV_VARin Answers referenzieren - Mit dry-run testen - Setup vor Änderungen in der Vorschau prüfen
- Bei URL-Änderungen neu erzeugen - Setup erneut ausführen, wenn sich die öffentliche URL ändert
Nächste Schritte
Abschnitt betitelt „Nächste Schritte“- gtc start - Den Runtime-Server ausführen
- Telegram-Setup - Detaillierte Telegram-Anleitung
- Slack-Setup - Detaillierte Slack-Anleitung