
opensoho v0.15.0
منصة خفيفة لإدارة أجهزة OpenWRT للشبكات الصغيرة. إعدادات مركزية، ومراقبة، وإدارة WiFi لعدد 2–20 جهازًا مع نشر بسيط وتوافق مع OpenWISP.
تحذير: هذا إصدار مبكر، يرجى قراءة ملاحظات الإصدار لجميع الإصدارات حتى الآن
OpenSOHO
صُمم OpenSOHO لإدارة عدد صغير من أجهزة الشبكة القائمة على OpenWRT. ومن هنا جاء اسم SOHO من Small Office Home Office (SOHO) Networks.
- من 2 إلى 20 جهازًا (لا يوجد حد صارم)
- لا تعددية مستأجرين (Multi-tenancy)
- متوافق مع openwisp-config و openwisp-monitoring.
- بسيط في النشر
إنه مستوحى من OpenWISP، لكنه يستهدف الشبكات الأصغر من أن تتم إدارتها باستخدام OpenWISP. كما ذكر OpenWisp:
ومع ذلك، قد لا يكون OpenWISP الخيار الأنسب للشبكات الصغيرة جدًا (أقل من 20 جهازًا)، أو المؤسسات التي تفتقر إلى الخبرة في مجال تقنية المعلومات، أو الشركات التي تبحث عن بدائل مفتوحة المصدر لأغراض توفير التكاليف فقط.
الإصدارات التالية تم اختبارها
- OpenWRT 24.10.x DSA
- OpenWRT 25.12.x DSA (دعم تجريبي)
البدء مع OpenSOHO
نظرة عامة
يتطلب إعداد OpenSOHO بضع خطوات بسيطة، كل منها مُفصّل في الأقسام أدناه:
- ثبّت OpenSOHO على خادمك.
- ثبّت حزم OpenWisp على أجهزة OpenWRT الخاصة بك.
- هيّئ OpenWisp على كل جهاز من أجهزة OpenWRT لديك للاتصال بـ OpenSOHO.
- ابدأ الإعداد في OpenSOHO!
تثبيت OpenSOHO
-
نزّل أحدث إصدار من OpenSOHO (أو استخدم حاوية docker)
-
شغّل OpenSOHO
أولاً، اختر سرًا مشتركًا (shared secret) يسمح لأجهزة OpenWRT (باستخدام openwisp-config) بالتسجيل في OpenSOHO.
اختر سلسلة عشوائية طويلة لتحقيق الأمان الأمثل.
يجب أن يطابق ما ستُهيّئه في LuCI في الخطوات التالية.
OPENSOHO_SHARED_SECRET=randompassphrase ./opensoho serve --http 0.0.0.0:8090
الآن، يُخرج OpenSOHO عنوان URL في سطر الأوامر يسمح لك بإنشاء حساب المسؤول. ما عليك سوى فتح عنوان URL في متصفحك.
بدلاً من ذلك، يمكنك إنشاء حساب المسؤول عبر سطر الأوامر:
./opensoho superuser upsert EMAIL PASS
إعداد (تبنّي) أجهزة OpenWRT
تثبيت حزم OpenWISP
opkg install openwisp-config openwisp-monitoring luci-app-openwisp # OpenWRT 24.10
apk add openwisp-config openwisp-monitoring luci-app-openwisp # OpenWRT 25.12+
إذا كنت تريد استخدام توجيه العملاء 802.11v (client steering)، فإن الحزمة الكاملة wpad-mbedtls ضرورية.
على OpenWRT 24.10
opkg remove wpad-basic-mbedtls && \
opkg install wpad-mbedtls && \
service wpad restart
على OpenWRT 25.12+
apk del wpad-basic-mbedtls && \
apk add wpad-mbedtls && \
service wpad restart
بعد تثبيت wpad-mbedtls، جرّب service restart wpad أولاً، وإلا فقد تكون هناك حاجة إلى إعادة تشغيل للتبديل إلى ملف wpad الثنائي الجديد. إذا لم تفعل ذلك، فقد تحصل على خطأ مثل daemon.notice netifd: radio1 (28210): WARNING (wireless_add_process): executable path /usr/sbin/wpad does not match process 1842 path (/usr/sbin/wpad (deleted)).
(يُرجى ملاحظة أن توجيه العملاء 802.11v لا يزال قيد التطوير)
تهيئة OpenWISP في LuCI:
- اضبط
Server URLوShared secretفقط.- لا تُضِف شرطة مائلة إلى
Server URL. مثال على عنوان URL:http://192.168.1.1:8090 - السر المشترك هو القيمة التي اخترتها سابقًا (
OPENSOHO_SHARED_SECRET).
- لا تُضِف شرطة مائلة إلى
- يمكنك اختياريًا خفض
Update Intervalإلى 30 ثانية لتحديثات أسرع. (يقوم OpenSOHO بذلك نيابةً عنك إذا لم تفعل) - كما يقوم OpenSOHO بتفعيل المراقبة ويخفض فترة المراقبة إلى 15 ثانية لتحديثات أسرع لحالة الشبكة.
يُوصى بشدة بتفعيل المراقبة، لأن OpenSOHO يستنتج الكثير من إعدادات OpenWRT الحالية ويقوم بتعبئتها لتسهيل الإعداد.
إعداد OpenSOHO
- انتظر حتى تسجّل أجهزة OpenWrt نفسها تلقائيًا باستخدام السر المشترك.
- اضبط علامة
Enabledالخاصة بالجهاز على true. - اضبط
numradiosعلى القيمة الصحيحة. على سبيل المثال، بالنسبة لجهاز 2.4 + 5GHz، ستكون هذه القيمة 2. - أنشئ نقطة وصول Wi-Fi (SSID+KEY). يتيح هذا الإجراء لـ OpenSOHO اكتشاف إعداد الراديو بشكل صحيح عند تسجيل الجهاز.
- اربط نقطة الوصول Wi-Fi المُعدّة بجهاز ليتم إعداده.
- حاليًا، سيتم إعداد كل شبكة تلقائيًا على جميع أجهزة الراديو (المُعدّة باستخدام
numradios). - يمكن أيضًا تشغيل أو إيقاف مؤشرات LED اختياريًا (إعداد ثابت فقط في الوقت الحالي).
- إعداد ترددات الراديو مدعوم الآن. يقرأ OpenSOHO إعداد الراديو الحالي مرة واحدة ويجعله متاحًا ضمن إعداد أجهزة الراديو (radios config). قد يستغرق ظهور إعداد الراديو دقيقة أو دقيقتين (تحتاج خطوتا الإعداد والمراقبة بعض الوقت لاكتمالهما).
لوحة المعلومات
يأتي OpenSOHO مع لوحة معلومات أساسية. يمكن الوصول إليها عبر الزر في أقصى يسار الشريط الجانبي، مباشرة أسفل شعار OpenSOHO.
يُرجى ملاحظة أن هذه اللوحة ليست بديلاً عن أدوات الرسوم البيانية الأكثر تقدمًا، فهي أساسية وستُبقى كذلك عن قصد.
الإعداد
يمكن الآن الوصول إلى OpenSoho عبر http://ipaddress:8090/_/
هناك عدة مجموعات إعداد:
العملاء
هؤلاء هم العملاء المتصلون بشبكة Wi-Fi. هذا الجدول للقراءة فقط، باستثناء الاسم المستعار (alias). يمكن استخدامه لإعطاء الأجهزة اسمًا يسهل قراءته. يعمل هذا بشكل صحيح فقط عندما لا يقوم العميل بتبديل عنوان mac الخاص به عشوائيًا.
العملاء المتصلون
يحتوي على قائمة العملاء المتصلين حاليًا بشبكة Wi-Fi الخاصة بك. لعرض عنوان IP للجهاز، يحتاج OpenSOHO إلى الوصول إلى سجلات DHCP (DHCP leases) الخاصة بك. للقيام بذلك، يجب أن يكون برنامج المراقبة الخفي openwisp monitoring قيد التشغيل على الجهاز الذي يحتوي على خادم DHCP. الأجهزة ذات عنوان IP الثابت لن تحصل على عنوان IP. هذا قيد معروف منذ الإصدار 0.12.0.
الأجهزة
هذه هي الأجهزة المتصلة.
- استخدم enable/disable لتعطيل تحديثات الإعداد. هذا مفيد لتجنب تحديث جميع الأجهزة دفعة واحدة. تبقى المراقبة نشطة.
- حالة الصحة (Health status) هي حقل للقراءة فقط.
healthyتعني أن الجهاز تواصل خلال الدقيقة الأخيرة. إذا لم يحدث ذلك، تصبح حالة الصحةunhealthyوقد يكون هناك خطأ ما في الجهاز أو اتصاله. - تسمح Leds باختيار إعدادات LED.
- تسمح Numradios بتعيين عدد أجهزة الراديو في الجهاز. لا يُرسل هذا في البداية من OpenWisp، لذا يجب على المستخدم تعيينه.
- تسمح Wifis بتحديد معرّفات SSID لتطبيقها على هذا الجهاز.
مؤشرات LED
- إعداد LED أساسي (أشبه بنموذج إثبات مفهوم POC في الوقت الحالي)
أجهزة الراديو
- تسمح بتعيين التردد لكل راديو.
- لا ينبغي تعديل النطاق (band)، لأن ذلك يسمح لـ OpenSOHO بالتحقق من إعداد التردد. هذا ضروري بسبب قيود داخل PocketBase.
Wi-Fi
- تسمح بإعداد معرّفات SSID متعددة. اختيار أوضاع التشفير محدود حاليًا. WEP أو Open غير مدعومين عن قصد.
المراقبة
مراقبة الأجهزة
تحقق مما إذا كانت حالة صحة الجهاز healthy.
العملاء المتصلون
يعرض هذا العرض جميع عملاء Wi-Fi الذين ما زالوا متصلين خلال الثلاثين ثانية الماضية.
التكامل مع Home Assistant
يمكن دمج مراقبة OpenSOHO مع Home Assistant. (مزيد من المعلومات) صُممت واجهة REST API هذه للاستخدام مع Home Assistant، ولكن يمكن أيضًا دمجها مع أدوات أخرى.
استكشاف الأخطاء وإصلاحها
إعادة تسجيل جهاز
عند تغيير Server URL الخاص بـ OpenWISP في LuCI ولا يبدو أن الجهاز يسجّل مع وحدة التحكم الجديدة بشكل صحيح.
لإصلاح ذلك:
uci delete openwisp.http.uuid
uci delete openwisp.http.key
/etc/init.d/openwisp-config restart
أول SSID لا يتم تفعيله
يبدو أن هناك مشكلة في OpenWRT حيث لا يتم تفعيل أول SSID مُعد على جهاز Wi-Fi تلقائيًا. الحل البديل: انقر على زر التفعيل في LuCI.
المطوّرون
- ثبّت التبعيات
go mod tidy
- شغّل OpenSOHO
يُستخدم السر المشترك بواسطة openwisp-config للتسجيل. اختر سلسلة عشوائية طويلة لتحقيق الأمان الأمثل.
تشغيل اختبارات الوحدة:
go test -cover -v -coverprofile=coverage.out
go tool cover -html=coverage.out
النطاق
الميزات
تُعتبر بعض ميزات OpenWISP (حاليًا) خارج نطاق OpenSOHO
- تحديثات البرامج الثابتة (Firmware): لا يحتاج OpenWRT إلى تحديثات متكررة؛ استخدم ميزة Attended sysupgrade على كل جهاز يدويًا.
- تعددية المستأجرين (Multi-tenancy)
- القوالب: يمتلك OpenWISP آلية قوالب قوية ومتعددة الاستخدامات، وقد استُبدلت هذه الآلية بمجموعة فرعية أكثر توجيهًا من الميزات لتوفير تجربة إعداد أسهل.
التطوير
الهدف هو الاستفادة من pocketbase إلى أقصى حد. يمكن إجراء تعديلات صغيرة نظرًا لأن الواجهة الخلفية pocketbase تفتقر حاليًا إلى نظام إضافات (plug-in). لكن ليس الهدف إنشاء fork من pocketbase، لذا تبقى عملية دمج التغييرات القادمة من upstream مباشرة.
إصدار النسخ
GITHUB_TOKEN=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa goreleaser release