Geef andere gebruikers beperkte controle over uw Raspberry Pi-webserver om routinetaken uit te voeren.
Als u een Raspberry Pi als thuisserver gebruikt, hebben vrienden en familie waarschijnlijk ook toegang tot de services. Af en toe moeten ze een aantal routinetaken uitvoeren waarvoor beperkte controle over de server nodig is.
OliveTin is een door uzelf gehoste app waartoe ze toegang hebben via een webbrowser om vooraf bepaalde opdrachten en scripts uit te voeren die door u zijn gedefinieerd.
Waarom OliveTin op Raspberry Pi gebruiken?
De Raspberry Pi-serie single-board computers zorgen voor uitstekende lichtgewicht homeservers, en dat is relatief eenvoudig een Raspberry Pi-webserver opzetten.
Naast het hosten van websites en blogs, uw Raspberry Pi kan fotogalerijen hosten, kookboeken en online kantoorsuites. Jij kan stream films en shows naar je tv met Jellyfin, of host zelf een audioboekbibliotheek met Audiobookshelf.
U bent ook niet beperkt tot het aantal gebruikers dat u kunt hebben, dus tenzij u alleen woont, deelt u waarschijnlijk de toegang tot uw Raspberry Pi-services met andere leden van uw huishouden.
Servers hebben, net als elk ander type computer, af en toe onderhoud nodig. Uw gebruikers kunnen dit nodig hebben bepaalde services starten of stoppen, verbinding maken met een VPN, back-up van bestanden op Raspberry Pi, of controleer op netwerkproblemen.
Als je familie en huisgenoten zijn bekend met de Linux-opdrachtregel, en u vertrouwt erop dat ze uw systeem niet per ongeluk of opzettelijk kapot maken, kunt u overwegen om ze hun eigen SSH-referenties te geven samen met sudo-groepslidmaatschap, zodat ze deze taken kunnen uitvoeren zonder u lastig te vallen.
Het is een verleidelijk maar gevaarlijk voorstel, en als er iets misgaat, ben jij het die het moet oplossen. Met OliveTin kunt u routineopdrachten definiëren die andere servergebruikers mogelijk regelmatig moeten uitvoeren. Ze kunnen dan een webbrowser openen en op een knop drukken waarmee de opdracht op je Pi wordt uitgevoerd, zonder ooit de opdrachtregel te hoeven aanraken.
Hoe OliveTin op Raspberry Pi te installeren
De eenvoudigste manier om OliveTin te installeren is met behulp van Docker Compose. Als je Docker en Docker Compose nog niet op je Raspberry Pi hebt geïnstalleerd, bekijk dan onze essentiële gids op hoe Docker en Docker Compose op Linux te installeren.
Maak verbinding met uw Raspberry Pi-server met behulp van Beveiligde Shell (SSH):
ssh-pi@jouw-lokaal-pi-ip-adres
Maak een nieuwe map voor OliveTin en gebruik de CD opdracht om erin te gaan:
mkdir olijftin && CD olijftin
Gebruik de nano-teksteditor om een nieuw Docker Compose-bestand te maken:
nanodocker-componeren.yml
Kopieer en plak het volgende erin:
versie: "3.5"
Diensten:
olijftin:
container_name: olijfblik
afbeelding: jamesread/olivetin
gebruiker: wortel
volumes:
- ~/olivetin:/configuratie
- /var/run/docker.sok:/var/run/docker.sock
poorten:
- "1337:1337"
herstarten: tenzij-gestopt
netwerken:
web:
sectie:
extern: WAAR
Sla nu op en sluit nano af met Ctrl+O Dan Ctrl+X.
Voordat u OliveTin voor de eerste keer uitvoert, moet u een configuratiebestand maken. Hier definieert u de opdrachten die gebruikers moeten uitvoeren. Voer voor nu in:
aanrakenconfiguratie.yaml
Gebruik OliveTin om uw gebruikers beperkte servercontrole te geven
Voer in uw terminal in:
docker-samenstellen up -d
Met deze opdracht wordt Docker Compose in vrijstaande modus weergegeven. Docker Compose downloadt de afbeeldingen voor OliveTin en stelt containers in. Dit proces kan enige tijd duren. Wanneer u terugkeert naar de opdrachtprompt, controleert u of alles correct werkt met:
docker-samenstellen ps
Open een browser en navigeer naar uw-pi-lokaal-ip-adres: 1337. U zou een grijze webpagina moeten zien met de OliveTin-voettekst. U bent nu klaar om opdrachten voor uw gebruikers te definiëren.
Terug in de terminal gebruikt u nano om het configuratiebestand dat u eerder hebt gemaakt te bewerken:
nanoconfiguratie.yaml
De syntaxis is eenvoudig en u kunt de naam van de services en de uit te voeren acties op dezelfde manier definiëren als in het volgende voorbeeld:
acties:
- titel: "Herstart de server"
shell: opnieuw opstarten- titel: "PingNetflix"
schelp: pingnetflix.com
- titel: Herstart Apache
icoon: "🏁"
shell: sudo-service apache2 opnieuw opstarten
de titel veld is de titel die gebruikers kunnen zien, terwijl de volgende opdracht schelp: is het commando dat daadwerkelijk zal worden uitgevoerd op je Raspberry Pi.
OliveTin ondersteunt Unicode-pictogrammen en u kunt de HTML-code hiervan specificeren in de icoon sectie. U kunt ook de volledige URL instellen van een afbeelding die u wilt gebruiken. Bijvoorbeeld:
icoon: '<imgsrc = " https://www.makeuseof.com/public/build/images/muo-logo-full-colored-light.svg"breedte = "81px"/>'
Hoewel onze configuratie voorbeelden geeft die de Raspberry Pi herstarten, Apache herstarten en Netflix pingen, is er echt geen limiet aan de opdrachten die u kunt specificeren. U kunt gebruikers een knop geven waarmee films van de ene map naar de andere worden gekopieerd, snel worden gewist en verwijderd overschrijf bepaalde mappen of bouw een kill-switch die je opslagapparaten versleutelt met een willekeurige sleutel.
Als je tevreden bent met je configuratie, sla je het bestand op en verlaat je nano door op te drukken Ctrl+O Dan Ctrl+X.
Elke stdout die wordt geproduceerd als gevolg van het indrukken van een knop, wordt geregistreerd. U kunt de logboeken bekijken door op de te drukken Logboeken knop rechtsboven. Met OliveTin kunt u gebruikers ook toestaan om via de webinterface opdrachten, ook wel argumenten genoemd, te geven, hetzij met een tekstvak, hetzij met vervolgkeuzelijsten.
Vanwege het gevaar dat onervaren gebruikers bevoorrechte willekeurige opdrachten rechtstreeks aan uw Raspberry Pi-server laten geven, kunt u het type argument beperken dat OliveTin accepteert.
Voor een snelle referentie zijn de typen:
Type |
Geaccepteerde waarden |
---|---|
zeer_gevaarlijke_ruwe_string |
Zoals de naam al doet vermoeden, kan de gebruiker elke tekst of opdracht invoeren en laten uitvoeren |
int |
Elk geheel positief getal |
ascii |
Alle tekens of cijfers, maar geen spaties of interpunctie |
ascii_identifier |
Voor DNS en dergelijke |
ascii_zin |
a-z, 0-9, met spaties, |
url |
Een webadres |
Een tekstvakdefinitie in uw config.yaml bestand is als volgt geformatteerd:
acties:
- titel: Echo iets op de opdrachtregel
icoon: "⛔"
schelp: echo {{ bericht }}
argumenten:
- naam: bericht
type: zeer_gevaarlijke_ruwe_string
Het tekstvak verschijnt wanneer iemand op de juiste knop drukt en stelt elke gebruiker op uw lokale netwerk in staat willekeurige code uit te voeren via de browser. Het is niet helemaal een goed idee.
OliveTin maakt het gebruikers gemakkelijk om basistaken uit te voeren op uw Raspberry Pi-server
De Raspberry Pi is het perfecte thuisserverplatform voor hostingdiensten die uw gezin kan gebruiken, en OliveTin maakt het voor hen gemakkelijk om eenvoudig onderhoud uit te voeren zonder u te storen.
Er zijn duizenden door uzelf gehoste projecten die u op Raspberry Pi kunt uitvoeren en die uw huishouden ten goede zullen komen. Doe wat onderzoek en ontdek voor welke diensten u betaalt waarvoor u in plaats daarvan zelf zou kunnen hosten!