Poskytněte ostatním uživatelům omezenou kontrolu nad vaším webovým serverem Raspberry Pi, aby mohli spouštět rutinní úlohy.

Pokud používáte Raspberry Pi jako domácí server, je pravděpodobné, že k jeho službám mají přístup i přátelé a rodina. Občas budou muset spustit některé rutinní úlohy, které vyžadují omezenou kontrolu nad serverem.

OliveTin je aplikace s vlastním hostitelem, ke které mají přístup prostřednictvím webového prohlížeče a spouštějí předem určené příkazy a skripty, které definujete.

Proč používat OliveTin na Raspberry Pi?

Série jednodeskových počítačů Raspberry Pi tvoří vynikající lehké domácí servery a je to relativně snadné nastavit webový server Raspberry Pi.

Kromě hostování webových stránek a blogů, váš Raspberry Pi může hostit fotogalerie, kuchařky a online kancelářské balíky. Můžeš streamujte filmy a pořady do televizoru pomocí Jellyfinnebo vlastní hostování knihovny audioknih pomocí aplikace Audiobookshelf.

Nejste omezeni ani počtem uživatelů, které můžete mít, takže pokud nežijete sami, pravděpodobně sdílíte přístup ke svým službám Raspberry Pi s ostatními členy vaší domácnosti.

instagram viewer

Servery, jako každý jiný typ počítače, potřebují občasnou údržbu. Vaši uživatelé mohou potřebovat spustit nebo zastavit konkrétní služby, připojit k VPN, zálohovat soubory na Raspberry Pinebo zkontrolujte problémy se sítí.

Pokud je to vaše rodina a spolubydlící obeznámeni s příkazovým řádkem Linuxua důvěřujete jim, že náhodně nebo úmyslně nenaruší váš systém, můžete zvážit, zda jim spolu s jejich vlastními přihlašovacími údaji SSH členství ve skupině sudo, takže mohou tyto úkoly provádět, aniž by vás obtěžovali.

Je to lákavý, ale nebezpečný návrh, a pokud se něco pokazí, budete to muset napravit vy. S OliveTin můžete definovat rutinní příkazy, které ostatní uživatelé serveru mohou potřebovat pravidelně provádět. Poté mohou otevřít webový prohlížeč a stisknout tlačítko, které spustí příkaz na vašem Pi – aniž by se museli dotknout příkazového řádku.

Jak nainstalovat OliveTin na Raspberry Pi

Nejjednodušší způsob instalace OliveTin je pomocí Docker Compose. Pokud ještě nemáte na svém Raspberry Pi nainstalovaný Docker a Docker Compose, podívejte se na našeho základního průvodce na jak nainstalovat Docker a Docker Compose na Linux.

Připojte se k serveru Raspberry Pi pomocí Secure Shell (SSH):

ssh pi@tvoje-místní-pi-ip-adresa

Vytvořte nový adresář pro OliveTin a použijte CD příkaz k přesunu do něj:

mkdir olivetin && CD olivetin

Pomocí textového editoru nano vytvořte nový soubor Docker Compose:

nanodocker-compose.yml

Zkopírujte a vložte následující:

verze: "3.5"
služby:
olivovník:
název_kontejneru: olivetin
obrázek: jamesread/olivetin
uživatel: root
svazky:
- ~/olivetin:/config
- /var/run/docker.sock:/var/run/docker.sock
porty:
- "1337:1337"
restart: pokud není zastaven

sítě:
web:
sekce:
externí: skutečný

Nyní uložte a ukončete nano pomocí Ctrl + O pak Ctrl + X.

Než spustíte OliveTin poprvé, musíte vytvořit konfigurační soubor. Zde budete definovat příkazy, které mají uživatelé spouštět. Prozatím zadejte:

dotekconfig.yaml

Použijte OliveTin, abyste svým uživatelům poskytli omezenou kontrolu nad serverem

Ve svém terminálu zadejte:

docker-compose up -d 

Tento příkaz vyvolá Docker Compose v odděleném režimu. Docker Compose stáhne obrázky pro OliveTin a nastaví kontejnery. Tento proces může nějakou dobu trvat. Po návratu do příkazového řádku zkontrolujte, zda vše běží správně pomocí:

docker-compose ps

Otevřete prohlížeč a přejděte na vaše-pi-místní-ip-adresa: 1337. Měli byste vidět šedou webovou stránku se zápatím OliveTin. Nyní jste připraveni začít definovat příkazy pro vaše uživatele.

Zpět v terminálu použijte nano k úpravě konfiguračního souboru, který jste vytvořili dříve:

nanoconfig.yaml

Syntaxe je jednoduchá a můžete definovat název služeb a akcí, které se mají provést, podobně jako v následujícím příkladu:

akce:
- název: "Restartovat server"
shell: restart

- název: "Ping Netflix"
skořápka: pingnetflix.com

- název: Restartujte Apache
ikona: "🏁"
shell: sudo service apache2 restart

title pole je název, který uživatelé mohou vidět, zatímco příkaz následuje skořápka: je příkaz, který bude skutečně proveden na vašem Raspberry Pi.

OliveTin podporuje unicode ikony a jejich HTML kód můžete specifikovat v ikona sekce. Případně můžete nastavit úplnou adresu URL obrázku, který chcete použít. Například:

ikona: '<imgsrc = " https://www.makeuseof.com/public/build/images/muo-logo-full-colored-light.svg"šířka = "81px"/>'

Zatímco naše konfigurace poskytuje příklady, které restartují Raspberry Pi, restartují Apache a ping Netflix, ve skutečnosti neexistuje žádný limit na to, jaké příkazy můžete zadat. Uživatelům můžete dát tlačítko, které zkopíruje filmy z jednoho adresáře do druhého, rychle vymaže a přepsat určité adresáře nebo vytvořit kill-switch, který zašifruje vaše úložná zařízení pomocí a náhodný klíč.

Až budete s konfigurací spokojeni, uložte soubor a ukončete nano stisknutím Ctrl + O pak Ctrl + X.

Každý stdout vytvořený jako výsledek stisku tlačítka je zaznamenán. Záznamy můžete zobrazit stisknutím tlačítka Protokoly tlačítko vpravo nahoře. S OliveTin můžete také uživatelům umožnit zadávat příkazy, známé jako argumenty, prostřednictvím webového rozhraní – buď pomocí textového pole, nebo pomocí rozevírací nabídky.

Kvůli nebezpečí spojenému s tím, že necháte nezkušené uživatele vydávat privilegované libovolné příkazy přímo vašemu serveru Raspberry Pi, můžete omezit typ argumentu, který OliveTin přijme.

Pro rychlou orientaci jsou tyto typy:

Typ

Přijímané hodnoty

very_dangerous_raw_string

Jak název napovídá, uživatel bude moci zadat libovolný text nebo příkaz a nechat jej provést

int

Jakékoli celé kladné číslo

ascii

Jakékoli znaky nebo čísla, ale žádné mezery nebo interpunkce

ascii_identifier

Pro DNS a podobně

ascii_sentence

a–z, 0–9, s mezerami, . a ,

url

Webovou adresu

Definice textového pole ve vašem config.yaml soubor je naformátován následovně:

akce:
- název: Echo něco do příkazového řádku
ikona: "⛔"
skořápka: echo {{ zpráva }}
argumenty:
- jméno: zpráva
typ: very_dangerous_raw_string

Textové pole se zobrazí, když někdo stiskne příslušné tlačítko, a umožní každému uživateli ve vaší místní síti spustit libovolný kód prostřednictvím prohlížeče. Není to úplně dobrý nápad.

OliveTin usnadňuje uživatelům provádění základních úkolů na vašem serveru Raspberry Pi

Raspberry Pi je perfektní platforma domácího serveru pro hostingové služby pro vaši rodinu a OliveTin jim usnadňuje provádění jednoduché údržby, aniž by vás rušil.

Na Raspberry Pi můžete provozovat tisíce samostatně hostovaných projektů, které budou přínosem pro vaši domácnost. Udělejte si průzkum a zjistěte, za jaké služby platíte a které byste místo toho mohli hostit sami!