Skip to content
تم إنشاء هذه الصفحة وترجمتها بمساعدة الذكاء الاصطناعي. إذا لاحظت أي أخطاء، لا تتردد في المساهمة في تحسينها. تعديل على GitHub

التثبيت

المتطلبات الأولية

  • سلسلة أدوات Rust (إصدار 2024 أو أحدث)
  • نسخة OpenPR تعمل ويمكنها إرسال أحداث webhook

البناء من المصدر

استنسخ المستودع وابنه في وضع الإصدار:

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

الثنائي مُنتَج في target/release/openpr-webhook.

الاعتماديات

OpenPR-Webhook مبني على المكتبات الأساسية التالية:

الحزمةالغرض
axum 0.8إطار عمل خادم HTTP
tokio 1بيئة تشغيل غير متزامنة
reqwest 0.12عميل HTTP لإعادة توجيه webhook والاستدعاءات
hmac + sha2التحقق من توقيع HMAC-SHA256
toml 0.8تحليل الإعداد
tokio-tungstenite 0.28عميل WebSocket لوضع النفق
tracingالسجل المهيكل

ملف الإعداد

أنشئ ملف config.toml. تحمّل الخدمة هذا الملف عند بدء التشغيل. راجع مرجع الإعداد للمخطط الكامل.

مثال بسيط:

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/..."

التشغيل

bash
# Default: loads config.toml from the current directory
./target/release/openpr-webhook

# Specify a custom config path
./target/release/openpr-webhook /etc/openpr-webhook/config.toml

السجل

يُتحكم في السجل بمتغير البيئة RUST_LOG. المستوى الافتراضي هو openpr_webhook=info.

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

# Trace-level logging (very verbose)
RUST_LOG=openpr_webhook=trace ./target/release/openpr-webhook

فحص الصحة

تكشف الخدمة نقطة نهاية GET /health تُعيد ok عندما يكون الخادم يعمل:

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

خدمة Systemd (اختياري)

لنشر الإنتاج على 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

الخطوات التالية

Released under the Apache-2.0 License.