چطور این ایده به ذهن من رسید ؟
جریان این ایده به این شکل بود که خب ما ایرانی ها اینترنت به شدت محدود شدهای داریم، برای همین ما برای استفاده از اینترنت از vpn و یا proxy استفاده میکنیم. اما زمانی که ما وارد سایت های داخلی میشویم این سایت ها اجازه استفاده با ip خارج از ایران رو نمیدن و ما مجبور میشویم که vpn رو که به هزار زحمت وصل شده بود، قطع کنیم. خب چاره چیه؟ اینکه اگه یک سیستم توی خونه یا شرکت دارین که همیشه روشنه رو تبدیل به یک سرور کنیم :)
توی این فکر بودم که نیازم رو به چنین سیستم عاملی حس کردم، بعد کمی نیاز های دیگه رو بهش اضافه کردم و یه پست داخل تلگرام نوشتم، یکی کامنت گذاشت و خب این سیستم عامل را معرفی کرد.
umbrel چیست ؟
درواقع umbrel یک سیستم عامل است، زمانی که شما این سیستم عامل را نصب کنید، یک صفحه وب در اختیار شما میگذارد و شما از طریق این صفحه درون مرورگر خود میتوانید به سیستم دسترسی داشته باشید. برای مثلا میتوانید سرویس های مختلف و ابزار های مختلف را روی umbrel نصب و یا کانفیگ کنید.
سرویس هایی که umbrel ارائه میدهد تقریبا همان سرویس هایی هستند که شما در طول روز از نسخه های تجاری آنها استفاده میکنید.
اگه دقیق تر بخواهم بگم، این سیستم عامل یک store در اختیار کاربرانش قرار میده. و خب این یکی از مهم ترین کار هایی است که این سیستم عامل انجام میده چرا که اگر این استور وجود نداشت، شما شخصا باید فرایند کانفیگ و نصب سرویس ها را به عهده میگرفتید(این کار یک متخصص دواپس هست، خیلی هم جالیه)
umbrel چه نیازی را برطرف میکند ؟
وقتی از سرویس های تحت اینترنت استفاده میکنید، به احتمال زیاد شما کالای اون شرکتی هستید که ابزار را در اختیارتون قرار داده است. اگر دقت کنیم میبینیم که این شرکت ها بسیاری کاربر دارند و خب برای ارائه درست خدمت به کاربرانشون سرور های زیادی اجاره میکنند سرویس ها رو دائم اپدیت و بهتر میکنند و خب سرویس های متعددی هم ارائه میکنند.
همه این کار ها نیاز به هزینه های زیادی دارند، بودجه این شرکت ها فقط و فقط با تبلیغات تامین نمیشود بلکه با فروش اطلاعات کاربرانشون(خود ما) به شرکت ها و دولت ها تامین میشود.
و البته اگر حتی شما برای سرویسی که استفاده میکنید هزینهای پرداخت کنید، مثلا برای استفاده از گوگل دایو ماهانه هزینه هم پرداخت کنید، باز هم مشکلاتی وجود دارد، مثلا قانونا گوگل مالک فایلی است که شما روی سرور هایش آپلود میکنید.
در چنین مواقعی هست که اصطلاح self-hosting سرویس ها استفاده میشود. به این معنی که سرویس هایی که شما روزانه از آن استفاده میکنید را خودتان راه اندازی کنید. اما اینکار نیاز به دانش بالایی داره.
سیستم عامل umbrel این کار را ساده کرده است، با این تفاوت که قبلا شما باید برای استفاده چند ابزار روی یک سرور، باید سرور رو به درستی کانفیگ میکردین سپس ابزار ها را کانفیگ، و بعد سرویس ها راه اجرا میکردین. اما الان فقط با یک کلیک شما سرویس توییتر خود را راه اندازی میکنید!
umbrel به روی سیستم عامل دسکتاپ
نصب umbrel بسیاز سادهست فقط کافیه یک سیستم عامل debian رو روی سیستمتون داشته باشید، یک ترمینال باز کنید و کامند نصب را بزنید، با یک کامند این سیستم نصب میشه.
ولی خب اگر سیستم عاملی ندارید که بر پایه debain باشه، میشه به سادگی روی ماشین مجازی یک دبیان نصب کنید، حالت شبکه اون سیستم عامل رو bridge قرار بدین که IP پابلیک رو از DHCP بگیره و خب تحت LAN در دسترس قرار بگیره. خیلی ساده توی مرورگر IP سیستم debain که umbrel را روی ان نصب کردین را وارد کنید و تمام!
umbrel به روی رزبری پای
رزبری پای! یک سخت افزار کوچک که تقریبا یک کامپیوتر کامل است! البته که قدرت پردازش بالایی ندارد ولی در IOT استفاده زیادی دارد. با توجه به اینکه پردازنده های رزبری پای از نوع arm هستند، با اجرای کامند نصب به روی سیستم عاملی که دیفالت به روی رزبری پای نصب است نمیتوان umbrel را نصب کرد، برای همین سیستم عامل umbrel یک نسخه مخصوص برای رزبری پای دارد، کافیست آن را دانلود و به روی ربزی خود نصب کنید.
به این دقت کنید که خب سعنی کنید یک هارد اکسترنال به رزبری متصل کنید که فضای کافی برای سروریسی مانند next cloud داشته باشید.
umbrel بروی سرور شخصی
به سادگی اچرای یک کامند! کافیست فقط سیستم عامل سرورتون debain و یا کلا بر پایه debian مثل ubuntu باشه. کامند اجرا را وارد کنید و بعد از اتمام فرایند نصب، IP سرور را وارد مرورگر کنید، تمام!
دستگاه umbrel
شرکت سازنده umbrel به جز سیستم عامل، یک دستگاهی طراحی کرده است که به صورت پیشفرض سیستم عامل umbrel به روی آن نصب شده است. این دستگاه تمامی سخت افزار مورد نیاز رو برای استفاده از سیستم عامل دارد. برای مثال اگر شما از umbrel به روی rassbery PI استفاده میکنید، شما نیاز به یک فن دارید تا این دستگاه را دائم خنک کند، از طرفی خود فن هم باید خنک شود.
اینجاست که این دستگاه رو برای شرکت یا خانه شما مناسبتر میکند(مطمئن باشید تبلیغ نمیکنم)
umbrel چطور کار میکند ؟
اگه بخواهم کمی فنیتر وارد ماجرا بشم، همونطور که گفت این سیستم عامل بهترین ویژگی که ارائه میکند store آن است. البته که اینجا store به معنی فروشگاه نیست، بلکه شبیه یک بازاری است که همه اجناسش رایگان است :)
سرویس های umbrel همه سرویس هایی هستند که به صورت منبع باز در اختیار همه قرار گرفته است، این سرویس ها برای اجرا شدن نیاز به شخصی دارد که دانش کافی از سرور داشته باشد و خب نحوه کانفیگ کردن هر کدام از ابزار ها و سرویس ها را بداند.
دانلود و نصب هر سرویس به صورت جدگانه ممکن است به مشکلات متعددی برخورد کند، مثلا در نصب سرویسی مثل nexcloud شما ممکن است نیاز به ورژن خاصی از php داشته باشید. کانفیگ کردن nginx برای اجرای اسکریپت های php هم واقعا به اندازه زیادی دردسر دارد.
اینجاست که داکر وارد ماجرا میشود! umbrel از قبل تمامی سرویس ها را داکرایز کرده است.
داکرایز به چه معنیست؟ درواقع به این فکر کنید که شما یک برنامه را میخواهید نصب کنید، این سرویس توسط سازنده آن از ورژن خاصی از زبان مشخصی، لایبراری و فایل هایی استفاده کرده است که پیشفرض روی سیستم شما نصب نیست، در این مواقع وظیفه نصب آن فایل ها به عهده شماست. داکر این کار را ساده کرده است به این صورت که برنامه را با تمامی نیازمندی هایش داخل یک فایل image قرار داده است، و بعد کافیست شما آن فایل را به برنامه docker engine بدهید، آن برنامه باید بدون هیچ مشکلی اجرا شود.
سیستم عامل umbrel دقیقا چنین کاری میکند. تمامی image های داکیرایز شده را در store برای شما شما لیست میکند، شما کافیست که دکمه install را بزنید، بنگ! سرویس شما آماده است :)
امنیت
اگر umbrel را به روی چیزی به جز سرور دارید، حتی اگر برای آن یک دامنه هم بگیرید، umbrel اجازه دسترسی به سیستم عامل را از طریق اینترنت به شما نمیدهد. برای اینکار شما باید از طریق tor به آن متصل شوید و یا یک VPN سرور داخل شبکه داخلی خود راه اندازی کنید.
البته umbrel به جز tor یک راه دیگر هم در اختیار کاربران قرار داده است، سرویسی VPN به نام tailscale که مستقیم به روی umbrel نصب میشود.
سرویس های کاربردی umbrel
- matrix
خیلی ساده بگم، میتونید با این سرویس telegtam خودتون رو راه اندازی کنید. برای اینکه بیشتر درباراه این سرویس بدونید، این پست من را بخوانید.
- nextcloud
خیلی شبیه به گوگل درایو است، به جز نسخه وب حتی یک اپ اندروید هم دارد که میتوانید آدرس nextcloud را درون آن وارد کنید و از هرکحا به فضای خودتون دسترسی داشته باشید. و خب حتی بعنوان ادمین برای افراد خانواده و یا شرکتتون اکانت بسازید، و فضای شخصی خودشان را در اختیارشان قرار بدین.
- qbittorrent
اگر تورنت را میشناسید، قطعا این کلاینت معروف را هم باید بشناسید، این کلاینت یک نسخه وب دارد که داخل فروشگاه umbrel قرار دارد. فایل های خود را برای دانلود به این کلاینت بدین و در زمانی که از اینرنت استفاده نمیکنید مثلا 2 تا 7 صبح آن ها را بگذارید تا دانلود بشوند.
- pi-hole
برای خلاص شدن از تبلیغات اینترنت کافیه این سرویس DNS را به روی umbrel نصب کنید و سپس DHCP را تنظیم کنید که IP این سرویس را به دیگر دستگاه های شبکه بدهد.
- Jellyfin
یکی از نیاز های واقعا اساسی من، این سرویس است. فیلم هایی که میبینم، و یا قرار است که ببینمشون رو میتونم با این سرویس به درستی دنبال کنم. در اصل این سرویس برای پخش کردن فیلم ها ساخته شده است. به این شکل که شما کافیست فیلم های خود را وارد jellyfin کنید، بعد از هرکحا و هر دستگاهی داخل مرورگر میتوانید فیلم ها رو تماشا کنید، مثلا اگر تلویزیون هوشمند دارید کافیست از طریق مرورگر آن وارد umbrel خود بشین.
-snapdrop
سرویس خیلی سادهای است که برای انتقال فایل داخل شبکه لوکال استفاده میشود.
- whoogle search
البته whoogle یک موتور جست و جوی meta است، به این معنی که خودش وب را خزش نمیکند و از موتور های جست و جوی دیگر برای نتیجه جست و جوی شما استفاده میکند.
- LlamaGPT
چیزی شبیه ChatGPT ولی افلاین و کاملا خصوصی.
راه اندازی سرویس های شخصی
خیلی از سرویس ها هنوز به umbrel اضافه نشده. اضافه کردن سرویس به خود store هم کار سختی نیستی، کافیه فقط داکرایز کردن رو بلد باشین.
- cache server
کش سرور ها معمولا با transparent proxy بدون اینکه کاربران متوجه پروکسی بشوند پیاده سازی میشوند. کار آنها کاهش مصرف ترافیک است.
یکی از سرویس هایی که خیلی از شرکت ها برای کاهش هزینه های اینرنت و یا خب برای بهبود سرعت اینترنت میکنند، ارائه cache server هست.
خیلی خلاصه بگم کش سرور محتوایی که کاربران بازدید میکنند را درون خود برای مدتی و با شرایطی از پیش تعیین شده نگه میدارد و هر بار که کاربران به محتوای قبلی درخواست بدهند، دیگر آن ریکوئست تا سایت اصلی نمیرود و خود کش سرور که در شبکه داخلی است جواب آن را میدهد