مدتی قبل قصد داشتم با استفاده از Raspberry Pi یک سیستم دانلودر خودکارِ همواره روشن و قابل اطمینان راه اندازی کنم. با این کار هم از آهنگ استهلاک رایانهی رومیزی یا لپتاپ کاسته میشود و هم از هزینهها. رزبریپای بورد کوچک کم هزینه و کم مصرفی است که برای این کار گزینهی مناسبی به نظر میآید. راهنماهای زیادی برای راه اندازی این نوع سیستمها وجود دارند اما عموماً پیادهسازیهای سادهای هستند که ممکن است در خیلی از شرایط به مشکل بر بخورند و فایل را درست بارگذاری نکنند و به اشتباه اعلام کنند که بارگذاری با موفقیت به پایان رسیده است گرچه اینگونه نخواهد بود. از طرفی، امکاناتی مثل توقف یا ادامهی خودکار دانلودها سر زمانی خاص یا محدودسازی سرعت در این راهنماها در نظر گرفته نشده اند.
بنابراین تصمیم گرفتم تا سیستم مورد نیاز خودم را پیاده کنم، سیستمی بر مبنای Aria2 و چندین اسکریپت Bash و Python. پس از مدتی کار با این سیستم تصمیم گرفتم که آن را با نام لودباکس (LoadBox) روی GitHub قرار بدم.
هدف لودباکس، ایجاد یک راه حل قابل اطمینان، ایمن و همیشه در دسترس است که کمترین نیاز به دخالت کاربر را داشته باشد و راه اندازی سادهای داشته باشد. لودباکس جهت اجرا برروی سیستمهای Embedded طراحی شده و به طور پیشفرض بر روی بورد Raspberry Pi توسعه داده شده اما میتواند فارغ از نوع معماری CPU، بر روی سیستمهای لینوکسی دیگر مانند بوردهای Beaglebone و CubieBoard و حتی ماشینهای مجازی نیز اجرا شود. ممکن است بتوان در شرایطی خاص آن را بر روی مک و ویندوز (به کمک cygwin) هم اجرا کرد.
قابلیتهای لودباکس:
- بارگذاری از لینکهای مستقیم HTTP(S)/FTP/SFTP، بیتتورنت و Metalink
- ادامهی بارگذاری حتی در صورت قطع برق، مگر در حالتی که سرور مقصد این قابلیت را نداشته باشد.
- زمانبندی جهت توقف/ادامهی دانلودها و محدود/نامحدود سازی سرعت بارگذاری
- ارائهی رابط تحت وب جهت مدیریت دانلودها، ایمن شده با HTTPS و مکانیزم تأیید هویت کاربر با نام کاربری و کلمهی عبور
- تسهیل استفاده از فلشدیسک یا هارددیسک USB. در صورتی که اتصال قطع شود دانلودها متوقف خواهند شد و پس از اتصال دوباره، به طور خودکار عملیات Mount صورت میگیرد و دانلودها بدون خرابی فایلها، ادامه خواهند یافت.
- توانایی انتقال خودکار فایلهای ۱۰۰٪ بارگذاری شده از محل ذخیره به حافظههای تحت شبکه (NAS) مثلFTP و Windows Share (یا Samba) جهت آزاد کردن فضای آشغال شده.
- توانایی بارگذاری مستقیم به محلهای ذخیرهی تحت شبکه (NAS)، بطوری که در صورت قطعی ارتباط آن، بارگذاری متوقف خواهد شد و برای اتصال دوبارهی محل ذخیره تلاش خواهد کرد و سپس بارگذاری را ادامه خواهد داد.
- توانایی ارسال اعلان (Push Notifications) به گوشی هوشمند در صورت به پایان رسیدن دانلود یا رخ دادن خطا.
- پشتیبانی از صدور و تمدید خودکار گواهینامههای Let’s Encrypt برای ایجاد درگاه ارتباطی HTTPS.
در ادامه با روش سادهی راهاندازی و توضیحات بیشتر همراه باشید. ادامه ←