slim: دامنهٔ محلی با HTTPS برای لوکالهاست
خلاصهٔ کاملتر
slim یه ابزار خط فرمانه که با Go نوشته شده و یه مشکل قدیمی توسعهٔ محلی رو حل میکنه: بهجای اینکه دائم localhost:3000 و localhost:8080 رو حفظ کنی، هر پورت رو به یه دامنهٔ تمیز مثل وصل میکنه. توسعهدهندهاش تأکید کرده که همهچیز تو یه باینری جمعه و راهاندازیاش تنظیمات نمیخواد.
پشت صحنه پنج کار انجام میده: یه CA محلی میسازه تا مرورگر به گواهیها اعتماد کنه، برای هر دامنه گواهی جدا صادر میکنه، /etc/hosts رو خودش بهروز میکنه و دامنهها رو به 127.0.0.1 میبنده، پورت ۸۰ و ۴۴۳ رو فوروارد میکنه تا لازم نباشه پروکسی با روت بالا بیاد، و آخرش درخواستها رو با پشتیبانی HTTP/2 و ارتقای وبسوکت پروکسی میکنه. همین پشتیبانی از وبسوکته که باعث میشه HMR در Next.js و Vite بدون دستکاری کار کنه.
برای پروژههای چندسرویسی هم یه فایل .slim.yaml تعریف میشه که کل ترکیب دامنه و پورت رو کنار کد نگه میداره و با slim up همه با هم بالا میان و با slim down خاموش میشن؛ یعنی همتیمیهات دقیقاً همون ستاپ رو میگیرن.
services:
- domain: myapp
port: 3000
routes:
- path: /api
port: 8080بخش دوم ابزار مربوط به اشتراکگذاریه: با slim share سرور محلیت یه آدرس عمومی روی دامنهٔ slim.show میگیره، بدون اینکه چیزی دیپلوی کنی. سابدامنهٔ دلخواه، محافظت با رمز، انقضای زماندار و لاگ زندهٔ درخواستها هم گزینههای همین دستورن. کنارشون slim list وضعیت سلامت دامنهها رو نشون میده، slim logs لاگ دسترسی رو دنبال میکنه و slim doctor مشکلات ستاپ رو تشخیص میده. پروژه متنباز و رایگانه.
نکات کلیدی:
- تبدیل پورتهای لوکالهاست به دامنههای .test یا هر TLD دلخواه با HTTPS معتبر
- مسیریابی بر اساس مسیر: مثلاً /api روی یه پورت دیگه بشینه
- پشتیبانی از وبسوکت و HMR، پس Next.js و Vite بدون تنظیم اضافه کار میکنن
- فایل .slim.yaml برای بالا آوردن همهٔ سرویسها با slim up
- slim share برای گرفتن آدرس عمومی با سابدامنهٔ دلخواه، رمز و انقضا
- یه باینری Go؛ CA محلی، گواهی هر دامنه، بهروزرسانی /etc/hosts و فوروارد پورت ۸۰ و ۴۴۳




