Gi andre brukere begrenset kontroll over Raspberry Pi-nettserveren din for å kjøre rutineoppgaver.

Hvis du kjører en Raspberry Pi som hjemmeserver, er det sannsynlig at venner og familie også får tilgang til tjenestene. Noen ganger må de kjøre noen rutineoppgaver som krever begrenset kontroll over serveren.

OliveTin er en selvdrevet app som de kan få tilgang til via en nettleser for å utføre forhåndsbestemte kommandoer og skript definert av deg.

Hvorfor bruke OliveTin på Raspberry Pi?

Raspberry Pi-serien med enkeltbordsdatamaskiner gir utmerkede lette hjemmeservere, og det er relativt enkelt å sette opp en Raspberry Pi-webserver.

I tillegg til å være vert for nettsteder og blogger, er din Raspberry Pi kan være vert for fotogallerier, kokebøker og nettbaserte kontorpakker. Du kan strøm filmer og programmer til TV-en din med Jellyfin, eller være vert for et lydbokbibliotek med lydbokhylle.

Du er ikke begrenset til antall brukere du kan ha heller, så med mindre du bor alene, deler du sannsynligvis tilgangen til Raspberry Pi-tjenestene dine med andre medlemmer av husstanden din.

Servere, som alle andre typer datamaskiner, trenger sporadisk vedlikehold. Brukerne dine må kanskje starte eller stoppe bestemte tjenester, koble til en VPN, sikkerhetskopiere filer på Raspberry Pi, eller se etter nettverksproblemer.

Hvis din familie og huskamerater er det kjent med Linux-kommandolinjen, og du stoler på at de ikke ved et uhell eller bevisst borker systemet ditt, kan du vurdere å gi dem deres egen SSH-legitimasjon sammen med sudo gruppemedlemskap, slik at de kan utføre disse oppgavene uten å plage deg.

Det er et fristende, men farlig forslag, og hvis noe går galt, er det du som må fikse det. Med OliveTin kan du definere rutinekommandoer som andre serverbrukere kan trenge å utføre regelmessig. De kan deretter åpne en nettleser og trykke på en knapp som kjører kommandoen på Pi-en din – uten å måtte berøre kommandolinjen.

Hvordan installere OliveTin på Raspberry Pi

Den enkleste måten å installere OliveTin på er å bruke Docker Compose. Hvis du ikke allerede har Docker og Docker Compose installert på din Raspberry Pi, sjekk ut vår viktige guide på hvordan installere Docker og Docker Compose på Linux.

Koble til din Raspberry Pi-server ved å bruke Secure Shell (SSH):

ssh pi@din-lokal-pi-ip-adresse

Opprett en ny katalog for OliveTin, og bruk cd kommando for å flytte inn i den:

mkdir olivetin && cd oliventin

Bruk nanotekstredigeringsprogrammet til å lage en ny Docker Compose-fil:

nanodocker-komponere.yml

Kopier og lim inn følgende:

versjon: "3.5"
tjenester:
oliventin:
container_name: oliventin
bilde: jamesread/olivenin
bruker: root
volumer:
- ~/olivetin:/konfig
- /var/run/docker.sock:/var/run/docker.sock
porter:
- "1337:1337"
omstart: med mindre den er stoppet

nettverk:
web:
seksjon:
utvendig: ekte

Nå lagre og avslutt nano med Ctrl + O deretter Ctrl + X.

Før du kjører OliveTin for første gang, må du opprette en konfigurasjonsfil. Det er her du vil definere kommandoene som brukerne skal kjøre. For nå, skriv inn:

ta påkonfig.yaml

Bruk OliveTin for å gi brukerne begrenset serverkontroll

I terminalen din skriver du inn:

docker-komponere opp -d 

Denne kommandoen vil få opp Docker Compose i frakoblet modus. Docker Compose vil laste ned bildene for OliveTin og sette opp beholdere. Denne prosessen kan ta litt tid. Når du kommer tilbake til ledeteksten, sjekk at alt fungerer som det skal med:

docker-compose ps

Åpne en nettleser og naviger til din-pi-lokale-ip-adresse: 1337. Du bør se en grå nettside med OliveTin-bunnteksten. Du er nå klar til å begynne å definere kommandoer for brukerne dine.

Tilbake i terminalen, bruk nano for å redigere konfigurasjonsfilen du opprettet tidligere:

nanokonfig.yaml

Syntaksen er enkel, og du kan definere navnet på tjenestene og handlingene som skal utføres på samme måte som i følgende eksempel:

handlinger:
- tittel: "Start server på nytt"
skall: restart

- tittel: «Ping Netflix»
skall: pingNetflix.com

- tittel: Start Apache på nytt
ikon: "🏁"
shell: sudo service apache2 restart

title felt er tittelen som brukere kan se, mens kommandoen følger skall: er kommandoen som faktisk vil bli utført på din Raspberry Pi.

OliveTin støtter unicode-ikoner, og du kan spesifisere HTML-koden til disse i ikon seksjon. Alternativt kan du angi hele URL-en til et bilde du vil bruke. For eksempel:

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

Mens konfigurasjonen vår gir eksempler som vil starte Raspberry Pi på nytt, starte Apache på nytt og pinge Netflix, er det egentlig ingen grense for hvilke kommandoer du kan spesifisere. Du kan gi brukerne en knapp som vil kopiere filmer fra en katalog til en annen, raskt tørke og overskriv visse kataloger, eller bygg en kill-switch som vil kryptere lagringsenhetene dine med en tilfeldig nøkkel.

Når du er fornøyd med konfigurasjonen, lagrer du filen og avslutter nano ved å trykke Ctrl + O deretter Ctrl + X.

Enhver stdout produsert som et resultat av knappetrykk logges. Du kan se loggene ved å trykke på Tømmerstokker knappen øverst til høyre. Med OliveTin kan du også tillate brukere å gi kommandoer, kjent som argumenter, gjennom nettgrensesnittet – enten med en tekstboks eller med rullegardinvalg.

På grunn av faren forbundet med å la uerfarne brukere utstede privilegerte vilkårlige kommandoer direkte til Raspberry Pi-serveren din, kan du begrense hvilken type argument OliveTin godtar.

For rask referanse er typene:

Type

Aksepterte verdier

veldig_farlig_rå_streng

Som navnet antyder, vil brukeren kunne legge inn hvilken som helst tekst eller kommando og få den utført

int

Et hvilket som helst positivt tall

ascii

Eventuelle tegn eller tall, men ingen mellomrom eller tegnsetting

ascii_identifier

For DNS og lignende

ascii_setning

a-z, 0-9, med mellomrom, . og ,

url

En nettadresse

En tekstboksdefinisjon i din config.yaml filen er formatert som nedenfor:

handlinger:
- tittel: Ekko noe å kommandolinje
ikon: "⛔"
skall: ekko {{ beskjed }}
argumenter:
- navn: melding
type: veldig_farlig_rå_streng

Tekstboksen vil vises når noen trykker på den aktuelle knappen, og vil tillate enhver bruker på ditt lokale nettverk å kjøre vilkårlig kode gjennom nettleseren. Det er ikke helt en god idé.

OliveTin gjør det enkelt for brukere å utføre grunnleggende oppgaver på din Raspberry Pi-server

Raspberry Pi er den perfekte hjemmeserverplattformen for hostingtjenester som familien din kan bruke, og OliveTin gjør det enkelt for dem å utføre enkelt vedlikehold uten å forstyrre deg.

Det er tusenvis av selvhostede prosjekter du kan kjøre på Raspberry Pi som vil være til fordel for husholdningen din. Gjør noen undersøkelser og finn ut hvilke tjenester du betaler for som du kan være vert for selv i stedet!