- TypeScript 76%
- CSS 17.2%
- JavaScript 6.5%
- HTML 0.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .forgejo/workflows | ||
| build | ||
| scripts | ||
| src | ||
| tests | ||
| .gitignore | ||
| CHANGELOG.md | ||
| electron-builder.yml | ||
| electron.vite.config.ts | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| SCENARIOS.md | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| tsconfig.web.json | ||
| vitest.config.ts | ||
IP Scanner — ماسح الشبكة
تطبيق سطح مكتب (AppImage) للينكس يفحص الشبكة المحلية ويكتشف الأجهزة النشطة الآن — ليس بالبنق فقط، بل أيضًا عبر منافذ الخدمات الشائعة (SSH, HTTP, HTTPS, SMB, RDP, VNC وغيرها)، بحيث تظهر الأجهزة حتى لو كان الجدار الناري يمنع الـ ping.
An enterprise-grade Linux desktop app (AppImage) that discovers live devices on your LAN via ICMP ping and common service ports.
مبني على قالب desktop-standard: راجع
STANDARD.mdوTHEME.mdفي debe/desktop-standard قبل أي تعديل. Built on the desktop-standard template (React 19 + electron-vite 5 + TypeScript).
المميزات — Features
- فحص شامل لنطاق IP (من/إلى) مع اكتشاف تلقائي للشبكة الحالية.
- اكتشاف عبر المنافذ وليس البنق فقط: يُعدّ الجهاز «نشطًا» إذا استجاب للبنق أو فتح أي منفذ خدمة.
- واجهة عربية / إنجليزية كاملة مع دعم RTL، والافتراضي لغة النظام.
- خط Tajawal + Inter مضمّنان محليًا (بلا طلبات شبكة للخطوط).
- ثيم ثلاثي الحالات — حسب النظام (افتراضي) / فاتح / داكن — بالهوية العنّابية/الذهبية.
- قائمة جانبية تعرض رقم الإصدار في الأسفل.
- إشعار تحديث في القائمة الجانبية عند توفر إصدار أحدث، مع رابط تنزيل مباشر ورابط للمصدر.
- أيقونات SVG ثابتة الحجم، بلا إيموجي، بمظهر مؤسسي.
- سجل الفحوصات وقائمة الأجهزة المكتشفة التراكمية.
- تصدير النتائج إلى CSV.
التثبيت والتشغيل — Install & run
المتطلبات: Node.js 22+.
npm install
npm run dev # التطوير / development
npm test # الاختبارات / tests
npm run typecheck # فحص الأنواع / type checking
npm run gen:icon # توليد الأيقونات / generate icons
npm run dist # بناء AppImage / build AppImage
التنزيل — Download
من صفحة Releases: نزّل أحدث ملف ip-scanner-<version>.AppImage، اجعله قابلًا للتنفيذ وشغّله.
chmod +x ip-scanner-*.AppImage
./ip-scanner-*.AppImage
البنية — Structure
src/
main/ العملية الرئيسية (النافذة، IPC، محرك الفحص، التخزين، التحديثات)
preload/ الجسر الآمن بين main و renderer
shared/ الأنواع المشتركة (main↔renderer)
renderer/ واجهة React 19 + TypeScript
src/locales/ قواميس عربي/إنجليزي
src/styles/ الثيم (CSS variables)
scripts/ أدوات (أيقونة، إصدار)
tests/ اختبارات Vitest
الإصدارات — Versioning
نتبع Semantic Versioning — MAJOR.MINOR.PATCH:
- Major (
X.0.0) — تغيير كاسر (إعادة بناء معمارية / كسر التوافق). - Minor (
0.X.0) — ميزة جديدة متوافقة مع السابق. - Patch (
0.0.X) — إصلاحات وتعديلات صغيرة وتوثيق.
إصدار جديد:
npm run release:patch # إصلاحات / fixes
npm run release:minor # ميزة جديدة / new feature
npm run release:major # تغيير كاسر / breaking
يقوم الـ CI تلقائيًا ببناء الـ AppImage، وإنشاء الـ Release مع نص CHANGELOG.md، ثم يحذف الإصدارات القديمة ويُبقي آخر 3 فقط.
CI/CD
.forgejo/workflows/test.yml— الاختبارات عند كل push و PR..forgejo/workflows/release.yml— عند دفع tag بصيغةv*: بناء AppImage، إنشاء release، رفع الأصول، حذف ما زاد عن 3 إصدارات.