Raspberry Pi
ToutWAF on a Raspberry Pi or another 64-bit ARM server: required system, target boards, memory and storage. Experimental: never tried on real ARM hardware.
أي إصدار ستثبّت
الإصدار العام هو إصدار تطوير باسم 0.3.0-dev. يبقى اسمه ثابتاً: كل نشر يحلّ محل السابق، ويميّز معرّف البناء بين بنائين. لا يوجد إصدار مستقر بعد: لن يُنشر إلا بعد اختبار كل نظام وكل حزمة من البداية إلى النهاية. لذلك تثبّت الأوامر في هذه الصفحة من قناة dev. قد يحتوي إصدار التطوير على أخطاء: جرّبه على موقع اختبار قبل أن تعتمد عليه.
At a glance
- A 64-bit system is required: Raspberry Pi OS 64-bit (Bookworm / Debian 12 or newer), Ubuntu 22.04 or 24.04 arm64, Debian 12 or 13 arm64. 32-bit (armv7l, armhf) is not supported and not planned, even on a Pi 4 or 5.
- Target boards: Raspberry Pi 5, 4, 400 and CM4; Pi 3 and CM3 (1 GB: data plane only); Pi Zero 2 W (512 MB: not recommended). Pi 2 v1.1, Zero, Zero W and Pi 1: not supported. Other arm64 servers (Graviton, Ampere) use the same build.
- Memory: the installer warns below 1 GB; for all-in-one (console, data plane and policy database on the same board) plan for 2 GB or more.
- Storage: prefer an SSD or a good USB or NVMe drive to an SD card, which wears out with continuous writes and can be corrupted by a power loss. Choose the location with --home.
The commands, step by step
Check that the system is 64-bit
uname -m must print aarch64 and getconf LONG_BIT must print 64. Otherwise flash a 64-bit image with Raspberry Pi Imager: an in-place conversion is not possible.
uname -m # aarch64 = 64-bit kernel (armv7l = 32-bit: unsupported)
getconf LONG_BIT # must print 64
dpkg --print-architecture # Debian family: arm64 is required (armhf = 32-bit system)Check compatibility without installing
The script prints the verdict and the table of supported systems, and changes nothing on the machine.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
sudo bash install.sh --check-compatثبّت باستخدام المثبّت ذي السطر الواحد
ينزّل السكربت الملفات التنفيذية الأصلية المناسبة لمعماريتك، وينشئ مستخدماً مخصصاً بلا امتيازات، ويثبّت خدمتي systemd المحصّنتين toutwaf-dp (مستوى البيانات، المنفذان 80 و443) وtoutwaf-cp (مستوى التحكم ووحدة التحكم، المنفذ 9443)، ثم يطبع بيانات تسجيل الدخول الأول.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bashخيارات المثبّت
يقيم التثبيت الجديد في مجلد رئيسي واحد هو /var/toutwaf (يضم bin وconf وdata وlogs؛ غيّره عبر --home DIR أو TOUTWAF_HOME)، وتُربط أدوات سطر الأوامر في /usr/local/bin. أما التثبيت الأقدم فيحتفظ بمساراته (/etc/toutwaf و/var/lib/toutwaf) ولا يُنقل أبداً.
# only let your admin network reach the console (port 9443)
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --console-from 203.0.113.0/24
# do not touch the host firewall / choose the installation home
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --no-firewall
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --home /opt/toutwaf
# name the channel explicitly (the installer of the dev branch already takes the dev channel; no stable version exists yet)
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --channel devWatch memory before putting real traffic on it
No memory measurement has been made on ARM: watch it, keep the number of sites and the rule sets small on a small board, and enable swap with care (never heavy swap on an SD card).
systemctl status toutwaf-dp --no-pager
free -hإدارة الخدمات
تبدأ الخدمتان عند الإقلاع. استخدم هذه الأوامر لتشغيلهما أو إيقافهما أو إعادة تشغيلهما.
sudo systemctl enable --now toutwaf-cp toutwaf-dp
sudo systemctl restart toutwaf-cp toutwaf-dp
sudo systemctl stop toutwaf-dp toutwaf-cpتحقق من الخدمات
sudo systemctl status toutwaf-cp toutwaf-dp --no-pager
toutwafctl doctor
curl -kI https://127.0.0.1:9443/
curl -s http://127.0.0.1:9101/healthz
sudo journalctl -u toutwaf-dp -u toutwaf-cp -n 50 --no-pagerالترقية
خذ نسخة احتياطية من الإعدادات والبيانات ثم شغّل المثبّت من جديد: يحتفظ بإعداداتك ويتراجع تلقائياً إذا لم يصبح الإصدار الجديد سليماً. المسارات المعروضة هي مسارات تثبيت جديد (/var/toutwaf)؛ أما التثبيت الأقدم فيحتفظ بـ /etc/toutwaf و/var/lib/toutwaf. يمكنك أيضاً التحديث من اللوحة عبر صفحة التحديثات.
sudo mkdir -p /var/toutwaf.bak
sudo cp -a /var/toutwaf/conf /var/toutwaf/data /var/toutwaf.bak/
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh | sudo bash -s -- --update --yes
curl -s http://127.0.0.1:9101/healthzإلغاء التثبيت
تزيل الكتلة الأولى الخدمات والملفات التنفيذية وقواعد جدار الحماية التي أضافها ToutWAF وتُبقي بياناتك. وتحذف الثانية أيضاً الإعدادات والبيانات والسجلات.
curl -fsSL https://repo.qu3ntin.com/toutwaf/toutwaf/-/raw/dev/install.sh -o install.sh
sudo bash install.sh --uninstallsudo bash install.sh --uninstall --purgeWhat is not verified
We prefer to say it plainly.
- The arm64 build has been compiled and run only under emulation (QEMU): it has not been tested on any Raspberry Pi or other real ARM hardware. What this page says about real hardware is guidance, not a validated result.
- The installer has not been run on arm64 (systemd, firewall, units); the hardened release build for arm64 has not been built.
- No performance, memory or SD-card measurement has been made, and none is claimed: test your own traffic (toutwaf-dp bench) before relying on it.