Daj innym użytkownikom ograniczoną kontrolę nad serwerem internetowym Raspberry Pi, aby mogli wykonywać rutynowe zadania.
Jeśli używasz Raspberry Pi jako serwera domowego, prawdopodobnie znajomi i rodzina również mają dostęp do jego usług. Czasami będą musieli wykonać pewne rutynowe zadania, które wymagają ograniczonej kontroli nad serwerem.
OliveTin to samodzielnie hostowana aplikacja, do której mogą uzyskiwać dostęp za pośrednictwem przeglądarki internetowej w celu wykonywania z góry określonych poleceń i skryptów zdefiniowanych przez Ciebie.
Dlaczego warto używać OliveTin na Raspberry Pi?
Seria komputerów jednopłytowych Raspberry Pi zapewnia doskonałe lekkie serwery domowe i jest stosunkowo łatwa skonfigurować serwer WWW Raspberry Pi.
Oprócz hostingu stron internetowych i blogów, Twoje Raspberry Pi może obsługiwać galerie zdjęć, książki kucharskie i pakiety biurowe online. Możesz przesyłaj strumieniowo filmy i programy do telewizora za pomocą Jellyfin, Lub samodzielnie hostować bibliotekę audiobooków za pomocą Audiobookshelf.
Nie jesteś też ograniczony liczbą użytkowników, których możesz mieć, więc jeśli nie mieszkasz sam, prawdopodobnie dzielisz dostęp do swoich usług Raspberry Pi z innymi członkami gospodarstwa domowego.
Serwery, jak każdy inny typ komputera, wymagają okresowej konserwacji. Twoi użytkownicy mogą tego potrzebować uruchamiać lub zatrzymywać określone usługi, połączyć się z VPN, tworzyć kopie zapasowe plików na Raspberry Pi, Lub sprawdź problemy z siecią.
Jeśli twoja rodzina i współlokatorzy są znasz linię poleceń Linuksai ufasz, że nie zablokują przypadkowo lub celowo Twojego systemu, możesz rozważyć przekazanie im ich własnych poświadczeń SSH wraz z członkostwo w grupie sudo, aby mogli wykonywać te zadania bez przeszkadzania Tobie.
To kusząca, ale niebezpieczna propozycja, a jeśli coś pójdzie nie tak, to ty będziesz musiał to naprawić. Dzięki OliveTin możesz zdefiniować rutynowe polecenia, które inni użytkownicy serwera mogą potrzebować regularnie wykonywać. Następnie mogą otworzyć przeglądarkę internetową i nacisnąć przycisk, który uruchomi polecenie na twoim Pi - bez konieczności dotykania wiersza poleceń.
Jak zainstalować OliveTin na Raspberry Pi
Najłatwiejszym sposobem instalacji OliveTin jest użycie Docker Compose. Jeśli nie masz jeszcze zainstalowanych Docker i Docker Compose na swoim Raspberry Pi, zapoznaj się z naszym niezbędnym przewodnikiem jak zainstalować Docker i Docker Compose w systemie Linux.
Połącz się z serwerem Raspberry Pi za pomocą Bezpieczna powłoka (SSH):
ssh pi@twój-local-pi-adres-ip
Utwórz nowy katalog dla OliveTin i użyj pliku płyta CD polecenie przejścia do niego:
mkdir oliwkowy && płyta CD oliwin
Użyj edytora tekstu nano, aby utworzyć nowy plik Docker Compose:
nanokomponowanie dokera.yml
Skopiuj i wklej w następujący sposób:
wersja: "3.5"
usługi:
oliwin:
nazwa_kontenera: Olivetin
zdjęcie: jamesread/olivetin
użytkownik: root
wolumeny:
- ~/olivetin:/konfiguracja
- /var/run/docker.sock:/var/run/docker.sock
porty:
- "1337:1337"
uruchom ponownie: chyba że zatrzymano
sieci:
sieć:
Sekcja:
zewnętrzny: PRAWDA
Teraz zapisz i wyjdź z nano za pomocą Ctrl + O Następnie Ctrl + X.
Zanim uruchomisz OliveTin po raz pierwszy, musisz utworzyć plik konfiguracyjny. W tym miejscu zdefiniujesz polecenia, które mają uruchamiać użytkownicy. Na razie wpisz:
dotykaćkonfiguracja.yaml
Użyj OliveTin, aby dać swoim użytkownikom ograniczoną kontrolę nad serwerem
W swoim terminalu wpisz:
tworzenie dokerów -d
To polecenie wywoła Docker Compose w trybie odłączonym. Docker Compose pobierze obrazy dla OliveTin i skonfiguruje kontenery. Ten proces może trochę potrwać. Po powrocie do wiersza polecenia sprawdź, czy wszystko działa poprawnie, używając:
tworzenie dokerów ps
Otwórz przeglądarkę i przejdź do twój-lokalny-adres-ip: 1337. Powinieneś zobaczyć szarą stronę internetową ze stopką OliveTin. Teraz możesz przystąpić do definiowania poleceń dla użytkowników.
Po powrocie do terminala użyj nano do edycji utworzonego wcześniej pliku konfiguracyjnego:
nanokonfiguracja.yaml
Składnia jest prosta i można zdefiniować nazwę usługi i akcje, które mają być wykonane, podobnie jak w poniższym przykładzie:
działania:
- tytuł: „Uruchom ponownie serwer”
powłoka: uruchom ponownie- tytuł: „Pinguj Netflix”
powłoka: świstnetflix.com
- tytuł: Uruchom ponownie Apache
Ikona: "🏁"
powłoka: sudo ponowne uruchomienie usługi apache2
tto pole to tytuł, który użytkownicy mogą zobaczyć, podczas gdy polecenie następuje powłoka: to polecenie, które faktycznie zostanie wykonane na twoim Raspberry Pi.
OliveTin obsługuje ikony Unicode i możesz określić ich kod HTML w pliku Ikona Sekcja. Alternatywnie możesz ustawić pełny adres URL obrazu, którego chcesz użyć. Na przykład:
Ikona: '<imgźródło = " https://www.makeuseof.com/public/build/images/muo-logo-full-colored-light.svg"szerokość = „81px”/>'
Chociaż nasza konfiguracja zawiera przykłady, które zrestartują Raspberry Pi, zrestartują Apache i pingują Netflix, naprawdę nie ma ograniczeń co do poleceń, które możesz określić. Możesz dać użytkownikom przycisk, który skopiuje filmy z jednego katalogu do drugiego, szybko wyczyści i zastąp niektóre katalogi lub zbuduj wyłącznik awaryjny, który zaszyfruje twoje urządzenia pamięci masowej za pomocą rozszerzenia losowy klucz.
Gdy będziesz zadowolony ze swojej konfiguracji, zapisz plik i wyjdź z nano, naciskając Ctrl + O Następnie Ctrl + X.
Każde standardowe wyjście wygenerowane w wyniku naciśnięcia przycisku jest rejestrowane. Dzienniki można wyświetlić, naciskając przycisk Logi przycisk w prawym górnym rogu. Dzięki OliveTin możesz także zezwolić użytkownikom na wydawanie poleceń, zwanych argumentami, za pośrednictwem interfejsu internetowego — albo za pomocą pola tekstowego, albo za pomocą rozwijanych opcji.
Ze względu na niebezpieczeństwo związane z pozwoleniem niedoświadczonym użytkownikom na wydawanie uprzywilejowanych arbitralnych poleceń bezpośrednio na serwerze Raspberry Pi, możesz ograniczyć typ argumentów akceptowanych przez OliveTin.
Dla szybkiego odniesienia, typy to:
Typ |
Akceptowane wartości |
---|---|
bardzo_niebezpieczny_surowy_string |
Jak sama nazwa wskazuje, użytkownik będzie mógł wprowadzić dowolny tekst lub polecenie i zlecić jego wykonanie |
int |
Dowolna liczba całkowita dodatnia |
ascii |
Dowolne znaki lub cyfry, ale bez spacji i znaków interpunkcyjnych |
identyfikator_ascii |
Dla DNS i podobnych |
ascii_zdanie |
a-z, 0-9, ze spacjami, |
adres URL |
Adres internetowy |
Definicja pola tekstowego w pliku your config.yaml plik jest sformatowany jak poniżej:
działania:
- tytuł: Echo coś do linii poleceń
Ikona: "⛔"
powłoka: Echo {{ wiadomość }}
argumenty:
- nazwa: wiadomość
typ: bardzo_niebezpieczny_surowy_string
Pole tekstowe pojawi się, gdy ktoś naciśnie odpowiedni przycisk, i pozwoli każdemu użytkownikowi w Twojej sieci lokalnej wykonać dowolny kod przez przeglądarkę. Nie jest to do końca dobry pomysł.
OliveTin ułatwia użytkownikom wykonywanie podstawowych zadań na serwerze Raspberry Pi
Raspberry Pi to idealna platforma domowego serwera do usług hostingowych dla Twojej rodziny, a OliveTin ułatwia im przeprowadzanie prostej konserwacji bez przeszkadzania Tobie.
Istnieją tysiące samodzielnie hostowanych projektów, które możesz uruchomić na Raspberry Pi, co przyniesie korzyści Twojemu gospodarstwu domowemu. Zrób rozeznanie i dowiedz się, za jakie usługi płacisz, a które możesz ugościć u siebie!