به سایر کاربران کنترل محدودی بر وب سرور Raspberry Pi خود بدهید تا کارهای روتین را انجام دهند.
اگر از Raspberry Pi به عنوان یک سرور خانگی استفاده می کنید، احتمالاً دوستان و خانواده نیز به خدمات آن دسترسی دارند. گاهی اوقات، آنها نیاز به اجرای برخی از وظایف معمول دارند که به کنترل محدودی از سرور نیاز دارند.
OliveTin یک برنامه خود میزبان است که آنها می توانند از طریق یک مرورگر وب برای اجرای دستورات و اسکریپت های از پیش تعیین شده تعریف شده توسط شما به آن دسترسی داشته باشند.
چرا از OliveTin در Raspberry Pi استفاده کنیم؟
سری کامپیوترهای تک برد Raspberry Pi سرورهای خانگی بسیار سبک وزنی را ایجاد می کنند و راه اندازی وب سرور Raspberry Pi نسبتاً آسان است.
Raspberry Pi شما علاوه بر میزبانی وبسایتها و وبلاگها، میتواند میزبان گالریهای عکس، کتابهای آشپزی و مجموعههای اداری آنلاین باشد. میتوانید با Jellyfin، فیلمها و نمایشها را در تلویزیون پخش کنید، یا با قفسه کتاب صوتی، یک کتابخانه کتاب صوتی را خودتان میزبانی کنید.
شما به تعداد کاربرانی که می توانید داشته باشید نیز محدود نیستید، بنابراین، مگر اینکه تنها زندگی کنید، احتمالاً دسترسی به خدمات Raspberry Pi خود را با سایر اعضای خانواده خود به اشتراک می گذارید.
سرورها نیز مانند هر نوع کامپیوتر دیگری نیاز به تعمیر و نگهداری گاه و بیگاه دارند. کاربران شما ممکن است نیاز داشته باشند خدمات خاصی را شروع یا متوقف کنند، به یک VPN متصل شوند، از فایلها در Raspberry Pi نسخه پشتیبان تهیه کنند، یا مشکلات شبکه را بررسی کنند.
اگر خانواده و هم خانه های شما با خط فرمان لینوکس آشنا هستند و به آنها اعتماد دارید که به طور تصادفی یا عمدی سیستم شما را خراب نکنند، می توانید اعتبار SSH خود را همراه با عضویت در گروه sudo به آنها بدهید تا بتوانند این کارها را بدون زحمت انجام دهند. شما.
این یک پیشنهاد وسوسه انگیز اما خطرناک است، و اگر مشکلی پیش بیاید، این شما هستید که باید آن را اصلاح کنید. با OliveTin، می توانید دستورات روتینی را تعریف کنید که سایر کاربران سرور ممکن است نیاز داشته باشند به طور منظم آن ها را انجام دهند. سپس میتوانند یک مرورگر وب را باز کنند و دکمهای را بزنند که دستور را روی Pi شما اجرا میکند—بدون نیاز به لمس خط فرمان.
نحوه نصب OliveTin روی Raspberry Pi
ساده ترین راه برای نصب OliveTin استفاده از Docker Compose است. اگر قبلاً Docker و Docker Compose را روی Raspberry Pi خود نصب نکردهاید، راهنمای ضروری ما را در مورد نحوه نصب Docker و Docker Compose در لینوکس بررسی کنید.
با استفاده از Secure Shell (SSH) به سرور Raspberry Pi خود متصل شوید:
ssh pi@your-local-pi-ip-address
یک دایرکتوری جدید برای OliveTin ایجاد کنید و از دستور cd برای انتقال به آن استفاده کنید:
mkdir olivetin && cd olivetin
از ویرایشگر متن نانو برای ایجاد یک فایل Docker Compose جدید استفاده کنید:
nano docker-compose.yml
در موارد زیر کپی و پیست کنید:
version: "3.5"
services:
olivetin:
container_name: olivetin
image: jamesread/olivetin
user: root
volumes:
- ~/olivetin:/config
- /var/run/docker.sock:/var/run/docker.sock
ports:
- "1337:1337"
restart: unless-stopped
networks:
web:
section:
external: true
حالا با Ctrl + O و سپس Ctrl + X از nano خارج شده و ذخیره کنید.
قبل از اینکه OliveTin را برای اولین بار اجرا کنید، باید یک فایل پیکربندی ایجاد کنید. اینجاست که دستوراتی را برای کاربران تعریف می کنید تا اجرا شوند. فعلا وارد کنید:
touch config.yaml
از OliveTin برای دادن کنترل محدود سرور به کاربران خود استفاده کنید
در ترمینال خود وارد کنید:
docker-compose up -d
این دستور Docker Compose را در حالت جدا شده نمایش می دهد. Docker Compose تصاویر را برای OliveTin بارگیری می کند و کانتینرها را تنظیم می کند. این فرآیند ممکن است مدتی طول بکشد. وقتی به خط فرمان برگشتید، بررسی کنید که همه چیز به درستی اجرا شود با:
docker-compose ps
یک مرورگر باز کنید و به آدرس your-pi-local-ip-address:1337 بروید. شما باید یک صفحه وب خاکستری با پاورقی OliveTin ببینید. اکنون آماده هستید تا دستورات را برای کاربران خود تعریف کنید.
به ترمینال برگردید، از nano برای ویرایش فایل پیکربندی که قبلا ایجاد کردید استفاده کنید:
nano config.yaml
سینتکس ساده است و میتوانید نام سرویسها و اقداماتی را که باید انجام شوند، مشابه مثال زیر تعریف کنید:
actions:
- title: "Reboot server"
shell: reboot
- title: "Ping Netflix"
shell: ping netflix.com
- title: Restart Apache
icon: "🏁"
shell: sudo service apache2 restart
فیلد عنوان عنوانی است که کاربران می توانند ببینند، در حالی که دستور زیر پوسته: فرمانی است که در واقع روی Raspberry Pi شما اجرا می شود.
OliveTin از آیکون های یونیکد پشتیبانی می کند و می توانید کد HTML آنها را در قسمت آیکون مشخص کنید. همچنین، میتوانید URL کامل تصویری را که میخواهید استفاده کنید، تنظیم کنید. برای مثال:
icon: '<img src = "https://www.makeuseof.com/public/build/images/muo-logo-full-colored-light.svg" width = "81px"/>'
در حالی که پیکربندی ما مثالهایی را ارائه میکند که Raspberry Pi را مجدداً راهاندازی میکند، Apache را مجدداً راهاندازی میکند و Netflix را پینگ میکند، در واقع هیچ محدودیتی برای دستوراتی که میتوانید مشخص کنید وجود ندارد. میتوانید به کاربران دکمهای بدهید که فیلمها را از یک فهرست به فهرست دیگر کپی میکند، فهرستهای خاص را به سرعت پاک میکند و بازنویسی میکند، یا یک کلید kill-switch بسازید که دستگاههای ذخیرهسازی شما را با یک کلید تصادفی رمزگذاری میکند.
وقتی از تنظیمات خود راضی بودید، فایل را ذخیره کنید و با فشردن کلیدهای Ctrl + O و سپس Ctrl + X از nano خارج شوید.
هر stdout ایجاد شده در نتیجه فشار دادن دکمه ثبت می شود. با فشار دادن دکمه Logs در بالا سمت راست می توانید گزارش ها را مشاهده کنید. با OliveTin، همچنین میتوانید به کاربران اجازه دهید تا دستوراتی را که به عنوان آرگومان شناخته میشوند، از طریق رابط وب ارائه دهند – چه با یک جعبه متن یا با انتخابهای کشویی.
به دلیل خطری که به کاربران بی تجربه اجازه می دهد دستورات دلخواه ممتاز را مستقیماً به سرور Raspberry Pi خود صادر کنند، می توانید نوع استدلالی را که OliveTin قبول می کند محدود کنید.
برای مرجع سریع، انواع عبارتند از:
تایپ کنید
ارزش های پذیرفته شده
خیلی_خطرناک_رشته_خام
همانطور که از نام آن پیداست، کاربر میتواند هر متن یا دستوری را وارد کرده و آن را اجرا کند
بین المللی
هر عدد مثبت کامل
آسکی
هر کاراکتر یا عدد، اما بدون فاصله یا نقطه گذاری
ascii_identifier
برای DNS و موارد مشابه
ascii_sentence
a-z، 0-9، با فاصله، . و
.
,
آدرس اینترنتی
یک آدرس وب
یک تعریف جعبه متن در فایل config.yaml شما به صورت زیر قالب بندی شده است:
actions:
- title: Echo something to command line
icon: "⛔"
shell: echo {{ message }}
arguments:
- name: message
type: very_dangerous_raw_string
وقتی کسی دکمه مناسب را فشار میدهد کادر متن ظاهر میشود و به هر کاربر در شبکه محلی شما اجازه میدهد تا کد دلخواه را از طریق مرورگر اجرا کند. در کل ایده خوبی نیست.
OliveTin انجام وظایف اصلی را در سرور Raspberry Pi برای کاربران آسان می کند.
Raspberry Pi بستر مناسبی برای میزبانی خدمات برای خانواده شما است و OliveTin انجام تعمیرات ساده را بدون ایجاد مزاحمت برای آنها آسان می کند.
هزاران پروژه خود میزبانی وجود دارد که می توانید روی Raspberry Pi اجرا کنید که به نفع خانواده شما خواهد بود. کمی تحقیق کنید و دریابید که چه خدماتی را پرداخت میکنید که به جای آن میتوانید میزبان خود باشید!