Предоставьте другим пользователям ограниченный контроль над вашим веб-сервером Raspberry Pi для выполнения рутинных задач.
Если вы используете Raspberry Pi в качестве домашнего сервера, вполне вероятно, что друзья и семья также будут иметь доступ к его услугам. Иногда им нужно будет выполнять некоторые рутинные задачи, требующие ограниченного контроля над сервером.
OliveTin — это автономное приложение, к которому они могут получить доступ через веб-браузер для выполнения предопределенных команд и сценариев, определенных вами.
Зачем использовать OliveTin на Raspberry Pi?
Серия одноплатных компьютеров Raspberry Pi представляет собой отличные легкие домашние серверы, и их относительно легко настроить. настроить веб-сервер Raspberry Pi.
Помимо хостинга веб-сайтов и блогов, ваш Raspberry Pi может размещать фотогалереи, кулинарные книги и онлайн-офисные пакеты. Ты можешь транслируйте фильмы и шоу на свой телевизор с помощью Jellyfin, или самостоятельно разместить библиотеку аудиокниг с помощью Audiobookshelf.
Вы также не ограничены количеством пользователей, которые у вас могут быть, поэтому, если вы не живете один, вы, вероятно, делитесь доступом к своим сервисам Raspberry Pi с другими членами вашей семьи.
Серверы, как и любой другой тип компьютеров, нуждаются в периодическом обслуживании. Вашим пользователям может потребоваться запускать или останавливать определенные службы, подключиться к VPN, резервное копирование файлов на Raspberry Pi, или проверить наличие проблем с сетью.
Если ваша семья и соседи по дому знаком с командной строкой Linux, и вы доверяете им, что они случайно или преднамеренно не испортят вашу систему, вы можете рассмотреть возможность предоставления им их собственных учетных данных SSH вместе с членство в группе судо, чтобы они могли выполнять эти задачи, не беспокоя вас.
Это заманчивое, но опасное предложение, и если что-то пойдет не так, вам придется это исправить. С помощью OliveTin вы можете определить рутинные команды, которые могут регулярно выполняться другими пользователями сервера. Затем они могут открыть веб-браузер и нажать кнопку, которая запустит команду на вашем Pi, даже не касаясь командной строки.
Как установить OliveTin на Raspberry Pi
Самый простой способ установить OliveTin — использовать Docker Compose. Если на вашем Raspberry Pi еще не установлены Docker и Docker Compose, ознакомьтесь с нашим основным руководством по как установить Docker и Docker Compose в Linux.
Подключитесь к серверу Raspberry Pi, используя Безопасная оболочка (SSH):
ssh пи@твой-локальный-pi-ip-адрес
Создайте новый каталог для OliveTin и используйте CD команда для перемещения в него:
мкдир оливтин && CD оливьетин
Используйте текстовый редактор nano, чтобы создать новый файл Docker Compose:
наноdocker-compose.yml
Скопируйте и вставьте следующее:
версия: "3.5"
услуги:
оливьетин:
container_name: оливтин
изображение: джеймсрид/оливетин
пользователь: корень
тома:
- ~/olivetin:/конфигурация
- /var/запустить /docker.sock:/var/запустить/docker.sock
порты:
- "1337:1337"
перезапуск: если не остановлен
сети:
веб:
раздел:
внешний: истинный
Теперь сохраните и выйдите из nano с помощью Ctrl + О затем Ctrl + Х.
Перед первым запуском OliveTin необходимо создать файл конфигурации. Здесь вы определите команды для запуска пользователями. Пока введите:
трогатьконфигурация.yaml
Используйте OliveTin, чтобы дать своим пользователям ограниченный контроль над сервером
В терминале введите:
docker-compose up -d
Эта команда вызовет Docker Compose в автономном режиме. Docker Compose загрузит образы для OliveTin и настроит контейнеры. Этот процесс может занять некоторое время. Когда вы вернетесь в командную строку, проверьте, все ли работает правильно, с помощью:
docker-compose ps
Откройте браузер и перейдите к ваш-пи-местный-ip-адрес: 1337. Вы должны увидеть серую веб-страницу с нижним колонтитулом OliveTin. Теперь вы готовы приступить к определению команд для ваших пользователей.
Вернувшись в терминал, используйте nano для редактирования файла конфигурации, который вы создали ранее:
наноконфигурация.yaml
Синтаксис прост, и вы можете определить имя службы и действия, которые необходимо выполнить, аналогично следующему примеру:
действия:
- заголовок: "Перезагрузить сервер"
оболочка: перезагрузка- заголовок: "Пинг Нетфликс"
оболочка: пингнетфликс.com
- title: Перезапустите Apache
икона: "🏁"
оболочка: перезапуск службы sudo apache2
тэто поле — это заголовок, который могут видеть пользователи, а следующая за ним команда оболочка: это команда, которая фактически будет выполняться на вашем Raspberry Pi.
OliveTin поддерживает значки в формате Unicode, и вы можете указать их HTML-код в икона раздел. Кроме того, вы можете указать полный URL-адрес изображения, которое хотите использовать. Например:
икона: '<изображениеисточник = " https://www.makeuseof.com/public/build/images/muo-logo-full-colored-light.svg"ширина = "81px"/>'
Хотя наша конфигурация дает примеры, которые перезапускают Raspberry Pi, перезапускают Apache и пингуют Netflix, на самом деле нет ограничений на то, какие команды вы можете указать. Вы можете дать пользователям кнопку, которая будет копировать фильмы из одного каталога в другой, быстро стирать и перезаписать определенные каталоги или создать переключатель уничтожения, который будет шифровать ваши устройства хранения с помощью случайный ключ.
Когда вы довольны своей конфигурацией, сохраните файл и выйдите из nano, нажав Ctrl + О затем Ctrl + Х.
Любой стандартный вывод, созданный в результате нажатия кнопки, регистрируется. Вы можете просмотреть журналы, нажав кнопку Журналы кнопка в правом верхнем углу. С помощью OliveTin вы также можете позволить пользователям давать команды, известные как аргументы, через веб-интерфейс — либо с помощью текстового поля, либо с помощью раскрывающегося списка.
Из-за опасности, связанной с тем, что неопытные пользователи могут вводить привилегированные произвольные команды непосредственно на ваш сервер Raspberry Pi, вы можете ограничить тип аргумента, который будет принимать OliveTin.
Для краткой справки, типы:
Тип |
Допустимые значения |
---|---|
очень_опасная_raw_string |
Как следует из названия, пользователь сможет ввести любой текст или команду и выполнить ее. |
инт |
Любое целое положительное число |
ascii |
Любые символы или цифры, но без пробелов и знаков препинания |
ascii_identifier |
Для DNS и подобных |
ascii_sentence |
az, 0-9, с пробелами, |
URL |
Веб-адрес |
Определение текстового поля в вашем config.yaml файл форматируется следующим образом:
действия:
- заголовок: Эхо что-то в командной строке
икона: "⛔"
оболочка: эхо {{ сообщение }}
аргументы:
- название: сообщение
тип: очень_опасная_raw_string
Текстовое поле появится, когда кто-то нажмет соответствующую кнопку, и позволит любому пользователю в вашей локальной сети выполнить произвольный код через браузер. Это не совсем хорошая идея.
OliveTin упрощает пользователям выполнение основных задач на вашем сервере Raspberry Pi
Raspberry Pi — это идеальная платформа домашнего сервера для хостинга услуг для вашей семьи, а OliveTin позволяет им легко выполнять простое обслуживание, не беспокоя вас.
На Raspberry Pi вы можете запустить тысячи самостоятельных проектов, которые принесут пользу вашей семье. Проведите небольшое исследование и узнайте, за какие платные услуги вы могли бы принять гостей самостоятельно!