Poskytnite ostatným používateľom obmedzenú kontrolu nad vaším webovým serverom Raspberry Pi na vykonávanie bežných úloh.
Ak používate Raspberry Pi ako domáci server, je pravdepodobné, že k jeho službám majú prístup aj priatelia a rodina. Príležitostne budú musieť spustiť niektoré rutinné úlohy, ktoré vyžadujú obmedzenú kontrolu nad serverom.
OliveTin je aplikácia s vlastným hosťovaním, ku ktorej môžu pristupovať prostredníctvom webového prehliadača a vykonávať vami definované vopred určené príkazy a skripty.
Prečo používať OliveTin na Raspberry Pi?
Séria jednodoskových počítačov Raspberry Pi vytvára vynikajúce ľahké domáce servery a je to relatívne jednoduché nastaviť webový server Raspberry Pi.
Okrem hosťovania webových stránok a blogov, váš Raspberry Pi môže hostiť fotogalérie, kuchárske knihy a online kancelárske balíky. Môžeš streamujte filmy a relácie do televízora pomocou Jellyfin, alebo vlastné hosťovanie knižnice audiokníh pomocou aplikácie Audiobookshelf.
Nie ste obmedzený ani počtom používateľov, ktorých môžete mať, takže pokiaľ nežijete sami, pravdepodobne zdieľate prístup k svojim službám Raspberry Pi s ostatnými členmi vašej domácnosti.
Servery, ako každý iný typ počítača, potrebujú občasnú údržbu. Vaši používatelia môžu potrebovať spustiť alebo zastaviť konkrétne služby, pripojiť k sieti VPN, zálohovať súbory na Raspberry Pi, alebo skontrolujte problémy so sieťou.
Ak je to vaša rodina a domáci oboznámení s príkazovým riadkom Linuxua veríte im, že náhodne alebo úmyselne nepokazia váš systém, môžete zvážiť, že im spolu s sudo členstvo v skupine, takže tieto úlohy môžu vykonávať bez toho, aby vás obťažovali.
Je to lákavý, ale nebezpečný návrh, a ak sa niečo pokazí, budete to musieť napraviť vy. Pomocou OliveTin môžete definovať rutinné príkazy, ktoré môžu ostatní používatelia servera musieť pravidelne vykonávať. Potom môžu otvoriť webový prehliadač a stlačiť tlačidlo, ktoré spustí príkaz na vašom Pi – bez toho, aby sa museli dotknúť príkazového riadku.
Ako nainštalovať OliveTin na Raspberry Pi
Najjednoduchší spôsob inštalácie OliveTin je pomocou Docker Compose. Ak ešte nemáte na svojom Raspberry Pi nainštalovaný Docker a Docker Compose, pozrite si nášho základného sprievodcu na ako nainštalovať Docker a Docker Compose v systéme Linux.
Pripojte sa k serveru Raspberry Pi pomocou Secure Shell (SSH):
ssh pi@vaša-lokálna-pi-ip-adresa
Vytvorte nový adresár pre OliveTin a použite cd príkaz na presun do nej:
mkdir olivetin && cd olivetin
Pomocou textového editora nano vytvorte nový súbor Docker Compose:
nanodocker-compose.yml
Skopírujte a prilepte nasledujúce:
verzia: "3.5"
služby:
olivovník:
názov_kontajnera: olivetin
obrázok: jamesread/olivetin
užívateľ: root
objemy:
- ~/olivetin:/config
- /var/run/docker.sock:/var/run/docker.sock
porty:
- "1337:1337"
reštart: pokiaľ sa nezastaví
siete:
web:
sekcia:
externé: pravda
Teraz uložte a ukončite nano pomocou Ctrl + O potom Ctrl + X.
Pred prvým spustením OliveTin musíte vytvoriť konfiguračný súbor. Tu budete definovať príkazy, ktoré majú používatelia spustiť. Zatiaľ zadajte:
dotykconfig.yaml
Použite OliveTin, aby ste svojim používateľom poskytli obmedzenú kontrolu nad serverom
Vo svojom termináli zadajte:
docker-zložiť -d
Tento príkaz vyvolá Docker Compose v oddelenom režime. Docker Compose stiahne obrázky pre OliveTin a nastaví kontajnery. Tento proces môže chvíľu trvať. Keď sa vrátite do príkazového riadka, skontrolujte, či všetko funguje správne pomocou:
docker-compose ps
Otvorte prehliadač a prejdite na vaša-pi-miestnej-ip-adresa: 1337. Mali by ste vidieť sivú webovú stránku s pätou OliveTin. Teraz ste pripravení začať definovať príkazy pre svojich používateľov.
Späť v termináli použite nano na úpravu konfiguračného súboru, ktorý ste vytvorili predtým:
nanoconfig.yaml
Syntax je jednoduchá a môžete definovať názov služieb a akcií, ktoré sa majú vykonať, podobne ako v nasledujúcom príklade:
akcie:
- názov: "Reštartovať server"
shell: reštart- názov: "Pingujte na Netflix"
škrupina: pingnetflix.com
- názov: Reštartujte Apache
ikona: "🏁"
shell: sudo service apache2 reštart
title pole je názov, ktorý používatelia môžu vidieť, zatiaľ čo príkaz nasleduje škrupina: je príkaz, ktorý bude skutočne vykonaný na vašom Raspberry Pi.
OliveTin podporuje unicode ikony a ich HTML kód môžete špecifikovať v ikonu oddiele. Prípadne môžete nastaviť úplnú adresu URL obrázka, ktorý chcete použiť. Napríklad:
ikona: '<imgsrc = " https://www.makeuseof.com/public/build/images/muo-logo-full-colored-light.svg"šírka = "81px"/>'
Zatiaľ čo naša konfigurácia uvádza príklady, ktoré reštartujú Raspberry Pi, reštartujú Apache a ping Netflix, v skutočnosti neexistuje žiadny limit na to, aké príkazy môžete zadať. Používateľom môžete dať tlačidlo, ktoré skopíruje filmy z jedného adresára do druhého, rýchlo vymaže a prepísať určité adresáre alebo vytvoriť kill-switch, ktorý zašifruje vaše úložné zariadenia pomocou a náhodný kľúč.
Keď ste s konfiguráciou spokojní, uložte súbor a ukončite nano stlačením Ctrl + O potom Ctrl + X.
Každý stdout vytvorený ako výsledok stlačenia tlačidla je zaznamenaný. Záznamy môžete zobraziť stlačením tlačidla Denníky tlačidlo vpravo hore. S OliveTin tiež môžete používateľom umožniť zadávať príkazy, známe ako argumenty, prostredníctvom webového rozhrania – buď pomocou textového poľa, alebo pomocou rozbaľovacej ponuky.
Kvôli nebezpečenstvu spojenému s tým, že necháte neskúsených používateľov zadávať privilegované ľubovoľné príkazy priamo vášmu serveru Raspberry Pi, môžete obmedziť typ argumentu, ktorý OliveTin akceptuje.
Pre rýchlu orientáciu sú tieto typy:
Typ |
Akceptované hodnoty |
---|---|
very_dangerous_raw_string |
Ako už názov napovedá, používateľ bude môcť zadať ľubovoľný text alebo príkaz a nechať ho vykonať |
int |
Akékoľvek celé kladné číslo |
ascii |
Akékoľvek znaky alebo čísla, ale žiadne medzery alebo interpunkcia |
ascii_identifier |
Pre DNS a podobne |
ascii_sentence |
a-z, 0-9, s medzerami, |
url |
Webovú adresu |
Definícia textového poľa vo vašom config.yaml súbor je naformátovaný nasledovne:
akcie:
- názov: Echo niečo do príkazového riadku
ikona: "⛔"
škrupina: ozvena {{ správa }}
argumenty:
- meno: správa
typu: very_dangerous_raw_string
Textové pole sa zobrazí, keď niekto stlačí príslušné tlačidlo, a umožní každému používateľovi vo vašej lokálnej sieti spustiť ľubovoľný kód cez prehliadač. Nie je to celkom dobrý nápad.
OliveTin uľahčuje používateľom vykonávanie základných úloh na vašom serveri Raspberry Pi
Raspberry Pi je perfektná platforma domáceho servera na hostingové služby pre vašu rodinu a OliveTin im uľahčuje vykonávanie jednoduchej údržby bez toho, aby vás rušil.
Existujú tisíce projektov s vlastným hosťovaním, ktoré môžete spustiť na Raspberry Pi a ktoré budú prospešné pre vašu domácnosť. Urobte si prieskum a zistite, za aké služby platíte a ktoré by ste namiesto toho mohli hostiť sami!