Sibiyā

از گیت‌هاب به سرور شخصی


launchdeck.io

این یک مقالهٔ آموزش Git نیست. اگر می‌خواهید بدانید Git و GitHub چیست و چگونه باید از آن استفاده کنید باید جای دیگری را بررسی کنید.

اجازه دهید برایتان تعریف کنم ماجرا از کجا شروع شد: نخستین نسخه از وب‌سایت Sibiya.ir استاتیک بود و به کمک Github Pages ساخته شد. بعدها به دو دلیل از Github Pages استفاده نکردم:

  • نخست آنکه وقتی چند سال پیش Github مثل خیلی از سرویس‌های دیگر برای کاربران ایرانی دردسر درست کرد تصمیم گرفتم از Github Pages استفاده نکنم و به GitHub متکی نباشم. خاطرم است همان دوران دوستانی بودند که بعضی از پروژه‌هایشان را روی کامپیوتر شخصی‌شان نداشتند و GitHub تنها راه دسترسی به آن پروژه‌ها بود و با این چالشی که GitHub درست کرده بود چه اندازه دچار تشویش و اضطراب شده بودند.
  • دوم آنکه در سیر تکاملی Sibiya.ir به مرور زمان از Jekyll به Grav رسیدم که به دلیل داینامیک بودن و استفاده از PHP (پی اچ پی)، Github Pages دیگر نمی‌توانست کمکی بکند.

در نتیجه مجبور شدم که Sibiya.ir را روی سرور شخصی منتقل کنم. با این تصمیم حالا باید این سه تا را با هم مدیریت می‌کردم:

  • کامپیوتر شخصی
  • سرور Sibiya.ir
  • GitHub

از آنجا که من خیلی تنبل هستم و همیشه دنبال این هستم که کارها را ساده‌تر کنم و تا جای ممکن کارهای کمتری انجام بدهم launchdeck.io را پیدا کردم تا کارم را ساده‌تر کنم.

launchdeck.io چه کار می‌کند؟

launchdeck.io با گرفتن دسترسی‌های لازم، مخزن گیت شما را از روی GitHub به سرور مورد نظر منتقل می‌کند. این جوری من دیگر برای بروز رسانی Sibiya.ir لازم نیست با سرور شخصی‌ام کاری داشته باشم. فقط کافی است مخزن GitHub بروز رسانی شود تا launchdeck.io فایل‌های روی سرور را برایم بروز رسانی کند و Sibiya.ir بروز رسانی شود.

کمی توضیحات بیشتر دربارهٔ launchdeck.io

launchdeck.io می‌تواند از طریق هر کدام از پروتکل‌های SSH و FTP و SFTP فایل‌ها را به سرور منتقل کند و این به انتخاب شما بستگی دارد. launchdeck.io علاوه بر GitHubمی‌تواند با Bitbucket یا هر سرویس دهندهٔ دیگری هم ارتباط بگیرد. از این بابت هیچ محدودیتی وجود ندارد.

تلنگر

launchdeck.io یک سرویس Proprietary است که البته یک پلن رایگان هم دارد. در این پلن محدودیت‌هایی وجود دارد: شما فقط می‌توانید یک پروژه تعریف کنید و برای تعریف پروژه‌های بیشتر لازم است پلن خود را ارتقاع بدهید. هم‌چنین این تک پروژه‌ای را که تعریف کرده‌اید فایل‌های سرور را حداکثر ده مرتبه در روز می‌توانید از روی گیت بروز رسانی کنید. با همهٔ این محدودیت‌ها، launchdeck.io هنوز کار مرا راه می‌اندازد اما:

Jenkins

Jenkins نام ابزاری Open Source است که که می‌تواند جایگزین launchdeck.io بشود. فعلاً وقت و حوصلهٔ کافی برای امتحان کردنش را ندارم. شاید بعداً اگر launchdeck.io خواست برایم دردسر درست کند مجبور شوم Jenkins را امتحان کنم.

حرف آخر

من برای پروژهٔ Sibiya.ir به دو دلیل از Git استفاده می‌کنم:

  • نخست این که مانند هر پروژه دیگری برای نیاز شخصی خودم!
  • دوم این که به دلیل نوع شکل گیری و بروز رسانی‌های مکرر Sibiya.ir که حتی محتوا را هم در بر می‌گیرد حس می‌کنم مخاطب این حق را دارد که به نسخه‌های قبلی دسترسی داشته باشد!

با این حال الان که دارم این نوشته را می‌نویسم هنوز مخزن GitHub پروژهٔ Sibiya.ir روی وضعیت Private قرار دارد. امیدوارم که این مخزن هرچه زودتر به Public تغییر وضعیت بدهد.

نوشته شده در سه شنبه ۳۰ آبان ۱۴۰۲