Skip to content
Cette page a été générée et traduite avec l'aide de l'IA. Si vous remarquez des inexactitudes, n'hésitez pas à contribuer. Modifier sur GitHub

Installation

Prérequis

  • Chaîne d'outils Rust (édition 2024 ou ultérieure)
  • Une instance OpenPR en cours d'exécution capable d'envoyer des événements webhook

Compilation depuis les sources

Clonez le dépôt et compilez en mode release :

bash
git clone https://github.com/openprx/openpr-webhook.git
cd openpr-webhook
cargo build --release

Le binaire est produit à target/release/openpr-webhook.

Dépendances

OpenPR-Webhook est construit sur les bibliothèques principales suivantes :

CrateObjectif
axum 0.8Framework de serveur HTTP
tokio 1Runtime asynchrone
reqwest 0.12Client HTTP pour le transfert de webhooks et les callbacks
hmac + sha2Vérification de signature HMAC-SHA256
toml 0.8Analyse de la configuration
tokio-tungstenite 0.28Client WebSocket pour le mode tunnel
tracingJournalisation structurée

Fichier de configuration

Créez un fichier config.toml. Le service charge ce fichier au démarrage. Consultez la Référence de configuration pour le schéma complet.

Exemple minimal :

toml
[server]
listen = "0.0.0.0:9000"

[security]
webhook_secrets = ["your-hmac-secret"]

[[agents]]
id = "notify"
name = "Notification Bot"
agent_type = "webhook"

[agents.webhook]
url = "https://hooks.slack.com/services/..."

Exécution

bash
# Par défaut : charge config.toml depuis le répertoire courant
./target/release/openpr-webhook

# Spécifier un chemin de config personnalisé
./target/release/openpr-webhook /etc/openpr-webhook/config.toml

Journalisation

La journalisation est contrôlée par la variable d'environnement RUST_LOG. Le niveau par défaut est openpr_webhook=info.

bash
# Journalisation debug
RUST_LOG=openpr_webhook=debug ./target/release/openpr-webhook

# Journalisation trace (très verbeux)
RUST_LOG=openpr_webhook=trace ./target/release/openpr-webhook

Vérification de santé

Le service expose un point de terminaison GET /health qui retourne ok lorsque le serveur est en cours d'exécution :

bash
curl http://localhost:9000/health
# ok

Service Systemd (optionnel)

Pour les déploiements en production sous Linux :

ini
[Unit]
Description=OpenPR Webhook Dispatcher
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/openpr-webhook /etc/openpr-webhook/config.toml
Restart=always
RestartSec=5
Environment=RUST_LOG=openpr_webhook=info

[Install]
WantedBy=multi-user.target

Étapes suivantes

Released under the Apache-2.0 License.