التثبيت
يدعم PRX-WAF ثلاث طرق للتثبيت. اختر الطريقة الأنسب لسير عملك.
موصى به
Docker Compose هو أسرع طريقة للبدء. يُشغِّل PRX-WAF وPostgreSQL وواجهة المستخدم الإدارية بأمر واحد.
المتطلبات الأولية
| المتطلب | الحد الأدنى | ملاحظات |
|---|---|---|
| نظام التشغيل | Linux (x86_64, aarch64)، macOS (12+) | Windows عبر WSL2 |
| PostgreSQL | 16+ | مضمَّن في Docker Compose |
| Rust (البناء من المصدر فقط) | 1.82.0 | غير مطلوب لتثبيت Docker |
| Node.js (بناء واجهة المستخدم الإدارية فقط) | 18+ | غير مطلوب لتثبيت Docker |
| Docker | 20.10+ | أو Podman 3.0+ |
| مساحة القرص | 500 ميغابايت | ~100 ميغابايت ثنائي + ~400 ميغابايت بيانات PostgreSQL |
| الذاكرة العشوائية | 512 ميغابايت | يُنصح بـ 2 غيغابايت+ للإنتاج |
الطريقة 1: Docker Compose (موصى به)
استنسخ المستودع وابدأ جميع الخدمات بـ Docker Compose:
git clone https://github.com/openprx/prx-waf
cd prx-waf
# راجع وعدِّل متغيرات البيئة في docker-compose.yml
# (كلمة مرور قاعدة البيانات وبيانات اعتماد المسؤول ومنافذ الاستماع)
docker compose up -dيُشغِّل هذا ثلاثة حاويات:
| الحاوية | المنفذ | الوصف |
|---|---|---|
prx-waf | 80، 443 | الوكيل العكسي (HTTP + HTTPS) |
prx-waf | 9527 | واجهة برمجة الإدارة + واجهة Vue 3 |
postgres | 5432 | قاعدة بيانات PostgreSQL 16 |
تحقق من النشر:
# تحقق من حالة الحاوية
docker compose ps
# تحقق من نقطة نهاية الصحة
curl http://localhost:9527/healthافتح واجهة المستخدم الإدارية على http://localhost:9527 وسجِّل الدخول ببيانات الاعتماد الافتراضية: admin / admin.
تغيير كلمة المرور الافتراضية
غيِّر كلمة مرور المسؤول الافتراضية فور تسجيل الدخول الأول. انتقل إلى الإعدادات > الحساب في واجهة المستخدم الإدارية أو استخدم API.
Docker Compose مع Podman
إذا كنت تستخدم Podman بدلاً من Docker:
podman-compose up -d --buildDNS في Podman
عند استخدام Podman، عنوان محلل DNS للاتصال بين الحاويات هو 10.89.0.1 بدلاً من 127.0.0.11 الخاص بـ Docker. يتعامل ملف docker-compose.yml المرفق مع هذا تلقائياً.
الطريقة 2: تثبيت Cargo
إذا كان لديك Rust مثبت، يمكنك تثبيت PRX-WAF من المستودع:
git clone https://github.com/openprx/prx-waf
cd prx-waf
cargo build --releaseالملف الثنائي موجود في target/release/prx-waf. انسخه إلى PATH:
sudo cp target/release/prx-waf /usr/local/bin/prx-wafتبعيات البناء
يُجمِّع بناء Cargo التبعيات الأصلية. على Debian/Ubuntu قد تحتاج:
sudo apt install -y build-essential pkg-config libssl-devعلى macOS، يلزم توافر Xcode Command Line Tools:
xcode-select --installإعداد قاعدة البيانات
يتطلب PRX-WAF قاعدة بيانات PostgreSQL 16+:
# إنشاء قاعدة البيانات والمستخدم
createdb prx_waf
createuser prx_waf
# تشغيل الترحيلات
./target/release/prx-waf -c configs/default.toml migrate
# إنشاء مستخدم المسؤول الافتراضي (admin/admin)
./target/release/prx-waf -c configs/default.toml seed-adminبدء تشغيل الخادم
./target/release/prx-waf -c configs/default.toml runيُشغِّل هذا الوكيل العكسي على المنفذين 80/443 وواجهة برمجة الإدارة على المنفذ 9527.
الطريقة 3: البناء من المصدر (للتطوير)
للتطوير مع إعادة التحميل المباشر لواجهة المستخدم الإدارية:
git clone https://github.com/openprx/prx-waf
cd prx-waf
# بناء الواجهة الخلفية بـ Rust
cargo build
# بناء واجهة المستخدم الإدارية
cd web/admin-ui
npm install
npm run build
cd ../..
# بدء تشغيل خادم التطوير
cargo run -- -c configs/default.toml runبناء واجهة المستخدم الإدارية للإنتاج
cd web/admin-ui
npm install
npm run buildتُضمَّن الملفات المبنية في الملف الثنائي بـ Rust في وقت التجميع وتُخدَّم بواسطة خادم API.
خدمة systemd
للنشرات الإنتاجية على المعدن المجرد، أنشئ خدمة systemd:
# /etc/systemd/system/prx-waf.service
[Unit]
Description=PRX-WAF Web Application Firewall
After=network.target postgresql.service
[Service]
Type=simple
User=prx-waf
ExecStart=/usr/local/bin/prx-waf -c /etc/prx-waf/config.toml run
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.targetsudo systemctl enable --now prx-waf
sudo systemctl status prx-wafالتحقق من التثبيت
بعد التثبيت، تحقق من تشغيل PRX-WAF:
# تحقق من نقطة نهاية الصحة
curl http://localhost:9527/health
# تحقق من واجهة المستخدم الإدارية
curl -s http://localhost:9527 | head -5سجِّل الدخول إلى واجهة المستخدم الإدارية على http://localhost:9527 للتحقق من تحميل لوحة التحكم بشكل صحيح.
الخطوات التالية
- البدء السريع -- حماية تطبيقك الأول في 5 دقائق
- الإعداد -- تخصيص إعدادات PRX-WAF
- محرك القواعد -- فهم خط أنابيب الكشف