چگونه یک برنامه خود میزبان را برای اجرای سرور خود انتخاب و راه اندازی کنید
راهنمای عملی برای میزبانی برنامهها در یک محیط کانتینری با Docker. ما راهاندازی را با استفاده از SSH، کنترل پنلهایی مانند Plex و CyberPanel و قالبهای ارائهدهندگان میزبان محبوب پوشش خواهیم داد.
وقتی دادههای شما از دستگاههایتان خارج میشود، مالک چه کسی است؟ چه کسی مسئولیت حفظ آن از چشمان کنجکاو را بر عهده دارد؟ چه اتفاقی میافتد وقتی فروشندهای که سالها اطلاعات حساس شخصی یا تجاری شما به آن اعتماد دارید، ناگهان تصمیم میگیرد مغازه را ببندد؟
از نظر حقوقی، این سوالات پاسخ های مستقیم دارند. اما در عمل، زمین بسیار تیرهتر است.
به همین دلیل است که افراد بیشتری اکنون ترجیح میدهند برنامهها و دادههای خود را حداقل تا حدی روی سرورهایی که «مالک» هستند، ذخیره کنند. با صرف 15 تا 20 دلار در ماه در یک سرور خصوصی، میتوانید وبسایتها، برنامهها، گردشهای کاری خودکار و حتی مدلهای هوش مصنوعی محلی را میزبانی کنید. شما دسترسی کامل سرپرست را به سرور خود حفظ می کنید، از جمله هر داده ای که به آن وارد یا از آن خارج می شود.
این چگونه کار می کند؟ راهنمای دقیق من را برای دستورالعمل های نحوه تنظیم آن دنبال کنید.
چرا یک برنامه را با استفاده از Docker خود میزبانی کنید؟
هیچکس نمیخواهد هر ماه برای دهها برنامه هزینههای اشتراک بپردازد، یا با افزایش هزینههای توکن یا هزینههای استفاده بدون اطلاعیه یا مراسمی مقابله کند. بدتر از آن، ما رسما به نقطهای رسیدهایم که مردم نمیتوانند همه چیزهایی را که در آنها مشترک شدهاند به خاطر بسپارند، بنابراین قبل از اینکه بتوانید صورتحساب را ببینید و ببینید چه اتفاقی میافتد، کارتهای اعتباری در خلبان خودکار شارژ میشوند.
این همه نیست. هنگامی که از یک برنامه مبتنی بر ابر استفاده میکنید، دادههای شما بر روی زیرساخت شخص دیگری زندگی میکنند که توسط شرایط خدمات شخص دیگری کنترل میشود. میزبانی خودکار این دادهها را روی سختافزاری که کنترل میکنید، برمیگرداند، خواه این دستگاه یدکی در خانه باشد یا یک سرور اجارهای. شما تصمیم می گیرید که چه کسی دسترسی داشته باشد و چه مدت فایل ها نگهداری شوند - به علاوه لازم نیست نگران باشید که اگر فروشنده خط مشی رازداری خود را تغییر دهد چه اتفاقی می افتد.
کسبوکارهایی که سوابق مشتریان، دادههای مالی یا اطلاعات سلامتی را مدیریت میکنند، اغلب باید ثابت کنند که این دادهها دقیقا کجا هستند و چه کسی میتواند به آن دسترسی پیدا کند. برای افراد، این خطر حتی بیشتر است زیرا هرگونه نقض داده یا حمله سایبری تأثیر مستقیمی بر زندگی شما دارد. یک راهاندازی خود میزبان به جای اینکه شما را به صفحه انطباق فروشنده راهنمایی کند، پاسخ مستقیمی به این مشکلات میدهد.
با Docker نیز بسیار کاربردی تر است.
هر برنامه در کانتینر خود اجرا می شود، بسته ای که شامل کد، زمان اجرا، کتابخانه ها و تنظیمات پیکربندی است. هیچ چیز بین کانتینرها نشت نمی کند، بنابراین نصب یک برنامه دیگر را از بین نمی برد. شما کنترل کاملی بر روی داده ها و محیط برنامه خود دارید، در حالی که تنها هزینه جاری شما قیمت یک طرح میزبانی است.
چگونه گام به گام یک برنامه را روی سرور خود میزبانی کنیم
بیش از یک مسیر برای رسیدن به یک برنامه خود میزبان کار وجود دارد. برخی از ارائه دهندگان میزبانی به شما دسترسی کامل به SSH را می دهند تا بتوانید برنامه های Docker را با استفاده از خط فرمان نصب کنید. برخی دیگر یک مدیر فایل گرافیکی یا کتابخانه ای از قالب های آماده ارائه می دهند که بیشتر تنظیمات را برای شما انجام می دهد.
در زیر تمام این رویکردها را بررسی خواهیم کرد. هر کدام فرض می کنند که شما از قبل به یک سرور لینوکس کاربردی، ایستگاه کاری یا NAS دسترسی دارید. اگر هنوز آن را تنظیم نکردهاید، میتوانید یک طرح میزبانی را از هر میزبان وب معتبر خریداری کنید. در واقع، شما همچنین می توانید سرور محلی خود را با استفاده از یک کامپیوتر لینوکس یا حتی Raspberry Pi راه اندازی کنید.
کجا می توان برنامه های Docker را پیدا کرد و انتخاب کرد
اگر نمیدانید کدام برنامهها را میتوانید خود میزبانی کنید، Docker یک کتابخانه تصویری به نام Docker Hub دارد که حاوی نصبکنندههای آماده با دستورالعملهای دقیق در مورد نحوه راهاندازی برنامههای سازگار مختلف در یک سرور خود میزبان است.
در پایگاه داده برنامه یا عملکرد مورد نیاز خود را جستجو کنید، برنامه ای را که می خواهید روی سرور خود نصب کنید پیدا کنید، سپس بقیه آموزش را دنبال کنید.
با استفاده از خط فرمان با SSH
SSH به شما امکان دسترسی مستقیم به سرور خود را بدون هیچ محدودیتی می دهد، که در صورت استفاده از خط فرمان، آن را به انعطاف پذیرترین گزینه تبدیل می کند.
با اتصال به سرور خود از دسکتاپ محلی خود شروع کنید. برای این کار به آدرس IP سرور لینوکس خود نیاز دارید، بنابراین ابتدا آن را یادداشت کنید. این را می توان در تنظیمات SSH ارائه دهنده میزبانی شما یافت. پس از آن، فقط باید دستور زیر را با استفاده از ترمینال یا خط فرمان تایپ کنید:
ssh your-username@your-server-ip
اکنون با استفاده از مدیریت بسته توزیع لینوکس خود، Docker را روی سرور خود نصب کنید. در اوبونتو یا دبیان، می توانید از این دستورات استفاده کنید:
sudo apt updatesudo apt install docker.io docker-compose-plugin -y
بعد، یک پوشه برای برنامه Docker خود و یک فایل Compose برای تعریف آن ایجاد کنید. Docker Compose به شما این امکان را میدهد تا کانتینرها، شبکهها و فضای ذخیرهسازی برنامه را در یک فایل YAML به جای تایپ کردن فرمانهای طولانی اجرای docker با دست توصیف کنید.
mkdir ~/myapp && cd ~/myappnano docker-compose.yml
یک فایل Compose اولیه، تصویر محفظهای را که میخواهید اجرا کنید نامگذاری میکند، یک پورت در سرور شما را به یک پورت داخل ظرف نگاشت میکند، و هر متغیر محیطی را که برنامه نیاز دارد، مانند رمز عبور پایگاه داده یا ایمیل مدیر، تنظیم میکند. اکثر برنامههای میزبانیشده یک نمونه فایل Compose را در مستندات خود منتشر میکنند که میتوانید آن را کپی و تنظیم کنید. معمولا میتوانید اینها را مستقیما در فهرستهای Docker Hub آنها پیدا کنید.
اما اگر مطمئن نیستید که چگونه به نظر می رسد، در اینجا یک نمونه فایل compose.yml برای نصب NGINX آورده شده است:
خدمات: وب: # تصویر رسمی Nginx را از تصویر داکر هاب میکشد: nginx: آخرین پورتها: - پایگاه داده "8080:80": # تصویر رسمی Postgres را از تصویر داکر هاب میکشد: محیط postgres:15: POSTGRES_PASSWORD: رمز عبور شما امن
باید «nginx:latest» را با نام تصویر برنامه Docker که میخواهید نصب کنید جایگزین کنید. همچنین توصیه میکنم یک رمز عبور امنتر PostgreSQL برای جایگزینی «رمز عبور امن شما» ایجاد کنید.
هنگامی که فایل Docker Compose را ذخیره کردید، می توانید برنامه را به صورت آنلاین درآورید:
docker آهنگسازی -d
پرچم -d کانتینرها را در پسزمینه اجرا میکند تا پس از بستن جلسه ترمینال، آنها همچنان به کار خود ادامه دهند. اکنون هنگامی که مرورگر وب خود را به آدرس IP سرور و پورتی که نقشه برداری کرده اید اشاره می کنید، برنامه شما باید بارگیری شود.
استفاده از کنترل پنل با پشتیبانی بومی Docker
اگر ترجیح می دهید از ترمینال خودداری کنید، برخی از کنترل پنل های ارائه دهنده میزبانی راه حلی بصری برای مدیریت مستقیم کانتینرها در اختیار شما قرار می دهند.
cPanel پر استفاده ترین پنل است، اما شامل مدیریت Docker بومی نمی شود، بنابراین شما فقط از SSH استفاده می کنید. با این حال، Plesk دارای یک پسوند رسمی Docker است که به شما امکان می دهد تصاویر را از Docker Hub مرور کنید، کانتینرها را مستقر کنید و آنها را از یک بخش اختصاصی در نوار کناری بدون لمس رابط خط فرمان مدیریت کنید. CyberPanel، یک پنل کنترل رایگان و منبع باز دیگر ساخته شده بر روی OpenLiteSpeed، همچنین با مدیریت Docker ساخته شده به عنوان جایگزینی برای راه اندازی SSH عرضه می شود.
سپس فقط کاتالوگ تصویر را جستجو کنید یا در فایل YAML خود جایگذاری کنید، تنظیمات منبع و پورت درخواستی برنامه را بررسی کنید و استقرار را تأیید کنید. پانل تصویر را میکشد، ظرف را راهاندازی میکند و معمولا در صورت خرابی، گزارشهای زنده را به شما نشان میدهد.
هنگامی که برنامه اجرا می شود، همان پانل معمولا سوابق DNS و گواهی های SSL را نیز کنترل می کند. این یک مزیت دسترسی مناسب نسبت به SSH خالص است، زیرا نیازی نیست با مواردی مانند پیکربندی یک پروکسی معکوس یا تمدید گواهی دستی سر و کار داشته باشید.
استفاده از قالب های از پیش کدگذاری شده ارائه شده توسط میزبان های وب
با این حال، سریعترین مسیر برای رسیدن به یک برنامه در حال اجرا، بازار قالبهای از پیش ساخته شده ارائهدهنده میزبانی است. اینها به طور خاص وجود دارند، بنابراین شما مجبور نیستید یک فایل Compose را از ابتدا بنویسید.
وارد داشبورد ارائه دهنده هاست خود شوید و به دنبال بازار، کاتالوگ برنامه یا بخش «برنامههای یک کلیک» بگردید. برنامه ای را که می خواهید اجرا کنید جستجو کنید. ابزارهای محبوب خود میزبان مانند پلتفرم های اتوماسیون، برنامه های یادداشت برداری و خدمات همگام سازی فایل معمولا از این طریق در دسترس هستند.
انتخاب یک الگو معمولا یک فرم راه اندازی کوتاه را باز می کند. شما اندازه سرور خود را انتخاب میکنید، منطقه مرکز داده نزدیک به کاربران خود را انتخاب میکنید و هر گونه اعتبار مورد نیاز مانند رمز عبور سرپرست را تنظیم میکنید. سفارش را تأیید کنید، و ارائهدهنده یک سرور با Docker و برنامه انتخابی شما که قبلا پیکربندی و اجرا شده است، ارائه میکند.
این روش مقداری انعطاف پذیری را با سرعت عوض می کند. کنترل زیادی روی پیکربندی کانتینر نخواهید داشت و الگوها ممکن است از آخرین نسخه یک برنامه عقب بمانند. اما برای ابزارهای محبوب، معمولا سریعترین راه برای رفتن از هیچ به یک نمونه کار است که میتوانید شروع به سفارشیسازی کنید.
آیا اخطاری برای میزبانی شخصی وجود دارد؟
میزبانی شخصی مسئولیت را از تیم پشتیبانی فروشنده به شما منتقل می کند. وصلههای امنیتی، بهروزرسانیهای نرمافزار و پشتیبانگیری دیگر بهطور خودکار در پسزمینه انجام نمیشوند. اگر برای ماهها فراموش کردید که یک تصویر کانتینر را بهروزرسانی کنید، ممکن است نرمافزاری با آسیبپذیری شناختهشده اجرا کنید و هیچکس قبل از اینکه سرور شما به خطر بیفتد، یادآوری برای شما ارسال نمیکند.
Uptime نیز به مشکل شما تبدیل می شود. یک محصول مدیریت شده SaaS معمولا دارای یک تیم اختصاصی است که زیرساخت های آن را به صورت شبانه روزی نظارت می کند. یک برنامه خود میزبانی شده روی یک سرور منفرد چنین شبکه ایمنی ندارد مگر اینکه خودتان آن را راه اندازی کنید، چه نرم افزار نظارت، پشتیبان گیری خودکار، یا یک سرور خراب در صورت خرابی.
همچنین هزینه ای در زمان واقعی وجود دارد که به راحتی می توان آن را دست کم گرفت. خواندن اسناد، عیبیابی کانتینرها، پیگیری پورتها و حجمهایی که به کدام برنامه تعلق دارند، همگی جمع میشوند - همه این موارد به زمان و تلاش نیاز دارد. برای یک ابزار کم ریسک، این یک ناراحتی جزئی است. برای کسبوکاری که چندین اپلیکیشن میزبان خود را اجرا میکند، میتواند به یک شغل پاره وقت تبدیل شود، مگر اینکه بودجه مناسبی برای آن داشته باشید.
آیا میزبانی شخصی در واقع ارزان تر است؟
روی کاغذ، اعداد قانع کننده به نظر می رسند. یک سرور خصوصی مجازی کوچک که قادر به اجرای چندین برنامه سبک وزن خود میزبان است، بسته به ارائه دهنده و مشخصاتی که انتخاب می کنید، معمولا بین 5 تا 20 دلار در ماه هزینه دارد. آن را با یک اشتراک SaaS مقایسه کنید که به راحتی می تواند 20 تا 60 دلار در ماه برای هر ابزار اجرا کند، و زمانی که چندین اشتراک را با یک سرور جایگزین می کنید، شکاف به سرعت افزایش می یابد.
پس انداز با مقیاس، تا یک نقطه افزایش می یابد. اجرای دو یا سه برنامه خود میزبانی شده روی یک VPS تقریبا به اندازه اجرای یکی هزینه دارد، زیرا به جای هر برنامه، هزینه سرور را پرداخت می کنید. این امر ریاضی را به طور قابل توجهی در مقایسه با قیمت گذاری SaaS تغییر می دهد، جایی که هر ابزار اضافی معمولا به معنای یک صورت حساب اضافی است.
اما ارزانتر همان رایگان نیست. سروری که هیچ استراتژی پشتیبان گیری یا نظارتی ندارد، اگر خراب شود و داده ها را از دست بدهید یا یک آخر هفته را صرف تعمیر آن کنید، واقعا در هزینه شما صرفه جویی نمی کند. ساعاتی را که برای بهروزرسانی و عیبیابی صرف میکنید، بهویژه در اوایل، در نظر بگیرید، و میزبانی شخصی کمتر شبیه یک ناهار رایگان و بیشتر شبیه یک معامله است. در ازای انجام کارهای عملیاتی که معمولا یک فروشنده SaaS برای شما انجام می دهد، هزینه های نقدی کمتری دریافت می کنید.
متن اصلی (انگلیسی)
How to pick and set up a self-hosted app to run your own server
A practical guide to self-hosting apps in a containerized environment with Docker. We’ll cover setup using SSH, control panels like Plex and CyberPanel, and templates from popular hosting providers.