من یک ابزار تولید کننده CaddyFile را فقط در 8 ساعت ساختم – در اینجا چگونه پیش رفت

من استفاده کرده ام کدی اخیراً بیشتر و بیشتر برای سرور رسانه ای خود میزبان و ابزارهای مرتبط من، و صادقانه بگویم، من عاشق آن شده ام. 🧡 سرعت، سادگی و سهولت استفاده آن شگفتانگیز است—هر چیزی که از یک وب سرور میخواهید.
اما یک چیز بود که من طرفدار آن نبودم: ویرایش CaddyFiles. با وجود اینکه سادهتر از سایر فرمتهای پیکربندی هستند، من هرگز علاقهای به ایجاد مشکل در فایلهای پیکربندی نداشتهام. من یک رابط کاربری میخواستم که تولید و مدیریت CaddyFiles را آسانتر کند، اما پس از جستجو، چیزی مدرن، نگهداریشده یا آماده برای استفاده پیدا نکردم.
بنابراین، تصمیم گرفتم آن را خودم بسازم.
سفر ساخت CaddyGen
از آنجایی که نمی خواستم هفته ها برای این پروژه وقت بگذارم، تصمیم گرفتم از آن استفاده کنم پیچ.جدیدمولد کد هوش مصنوعی که چیزهای خوبی در موردش شنیده بودم. فکر کردم چرا اجازه ندهیم هوش مصنوعی فرمان را در دست بگیرد و ببینم چه کاری می تواند انجام دهد؟
از همان ابتدا، بولت مرا شگفت زده کرد. من یک طرح کلی از آنچه می خواستم ارائه کردم:
- الف UI مبتنی بر Vue برای مدیریت و تولید CaddyFiles.
- ویژگی های به هاست ها را اضافه و حذف کنید.
- الف نمایشگر پیکربندی برای پیش نمایش CaddyFile.
- ذخیره سازی در مرورگر با استفاده از محل ذخیره سازی (بنابراین نیازی به Backend نیست).
بولت فوراً شروع به تولید یک پروژه Vue کرد و به سرعت ویژگی هایی را همانطور که از من خواستم اضافه کرد. در طول 8 ساعت، من در کنار هوش مصنوعی کار کردم تا اضافه کنم:
- کارت های میزبان برای مدیریت دامنه ها
- تنظیمات از پیش تعیین شده با نشان ها و آرم ها برای پیکربندی های محبوب.
- یک ابزار واردات برای CaddyFiles موجود (ویژگی که در ابتدا حتی به آن فکر نمی کردم).
- برجسته سازی نحو در پیش نمایش CaddyFile.
در حالی که من مجبور بودم گهگاه برای رفع اشکالات یا تغییر طرحبندی وارد عمل شوم، این فرآیند روان و بهطور شگفتانگیزی سرگرمکننده بود. در پایان، من یک ابزار کار داشتم که هر کاری را که میخواستم انجام میداد – و سپس تعدادی.
CaddyGen چیست؟
CaddyGen یک رابط وب کاربر پسند برای ایجاد تنظیمات سرور Caddy است. این فرآیند ایجاد پروکسی معکوس و تنظیمات سرور فایل را با پشتیبانی از SSL، فشرده سازی، هدرهای امنیتی و موارد دیگر ساده می کند.
ویژگی ها
- 🚀 سازنده پیکربندی بصری برای سرور Caddy.
- 🔄 پروکسی معکوس و سرور فایل راه اندازی
- 📦 از پیش پیکربندی شده است از پیش تنظیم شده است برای برنامه های محبوب
- 💾 ذخیره سازی محلی برای ذخیره تنظیمات
- 📤 واردات/صادرات برای Caddyfiles
- 🛡️ پیشرفته گزینه های امنیتی (CSP، محدودیت نرخ، فیلتر IP).
- ⚡ بهینه سازی عملکرد (فشرده سازی، ذخیره سازی).
- 🌐 پیکربندی CORS.
- 📁 گزینه های سرور فایل (فهرست دایرکتوری، پشتیبانی PHP).
اکنون آن را امتحان کنید: caddygen.site
گزینه های استقرار
شما می توانید CaddyGen را با استفاده از Docker به راحتی مستقر کنید:
تصویر Pre-Built را اجرا کنید
آخرین تصویر را از داکر هاب بکشید و اجرا کنید:
docker pull wardy784/caddygen:latest
docker run -d --restart unless-stopped -p 8189:80 wardy784/caddygen:latest
با Docker Compose اجرا کنید
از موارد زیر استفاده کنید docker-compose.yml
:
version: '3.8'
services:
app:
image: wardy784/caddygen:latest
ports:
- "8189:80"
restart: unless-stopped
container_name: caddygen
برای استقرار:
docker compose up -d
دسترسی به برنامه در http://localhost:8189
.
راه اندازی 🚀
پس از اتمام پروژه، من آن را مستقر کردم Netlify با استفاده از ابزارهای داخلی Bolt، یک دامنه سفارشی اضافه کرد و آن را با جهان به اشتراک گذاشت. پاسخ مرا غافلگیر کرد:
- بیش از 60 ستاره GitHub در کمتر از 24 ساعت.
- تقریباً 3 هزار کاربر در برنامه در caddygen.site.
- 50+ داکر می کشد از تصویر ابزار
درس های آموخته شده
این پروژه دو چیز را به من آموخت:
- کادی عالیه– اما یک رابط کاربری خوب آن را حتی بهتر می کند.
- ابزارهای هوش مصنوعی مانند پیچ.جدید می تواند سرعت توسعه را افزایش دهد و به شما کمک کند روی قسمت های سرگرم کننده کدنویسی تمرکز کنید.
چیزی که دوست داشتم:
- بوت استرپ سریع: بولت پروژه را در عرض چند دقیقه راه اندازی کرد.
- هوش مصنوعی پاسخگو: به سرعت کد تولید کرد و به خوبی با درخواست های من سازگار شد.
- ادغام LocalStorage: مدیریت داده ها در مرورگر بدون درز بود.
- استقرار Netlify: فقط با یک کلیک، برنامه را مستقر کردم.
چه چیزی می تواند بهتر باشد:
- اشکالات رابط کاربری: گاهی اوقات، ویرایشگر گیر می کرد و کد را در حالت نیمه ویرایش قرار می داد که بیلد را خراب می کرد.
- تنظیم دقیق چیدمان: جزئیات کوچک مانند تراز کردن دکمهها یا بهینهسازی فرمها نیاز به اصلاحات دستی دارند.
- تغییرات ناقص: گاهی اوقات هوش مصنوعی ادعا می کرد که ویرایش هایی را انجام داده است که در کد منعکس نشده است.
بعد چه می شود؟
این پروژه به دور از ایدهآل بودن است – انتخابهای عجیب و غریبی وجود دارد که هوش مصنوعی انجام داده است، و تعداد زیادی از آنها مشکلات TypeScript باید درستش کنم اما من در حال برنامه ریزی ویژگی های جدید هستم:
- اضافه کردن بیشتر از پیش تنظیم شده است و گزینه ها.
- بهبود رابط کاربری برای شهودی تر کردن آن.
- گسترش عملکرد ابزار بر اساس بازخورد کاربر.
خودتان آن را امتحان کنید!
به من بگویید چه فکر میکنید—و با خیال راحت ویژگیها یا بهبودهای جدید را پیشنهاد دهید! 😊