Дайте на други потребители ограничен контрол върху вашия Raspberry Pi уеб сървър, за да изпълняват рутинни задачи.

Ако използвате Raspberry Pi като домашен сървър, вероятно приятелите и семейството също имат достъп до неговите услуги. Понякога те ще трябва да изпълняват някои рутинни задачи, които изискват ограничен контрол на сървъра.

OliveTin е самостоятелно хоствано приложение, до което те имат достъп чрез уеб браузър, за да изпълняват предварително определени команди и скриптове, дефинирани от вас.

Защо да използвате OliveTin на Raspberry Pi?

Серията Raspberry Pi от едноплаткови компютри прави отлични леки домашни сървъри и е сравнително лесно да настройте Raspberry Pi уеб сървър.

В допълнение към хостването на уебсайтове и блогове, вашият Raspberry Pi може да хоства фото галерии, готварски книги и онлайн офис пакети. Можеш предавайте поточно филми и предавания на вашия телевизор с Jellyfin, или самостоятелно хоствайте библиотека с аудиокниги с Audiobookshelf.

Вие също не сте ограничени до броя потребители, които можете да имате, така че освен ако не живеете сами, вероятно споделяте достъп до услугите на Raspberry Pi с други членове на вашето домакинство.

instagram viewer

Сървърите, както всеки друг вид компютър, се нуждаят от периодична поддръжка. Вашите потребители може да се нуждаят стартиране или спиране на определени услуги, свържете се с VPN, архивиране на файлове на Raspberry Pi, или проверете за мрежови проблеми.

Ако вашето семейство и съквартирантите са запознати с командния ред на Linux, и им вярвате, че няма случайно или умишлено да блокират вашата система, можете да помислите дали да им предоставите техните собствени идентификационни данни за SSH заедно с членство в sudo група, за да могат да изпълняват тези задачи, без да ви притесняват.

Това е примамливо, но опасно предложение и ако нещо се обърка, вие сте този, който ще трябва да го поправите. С OliveTin можете да дефинирате рутинни команди, които другите потребители на сървъра може да трябва да изпълняват редовно. След това те могат да отворят уеб браузър и да натиснат бутон, който ще изпълни командата на вашия Pi - без изобщо да е необходимо да докосват командния ред.

Как да инсталирате OliveTin на Raspberry Pi

Най-лесният начин да инсталирате OliveTin е да използвате Docker Compose. Ако все още нямате инсталирани Docker и Docker Compose на вашия Raspberry Pi, вижте нашето основно ръководство за как да инсталирате Docker и Docker Compose на Linux.

Свържете се с вашия Raspberry Pi сървър, като използвате Защитена обвивка (SSH):

ssh pi@Вашият-локален-pi-ip-адрес

Създайте нова директория за OliveTin и използвайте cd команда за преместване в него:

mkdir olivetin && cd olivetin

Използвайте нано текстовия редактор, за да създадете нов Docker Compose файл:

нанодокер-съставяне.yml

Копирайте и поставете следното:

версия: "3.5"
услуги:
оливетин:
име на контейнер: olivetin
изображение: jamesread/olivetin
потребител: root
томове:
- ~/olivetin:/конфиг
- /var/run/docker.sock:/var/run/docker.sock
портове:
- "1337:1337"
рестартиране: освен ако не е спряно

мрежи:
уеб:
раздел:
външен: вярно

Сега запазете и излезте от nano с Ctrl + O тогава Ctrl + X.

Преди да стартирате OliveTin за първи път, трябва да създадете конфигурационен файл. Това е мястото, където ще дефинирате командите, които потребителите да изпълняват. Засега въведете:

докосванеконфиг.yaml

Използвайте OliveTin, за да дадете на вашите потребители ограничен контрол върху сървъра

Във вашия терминал въведете:

докер-съставяне -d 

Тази команда ще изведе Docker Compose в отделен режим. Docker Compose ще изтегли изображенията за OliveTin и ще настрои контейнери. Този процес може да отнеме известно време. Когато се върнете към командния ред, проверете дали всичко работи правилно с:

docker-compose ps

Отворете браузър и отворете вашият-pi-местен-ip-адрес: 1337. Трябва да видите сива уеб страница с долен колонтитул OliveTin. Вече сте готови да започнете да дефинирате команди за вашите потребители.

Обратно в терминала, използвайте nano, за да редактирате конфигурационния файл, който сте създали по-рано:

наноконфиг.yaml

Синтаксисът е прост и можете да дефинирате името на услугите и действията, които да бъдат извършени, подобно на следния пример:

действия:
- заглавие: „Рестартиране на сървъра“
обвивка: рестартиране

- заглавие: „Ping Netflix“
черупка: пингНетфликс.com

- заглавие: Рестартирайте Apache
икона: "🏁"
обвивка: sudo service apache2 рестартиране

Тitle е заглавието, което потребителите могат да видят, докато следната команда черупка: е командата, която действително ще бъде изпълнена на вашия Raspberry Pi.

OliveTin поддържа unicode икони и можете да посочите HTML кода им в икона раздел. Като алтернатива можете да зададете пълния URL адрес на изображение, което искате да използвате. Например:

икона: '<imgsrc = " https://www.makeuseof.com/public/build/images/muo-logo-full-colored-light.svg"ширина = "81px"/>'

Въпреки че нашата конфигурация дава примери, които ще рестартират Raspberry Pi, рестартират Apache и пингват Netflix, наистина няма ограничение за това какви команди можете да посочите. Можете да дадете на потребителите бутон, който ще копира филми от една директория в друга, бързо ще изтрие и презапишете определени директории или изградете превключвател за изключване, който ще шифрова вашите устройства за съхранение с a произволен ключ.

Когато сте доволни от вашата конфигурация, запазете файла и излезте от nano, като натиснете Ctrl + O тогава Ctrl + X.

Всеки stdout, произведен в резултат на натискане на бутони, се регистрира. Можете да видите регистрационните файлове, като натиснете трупи бутон в горния десен ъгъл. С OliveTin можете също така да позволите на потребителите да дават команди, известни като аргументи, през уеб интерфейса - или с текстово поле, или с падащи избори.

Поради опасността, свързана с оставянето на неопитни потребители да издават привилегировани произволни команди директно към вашия Raspberry Pi сървър, можете да ограничите типа аргумент, който OliveTin ще приеме.

За бърза справка типовете са:

Тип

Приети стойности

много_опасен_суров_низ

Както подсказва името, потребителят ще може да въведе произволен текст или команда и да ги изпълни

вътр

Всяко цяло положително число

ascii

Всякакви знаци или числа, но без интервали или препинателни знаци

ascii_идентификатор

За DNS и подобни

ascii_изречение

a-z, 0-9, с интервали, . и ,

URL адрес

Уеб адрес

Дефиниция на текстово поле във вашия config.yaml файлът е форматиран по-долу:

действия:
- заглавие: Ехо нещо към командния ред
икона: "⛔"
черупка: ехо {{ съобщение }}
аргументи:
- име: съобщение
Тип: very_dangerous_raw_string

Текстовото поле ще се появи, когато някой натисне съответния бутон, и ще позволи на всеки потребител във вашата локална мрежа да изпълни произволен код през браузъра. Като цяло не е добра идея.

OliveTin улеснява потребителите да изпълняват основни задачи на вашия Raspberry Pi сървър

Raspberry Pi е перфектната платформа за домашен сървър за хостинг услуги, които вашето семейство да използва, а OliveTin ги улеснява да извършват проста поддръжка, без да ви безпокоят.

Има хиляди самостоятелно хоствани проекти, които можете да изпълнявате на Raspberry Pi, които ще бъдат от полза за вашето домакинство. Направете проучване и разберете какви услуги плащате, за които бихте могли да хоствате сами вместо това!