Oferiți altor utilizatori control limitat asupra serverului dvs. web Raspberry Pi pentru a rula sarcini de rutină.

Dacă rulați un Raspberry Pi ca server de acasă, este posibil ca și prietenii și familia să acceseze serviciile acestuia. Ocazional, vor trebui să execute unele sarcini de rutină care necesită un control limitat al serverului.

OliveTin este o aplicație auto-găzduită pe care o pot accesa printr-un browser web pentru a executa comenzi și scripturi predeterminate definite de dvs.

De ce să folosiți OliveTin pe Raspberry Pi?

Seria Raspberry Pi de computere cu o singură placă oferă servere de acasă excelente și ușoare și este relativ ușor de configurați un server web Raspberry Pi.

Pe lângă găzduirea de site-uri web și bloguri, dvs Raspberry Pi poate găzdui galerii foto, cărți de bucate și suite office online. Puteți transmiteți în flux filme și emisiuni la televizor cu Jellyfin, sau găzduiește singur o bibliotecă de cărți audio cu Audiobookshelf.

Nici nu sunteți limitat la numărul de utilizatori pe care îi puteți avea, așa că, dacă nu locuiți singur, probabil că partajați accesul la serviciile Raspberry Pi cu alți membri ai gospodăriei dvs.

instagram viewer

Serverele, ca orice alt tip de computer, au nevoie de întreținere ocazională. Este posibil ca utilizatorii dvs. să aibă nevoie porniți sau opriți anumite servicii, conectați-vă la un VPN, faceți copii de rezervă ale fișierelor pe Raspberry Pi, sau verificați problemele de rețea.

Dacă familia și colegii dvs. de casă sunt familiarizat cu linia de comandă Linuxși aveți încredere în ei să nu vă distrugă accidental sau deliberat sistemul, vă puteți gândi să le oferiți propriile acreditări SSH împreună cu apartenența la grupul sudo, astfel încât să poată îndeplini aceste sarcini fără să vă deranjeze.

Este o propunere tentantă, dar periculoasă, iar dacă ceva nu merge bine, tu ești cel care va trebui să o repari. Cu OliveTin, puteți defini comenzi de rutină pe care alți utilizatori de server ar putea avea nevoie să le execute în mod regulat. Apoi pot deschide un browser web și pot apăsa un buton care va rula comanda pe Pi-ul tău, fără a fi nevoie să atingă niciodată linia de comandă.

Cum se instalează OliveTin pe Raspberry Pi

Cel mai simplu mod de a instala OliveTin este utilizarea Docker Compose. Dacă nu aveți deja instalate Docker și Docker Compose pe Raspberry Pi, consultați ghidul nostru esențial pe cum se instalează Docker și Docker Compose pe Linux.

Conectați-vă la serverul dvs. Raspberry Pi folosind Shell securizat (SSH):

ssh pi@ta-local-pi-ip-adresă

Creați un director nou pentru OliveTin și utilizați CD comanda pentru a trece în el:

mkdir olivetin && CD olivetină

Utilizați editorul de text nano pentru a crea un nou fișier Docker Compose:

nanodocker-compune.yml

Copiați și lipiți următoarele:

versiune: "3.5"
Servicii:
olivetin:
container_name: olivetin
imagine: jamesread/olivetin
utilizator: root
volume:
- ~/olivetin:/config
- /var/run/docker.sock:/var/alerga/docker.sock
porturi:
- "1337:1337"
reporniți: dacă nu este oprit

retele:
web:
secțiune:
extern: Adevărat

Acum salvați și ieșiți din nano cu Ctrl + O apoi Ctrl + X.

Înainte de a rula OliveTin pentru prima dată, trebuie să creați un fișier de configurare. Aici veți defini comenzile pe care utilizatorii le vor rula. Pentru moment, introduceți:

atingereconfig.yaml

Utilizați OliveTin pentru a oferi utilizatorilor dvs. control limitat pe server

În terminalul dvs., introduceți:

docker-compune până -d 

Această comandă va afișa Docker Compose în modul detașat. Docker Compose va descărca imaginile pentru OliveTin și va configura containere. Acest proces poate dura ceva timp. Când reveniți la promptul de comandă, verificați că totul funcționează corect cu:

docker-compose ps

Deschideți un browser și navigați la adresa dvs.-pi-local-ip: 1337. Ar trebui să vedeți o pagină web gri cu subsolul OliveTin. Acum sunteți gata să începeți să definiți comenzi pentru utilizatorii dvs.

Înapoi în terminal, utilizați nano pentru a edita fișierul de configurare creat mai devreme:

nanoconfig.yaml

Sintaxa este simplă și puteți defini numele serviciilor și acțiunile care trebuie efectuate în mod similar cu următorul exemplu:

actiuni:
- titlu: „Reporniți serverul”
shell: repornire

- titlu: „Ping Netflix”
coajă: pingnetflix.com

- titlu: Restart Apache
pictograma: "🏁"
shell: sudo service apache2 restart

title câmpul este titlul pe care utilizatorii îl pot vedea, în timp ce comanda urmează coajă: este comanda care va fi de fapt efectuată pe Raspberry Pi.

OliveTin acceptă pictograme Unicode și puteți specifica codul HTML al acestora în pictograma secțiune. Alternativ, puteți seta adresa URL completă a unei imagini pe care doriți să o utilizați. De exemplu:

pictograma: '<imgsrc = " https://www.makeuseof.com/public/build/images/muo-logo-full-colored-light.svg"lăţime = „81px”/>'

În timp ce configurația noastră oferă exemple care vor reporni Raspberry Pi, vor reporni Apache și vor face ping pe Netflix, nu există într-adevăr nicio limită la ce comenzi puteți specifica. Puteți oferi utilizatorilor un buton care va copia filmele dintr-un director în altul, va șterge rapid și suprascrieți anumite directoare sau construiți un kill-switch care vă va cripta dispozitivele de stocare cu a cheie aleatorie.

Când sunteți mulțumit de configurația dvs., salvați fișierul și ieșiți din nano apăsând Ctrl + O apoi Ctrl + X.

Orice stdout produs ca urmare a apăsării butoanelor este înregistrată. Puteți vedea jurnalele apăsând butonul Bușteni butonul din dreapta sus. Cu OliveTin, puteți, de asemenea, permite utilizatorilor să ofere comenzi, cunoscute sub numele de argumente, prin interfața web - fie cu o casetă de text, fie cu opțiuni derulante.

Din cauza pericolului asociat cu permiterea utilizatorilor neexperimentați să emită comenzi arbitrare privilegiate direct pe serverul dvs. Raspberry Pi, puteți restricționa tipul de argument pe care îl acceptă OliveTin.

Pentru referință rapidă, tipurile sunt:

Tip

Valori acceptate

şir_brut_foarte_periculos

După cum sugerează și numele, utilizatorul va putea să introducă orice text sau comandă și să le execute

int

Orice număr pozitiv întreg

ascii

Orice caracter sau număr, dar fără spații sau semne de punctuație

ascii_identifier

Pentru DNS și similare

ascii_sentence

a-z, 0-9, cu spații, . și ,

url

O adresă web

O definiție de casetă de text în dvs config.yaml fișierul este formatat după cum urmează:

actiuni:
- titlu: Ecou ceva la linia de comandă
pictograma: "⛔"
coajă: ecou {{ mesaj }}
argumente:
- nume: mesaj
tip: very_dangerous_raw_string

Caseta de text va apărea când cineva va apăsa butonul corespunzător și va permite oricărui utilizator din rețeaua locală să execute cod arbitrar prin browser. Nu este deloc o idee bună.

OliveTin facilitează efectuarea sarcinilor de bază de către utilizatori pe serverul dvs. Raspberry Pi

Raspberry Pi este platforma home-server perfectă pentru servicii de găzduire pe care familia ta le poate folosi, iar OliveTin îi ajută să efectueze întreținere simplă fără a te deranja.

Există mii de proiecte auto-găzduite pe care le puteți rula pe Raspberry Pi, care vor beneficia gospodăria dvs. Cercetați puțin și aflați ce servicii plătiți pentru care ați putea să vă găzduiți!