
HTTPS موثوق لـ localhost — شهادة CA محلية، /etc/hosts، مشاركة mDNS عبر الشبكة المحلية، بروكسي عكسي. يربط https://name.local → localhost:port
HTTPS حقيقي للتطوير المحلي — مع واجهة TUI ومشاركة الشبكة المحلية (LAN).
mkdev يدير HTTPS موثوقًا على *.local. ملف ثنائي واحد بلغة Go: سلطة التصديق + وكيل عكسي + /etc/hosts + بث mDNS + واجهة TUI كاملة.
ما يجعله مختلفًا:
https://app.local من هاتفك أو أي جهاز على نفس شبكة Wi-Fi.mkdev بدون معاملات يفتحها لك.sudo قبل أي استدعاء برفع صلاحيات (internal/safeexec). لا تظليل يعتمد على PATH، ولا اختصارات قابلة للكتابة للمجموعة.knownHost. ليست شهادة wildcard، ولا معدّة مسبقًا.mkdev install # CA + الثقة + خدمة الخفيّة + بدء شريط القوائم تلقائيًا
mkdev add myapp localhost:3000 # يوجه https://myapp.local ← localhost:3000
curl https://myapp.local # 200 من تطبيقك المحلي
install هي عملية لمرة واحدة: ينشئ CA، ويثق به في مخزن النظام، ويُثبت ويفعّل خدمة الخفيّة للمستخدم (launchd / systemd)، ويسجّل شريط القوائم ليبدأ عند تسجيل الدخول، ويُشغّل الشريط فورًا عند وجود جلسة GUI. الخفيّة تمتلك الوكيل؛ وواجهة TUI (mkdev بدون معاملات) وأوامر mkdev add | remove | list تتواصل معها عبر ~/.mkdev/daemon.sock.

الميزة الرئيسية لـ mkdev. شارك مسارًا مع أي جهاز على نفس Wi-Fi مع TLS حقيقي — بدون تحذيرات، بدون خدمة نفق.
s لتحويل عمود SHARE إلى LAN.<name>.local ← عنوان IP للجهاز على الشبكة المحلية.https://<name>.local. بمجرد أن يثق الجهاز في CA الخاص بـ mkdev (مرة واحدة)، لن تظهر تحذيرات..local تُبث عبر mDNS. الامتدادات الأخرى لا تزال تُوكَل ولكن لا يمكن الوصول إليها عبر LAN بالاسم.s هو حي — إعلان mDNS وقائمة التحكم في الوصول على LAN تُحدّث عند الطلب التالي. لا حاجة لإعادة التشغيل.brew install venkatkrishna07/tap/mkdev
الترقية لاحقًا:
brew update
brew upgrade mkdev
go install github.com/venkatkrishna07/mkdev/cmd/mkdev@latest
الترقية إلى إصدار معين:
go install github.com/venkatkrishna07/mkdev/cmd/[email protected]
الملفات الثنائية المبنية مسبقًا لأنظمة macOS (Intel + Apple Silicon)، Linux (amd64 + arm64)، وWindows (amd64) منشورة على صفحة الإصدارات. كل إصدار يتضمن checksums.txt بالإضافة إلى توقيع cosign بدون مفتاح (checksums.txt.sig + .pem) — انظر SECURITY.md#verifying-releases لأمر التحقق.
على macOS، إذا منع Gatekeeper ملفًا ثنائيًا تم تحميله مباشرة:
xattr -d com.apple.quarantine ./mkdev
git clone https://github.com/venkatkrishna07/mkdev.git
cd mkdev
task build
cp bin/mkdev ~/bin/ # أو /usr/local/bin
يتطلب Go 1.25+.
mkdev install # CA، الثقة، خدمة الخفيّة، بدء الشريط تلقائيًا — أمر واحد
mkdev # تشغيل TUI
بعد install، تعمل الخفيّة في الخلفية ويظهر شريط القوائم (macOS، Linux GNOME/KDE، Windows). يُظهر الشريط حالة الخفيّة، قائمة المسارات، ومفاتيح التمكين / مشاركة LAN لكل مسار؛ Quit يُخرج من الشريط دون إيقاف الخفيّة.
الشريط هو واجهة المستخدم الدائمة. يوجد في علبة النظام ويتواصل مع الخفيّة عبر ~/.mkdev/daemon.sock. يبدأ عند تسجيل الدخول (تم تسجيل التشغيل التلقائي بواسطة install)؛ يمكن أيضًا تشغيله في الواجهة الأمامية باستخدام mkdev bar.
ما يُظهره:
mkdev v0.4.0 + معرف عملية الخفيّة + وقت التشغيل + منفذ الوكيل المستمع.name.tld → target بالإضافة إلى شارات لاحقة ( · disabled، · LAN).ما يفعله (انقر على مسار):
https://name.tld باستخدام المعالج الافتراضي للنظام.pbcopy / wl-copy / xclip / clip.exe).Enabled للمسار. المسارات المعطلة تبقى في المخزن ولكن تتوقف عن التوكيل.إجراءات على مستوى الشريط:
DisableUnit أولاً حتى لا يعيد launchd / systemd KeepAlive تشغيلها فورًا، ثم يرسل أمر إيقاف عبر المقبس.ملاحظات:
mkdev daemon stop) يُوقف الخفيّة التي تحت الإشراف بشكل نظيف — قتل عملية الخفيّة مباشرة سيعيد تشغيلها بواسطة launchd / systemd.استبدل الملف الثنائي (brew upgrade / go install ...@latest / تحميل جديد). في المرة التالية التي تشغّل فيها أي أمر فرعي mkdev، يقوم الملف الثنائي بمطابقة الأجزاء التي تقع خارجه: يعيد كتابة plist / systemd unit للخفيّة وإدخال بدء الشريط التلقائي للإشارة إلى الملف الثنائي الجديد، ويعيد تأكيد /etc/hosts للمسارات المفعّلة، ويعيد الثقة في CA إذا تم إسقاطها. تظهر مطالبات sudo داخلية. إذا كان لديك فقط الخفيّة قيد التشغيل ولم تستخدم CLI، فإن الخفيّة تقوم بالأجزاء الآمنة (بدون sudo) بنفسها عند بدء التشغيل وتنتظر الباقي حتى أمر CLI التالي.
إعادة تشغيل mkdev install تفعل نفس الشيء بشكل صريح وهي آمنة دائمًا — كل خطوة هي idempotent.
| المنصة | مخزن الثقة | رفع الصلاحيات |
|---|---|---|
| macOS | سلسلة مفاتيح النظام (security add-trusted-cert) | sudo / osascript |
| Linux | update-ca-trust / update-ca-certificates / trust extract-compat | sudo / pkexec |
| Windows | مخزن ROOT للنظام عبر crypt32.dll | UAC (PowerShell RunAs) |
توزيعات Linux المدعومة: Debian/Ubuntu (/usr/local/share/ca-certificates)، RHEL/Fedora (/etc/pki/ca-trust/source/anchors)، Arch (/etc/ca-certificates/trust-source/anchors)، openSUSE (/usr/share/pki/trust/anchors).
Firefox يستخدم مخزن NSS الخاص به ولم يتم تغطيته بعد — المتصفحات Chrome وSafari وEdge وcurl وwget في النظام تعمل جميعًا.