Ge andra användare begränsad kontroll över din Raspberry Pi-webbserver för att köra rutinuppgifter.

Om du kör en Raspberry Pi som hemmaserver är det troligt att vänner och familj också kommer åt dess tjänster. Ibland måste de köra vissa rutinuppgifter som kräver begränsad kontroll av servern.

OliveTin är en självvärdad app som de kan komma åt via en webbläsare för att utföra förutbestämda kommandon och skript som definierats av dig.

Varför använda OliveTin på Raspberry Pi?

Raspberry Pi-serien med enkortsdatorer ger utmärkta lätta hemmaservrar, och det är relativt enkelt att konfigurera en Raspberry Pi-webbserver.

Förutom att vara värd för webbplatser och bloggar, din Raspberry Pi kan vara värd för fotogallerier, kokböcker och onlinekontorspaket. Du kan streama filmer och program till din TV med Jellyfin, eller själv vara värd för ett ljudboksbibliotek med Audiobookshelf.

Du är inte begränsad till antalet användare du kan ha heller, så om du inte bor ensam delar du förmodligen tillgången till dina Raspberry Pi-tjänster med andra medlemmar i ditt hushåll.

instagram viewer

Servrar behöver, precis som alla andra typer av datorer, tillfälligt underhåll. Dina användare kan behöva starta eller stoppa vissa tjänster, ansluta till ett VPN, säkerhetskopiera filer på Raspberry Pi, eller kontrollera nätverksproblem.

Om din familj och huskamrater är det bekant med Linux-kommandoraden, och du litar på att de inte av misstag eller avsiktligt borkar ditt system, kan du överväga att ge dem sina egna SSH-uppgifter tillsammans med sudo-gruppmedlemskap, så att de kan utföra dessa uppgifter utan att störa dig.

Det är ett frestande men farligt förslag, och om något går fel är det du som måste fixa det. Med OliveTin kan du definiera rutinkommandon som andra serveranvändare kan behöva utföra regelbundet. De kan sedan öppna en webbläsare och trycka på en knapp som kör kommandot på din Pi - utan att någonsin behöva röra kommandoraden.

Hur man installerar OliveTin på Raspberry Pi

Det enklaste sättet att installera OliveTin är att använda Docker Compose. Om du inte redan har Docker och Docker Compose installerade på din Raspberry Pi, kolla in vår viktiga guide på hur man installerar Docker och Docker Compose på Linux.

Anslut till din Raspberry Pi-server med Säkert skal (SSH):

ssh pi@din-lokal-pi-ip-adress

Skapa en ny katalog för OliveTin och använd CD kommando för att flytta in i det:

mkdir olivetin && CD olivtenn

Använd nanotextredigeraren för att skapa en ny Docker Compose-fil:

nanodocker-komponera.yml

Kopiera och klistra in följande:

version: "3.5"
tjänster:
olivtenn:
container_name: olivetin
bild: jamesread/olivetin
användare: root
volymer:
- ~/olivetin:/config
- /var/run/docker.sock:/var/run/docker.sock
hamnar:
- "1337:1337"
omstart: om den inte stoppas

nätverk:
webb:
sektion:
extern: Sann

Spara och avsluta nu nano med Ctrl + O sedan Ctrl + X.

Innan du kör OliveTin för första gången måste du skapa en konfigurationsfil. Det är här du kommer att definiera kommandona för användare att köra. För nu, skriv in:

Rörconfig.yaml

Använd OliveTin för att ge dina användare begränsad serverkontroll

I din terminal anger du:

docker-compose up -d 

Detta kommando kommer att visa Docker Compose i fristående läge. Docker Compose kommer att ladda ner bilderna för OliveTin och ställa in behållare. Denna process kan ta lite tid. När du kommer tillbaka till kommandotolken, kontrollera att allt fungerar korrekt med:

docker-compose ps

Öppna en webbläsare och navigera till din-pi-lokal-ip-adress: 1337. Du bör se en grå webbsida med OliveTin-sidfoten. Du är nu redo att börja definiera kommandon för dina användare.

Tillbaka i terminalen, använd nano för att redigera konfigurationsfilen du skapade tidigare:

nanoconfig.yaml

Syntaxen är enkel och du kan definiera namnet på tjänsterna och de åtgärder som ska utföras på samma sätt som i följande exempel:

handlingar:
- titel: "Starta om servern"
skal: starta om

- titel: "Pinga Netflix"
skal: pingnetflix.com

- title: Starta om Apache
ikon: "🏁"
skal: sudo-tjänsten apache2 starta om

Den title fältet är titeln som användare kan se, medan kommandot följer skal: är kommandot som faktiskt kommer att utföras på din Raspberry Pi.

OliveTin stöder unicode-ikoner, och du kan ange HTML-koden för dessa i ikon sektion. Alternativt kan du ställa in hela webbadressen till en bild som du vill använda. Till exempel:

ikon: '<imgsrc = " https://www.makeuseof.com/public/build/images/muo-logo-full-colored-light.svg"bredd = "81px"/>'

Medan vår konfiguration ger exempel som kommer att starta om Raspberry Pi, starta om Apache och pinga Netflix, finns det verkligen ingen gräns för vilka kommandon du kan ange. Du kan ge användarna en knapp som kommer att kopiera filmer från en katalog till en annan, snabbt torka och skriv över vissa kataloger, eller bygg en kill-switch som kommer att kryptera dina lagringsenheter med en slumpmässig nyckel.

När du är nöjd med din konfiguration, spara filen och avsluta nano genom att trycka på Ctrl + O sedan Ctrl + X.

Alla stdout som skapas som ett resultat av knapptryckningar loggas. Du kan se loggarna genom att trycka på Loggar knappen uppe till höger. Med OliveTin kan du också tillåta användare att ge kommandon, så kallade argument, via webbgränssnittet – antingen med en textruta eller med rullgardinsval.

På grund av faran med att låta oerfarna användare utfärda privilegierade godtyckliga kommandon direkt till din Raspberry Pi-server, kan du begränsa vilken typ av argument OliveTin accepterar.

För snabb referens är typerna:

Typ

Godkända värden

very_dangerous_raw_string

Som namnet antyder kommer användaren att kunna mata in vilken text eller kommando som helst och få det utfört

int

Vilket positivt tal som helst

ascii

Alla tecken eller siffror, men inga mellanslag eller skiljetecken

ascii_identifier

För DNS och liknande

ascii_sats

a-z, 0-9, med mellanslag, . och ,

url

En webbadress

En textrutadefinition i din config.yaml filen är formaterad enligt nedan:

handlingar:
- titel: Eko något till kommandoraden
ikon: "⛔"
skal: eko {{ meddelande }}
argument:
- namn: meddelande
typ: very_dangerous_raw_string

Textrutan kommer att visas när någon trycker på lämplig knapp, och tillåter alla användare på ditt lokala nätverk att exekvera godtycklig kod via webbläsaren. Det är inte alls en bra idé.

OliveTin gör det enkelt för användare att utföra grundläggande uppgifter på din Raspberry Pi-server

Raspberry Pi är den perfekta hemserverplattformen för värdtjänster för din familj att använda, och OliveTin gör det enkelt för dem att utföra enkelt underhåll utan att störa dig.

Det finns tusentals egenvärdiga projekt du kan köra på Raspberry Pi som kommer att gynna ditt hushåll. Gör lite forskning och ta reda på vilka tjänster du betalar för som du kan vara värd för dig själv istället!