Giv andre brugere begrænset kontrol over din Raspberry Pi-webserver til at køre rutineopgaver.
Hvis du kører en Raspberry Pi som hjemmeserver, er det sandsynligt, at venner og familie også får adgang til dens tjenester. Nogle gange skal de køre nogle rutineopgaver, som kræver begrænset kontrol over serveren.
OliveTin er en selv-hostet app, som de kan få adgang til via en webbrowser for at udføre forudbestemte kommandoer og scripts defineret af dig.
Hvorfor bruge OliveTin på Raspberry Pi?
Raspberry Pi-serien af singleboard-computere giver fremragende lette hjemmeservere, og det er relativt nemt at opsætte en Raspberry Pi-webserver.
Ud over at være vært for websteder og blogs, kan din Raspberry Pi kan være vært for fotogallerier, kogebøger og online kontorpakker. Du kan stream film og serier til dit tv med Jellyfin, eller selv vært vært for et lydbogsbibliotek med Audiobookshelf.
Du er heller ikke begrænset til antallet af brugere, du kan have, så medmindre du bor alene, deler du sandsynligvis adgangen til dine Raspberry Pi-tjenester med andre medlemmer af din husstand.
Servere, som enhver anden type computer, har brug for lejlighedsvis vedligeholdelse. Det kan dine brugere have brug for starte eller stoppe bestemte tjenester, oprette forbindelse til en VPN, sikkerhedskopiere filer på Raspberry Pi, eller kontrollere for netværksproblemer.
Hvis din familie og husfæller er bekendt med Linux-kommandolinjen, og du stoler på, at de ikke ved et uheld eller bevidst borker dit system, kan du overveje at give dem deres egne SSH-legitimationsoplysninger sammen med sudo gruppe medlemskab, så de kan udføre disse opgaver uden at genere dig.
Det er et fristende, men farligt forslag, og hvis noget går galt, er det dig, der skal ordne det. Med OliveTin kan du definere rutinekommandoer, som andre serverbrugere muligvis skal udføre regelmæssigt. De kan derefter åbne en webbrowser og trykke på en knap, som vil køre kommandoen på din Pi - uden nogensinde at skulle røre kommandolinjen.
Sådan installeres OliveTin på Raspberry Pi
Den nemmeste måde at installere OliveTin på er at bruge Docker Compose. Hvis du ikke allerede har Docker og Docker Compose installeret på din Raspberry Pi, så tjek vores vigtige guide på hvordan man installerer Docker og Docker Compose på Linux.
Opret forbindelse til din Raspberry Pi-server ved hjælp af Secure Shell (SSH):
ssh pi@din-lokal-pi-ip-adresse
Opret en ny mappe til OliveTin, og brug cd kommando for at flytte ind i det:
mkdir olivetin && cd oliventin
Brug nano-teksteditoren til at oprette en ny Docker Compose-fil:
nanodocker-komponer.yml
Kopiér og indsæt følgende:
version: "3.5"
tjenester:
oliventin:
containernavn: oliventin
billede: jamesread/olivenin
bruger: root
mængder:
- ~/olivetin:/config
- /var/run/docker.sock:/var/run/docker.sok
havne:
- "1337:1337"
genstart: medmindre-stoppet
netværk:
web:
afsnit:
ekstern: rigtigt
Gem nu og afslut nano med Ctrl + O derefter Ctrl + X.
Før du kører OliveTin for første gang, skal du oprette en konfigurationsfil. Det er her, du vil definere kommandoerne, som brugerne skal køre. Indtast nu:
røre vedconfig.yaml
Brug OliveTin til at give dine brugere begrænset serverkontrol
Indtast i din terminal:
docker-komponere op -d
Denne kommando åbner Docker Compose i frakoblet tilstand. Docker Compose vil downloade billederne til OliveTin og opsætte beholdere. Denne proces kan tage noget tid. Når du vender tilbage til kommandoprompten, skal du kontrollere, at alt kører korrekt med:
docker-compose ps
Åbn en browser, og naviger til din-pi-lokale-ip-adresse: 1337. Du bør se en grå webside med OliveTin-foden. Du er nu klar til at begynde at definere kommandoer for dine brugere.
Tilbage i terminalen, brug nano til at redigere den konfigurationsfil, du oprettede tidligere:
nanoconfig.yaml
Syntaks er enkel, og du kan definere navnet på tjenesterne og de handlinger, der skal udføres på samme måde som i følgende eksempel:
handlinger:
- titel: "Genstart server"
shell: genstart- titel: "Ping Netflix"
skal: pingNetflix.com
- titel: Genstart Apache
ikon: "🏁"
shell: sudo service apache2 genstart
Den title felt er den titel, som brugere kan se, mens kommandoen følger skal: er den kommando, der rent faktisk vil blive udført på din Raspberry Pi.
OliveTin understøtter unicode-ikoner, og du kan angive HTML-koden for disse i ikon afsnit. Alternativt kan du indstille den fulde URL for et billede, du vil bruge. For eksempel:
ikon: '<imgsrc = " https://www.makeuseof.com/public/build/images/muo-logo-full-colored-light.svg"bredde = "81px"/>'
Mens vores konfiguration giver eksempler, som vil genstarte Raspberry Pi, genstarte Apache og ping Netflix, er der virkelig ingen grænse for, hvilke kommandoer du kan angive. Du kan give brugerne en knap, som vil kopiere film fra en mappe til en anden, hurtigt slette og overskriv bestemte mapper, eller byg en kill-switch, som vil kryptere dine lagerenheder med en tilfældig nøgle.
Når du er tilfreds med din konfiguration, skal du gemme filen og afslutte nano ved at trykke på Ctrl + O derefter Ctrl + X.
Enhver stdout, der produceres som følge af knaptryk, logges. Du kan se logfilerne ved at trykke på Logs knappen øverst til højre. Med OliveTin kan du også tillade brugere at give kommandoer, kendt som argumenter, gennem webgrænsefladen - enten med en tekstboks eller med rullemenuvalg.
På grund af faren forbundet med at lade uerfarne brugere udstede privilegerede vilkårlige kommandoer direkte til din Raspberry Pi-server, kan du begrænse den type argument, OliveTin accepterer.
For hurtig reference er typerne:
Type |
Accepterede værdier |
---|---|
meget_farlig_rå_streng |
Som navnet antyder, vil brugeren være i stand til at indtaste enhver tekst eller kommando og få den udført |
int |
Ethvert positivt tal |
ascii |
Eventuelle tegn eller tal, men ingen mellemrum eller tegnsætning |
ascii_identifier |
Til DNS og lignende |
ascii_sætning |
a-z, 0-9, med mellemrum, |
url |
En webadresse |
En tekstboksdefinition i din config.yaml filen er formateret som nedenfor:
handlinger:
- titel: Ekko noget til kommandolinjen
ikon: "⛔"
skal: ekko {{ besked }}
argumenter:
- navn: besked
type: meget_farlig_rå_streng
Tekstboksen vises, når nogen trykker på den relevante knap, og giver enhver bruger på dit lokale netværk mulighed for at udføre vilkårlig kode gennem browseren. Det er ikke helt en god idé.
OliveTin gør det nemt for brugere at udføre grundlæggende opgaver på din Raspberry Pi-server
Raspberry Pi er den perfekte hjemmeserverplatform til hostingtjenester, som din familie kan bruge, og OliveTin gør det nemt for dem at udføre simpel vedligeholdelse uden at forstyrre dig.
Der er tusindvis af selv-hostede projekter, du kan køre på Raspberry Pi, hvilket vil gavne din husstand. Foretag nogle undersøgelser og find ud af, hvilke tjenester du betaler for, som du kunne være vært for dig selv i stedet for!