Offri ad altri utenti un controllo limitato del tuo server Web Raspberry Pi per eseguire attività di routine.
Se stai utilizzando un Raspberry Pi come server domestico, è probabile che anche amici e parenti accedano ai suoi servizi. Occasionalmente, dovranno eseguire alcune attività di routine che richiedono un controllo limitato del server.
OliveTin è un'app self-hosted a cui possono accedere tramite un browser Web per eseguire comandi e script predeterminati definiti dall'utente.
Perché usare OliveTin su Raspberry Pi?
La serie Raspberry Pi di computer a scheda singola è un eccellente server domestico leggero ed è relativamente facile configurare un server Web Raspberry Pi.
Oltre a ospitare siti Web e blog, il tuo Raspberry Pi può ospitare gallerie fotografiche, libri di cucina e suite per ufficio online. Puoi riproduci in streaming film e spettacoli sulla tua TV con Jellyfin, O ospita autonomamente una libreria di audiolibri con Audiobookshelf.
Non sei limitato al numero di utenti che puoi avere, quindi, a meno che tu non viva da solo, probabilmente condividi l'accesso ai tuoi servizi Raspberry Pi con altri membri della tua famiglia.
I server, come qualsiasi altro tipo di computer, necessitano di manutenzione occasionale. I tuoi utenti potrebbero averne bisogno avviare o arrestare particolari servizi, connettersi a una VPN, eseguire il backup dei file su Raspberry Pi, O verificare la presenza di problemi di rete.
Se la tua famiglia e i coinquilini lo sono familiarità con la riga di comando di Linuxe ti fidi che non blocchino accidentalmente o deliberatamente il tuo sistema, potresti prendere in considerazione l'idea di fornire loro le proprie credenziali SSH insieme a appartenenza al gruppo sudo, in modo che possano svolgere questi compiti senza disturbarti.
È una proposta allettante ma pericolosa, e se qualcosa va storto, sei tu che dovrai aggiustarlo. Con OliveTin, puoi definire comandi di routine che altri utenti del server potrebbero aver bisogno di eseguire regolarmente. Possono quindi aprire un browser Web e premere un pulsante che eseguirà il comando sul tuo Pi, senza mai dover toccare la riga di comando.
Come installare OliveTin su Raspberry Pi
Il modo più semplice per installare OliveTin è utilizzare Docker Compose. Se non hai già installato Docker e Docker Compose sul tuo Raspberry Pi, consulta la nostra guida essenziale su come installare Docker e Docker Compose su Linux.
Connettiti al tuo server Raspberry Pi usando Shell sicura (SSH):
ssh pi@tuo-local-pi-indirizzo-ip
Crea una nuova directory per OliveTin e usa il file CD comando per entrare in esso:
mkdir olivetin && CD olivetin
Utilizza l'editor di testo nano per creare un nuovo file Docker Compose:
nanodocker-componi.yml
Copia e incolla quanto segue:
versione: "3.5"
Servizi:
olivetina:
nome_contenitore: olivetin
immagine: jamesread/olivetin
utente: root
volumi:
- ~/olivetin:/config
- /var/esegui/docker.sock:/var/run/docker.sock
porti:
- "1337:1337"
riavvio: a meno che non venga arrestato
reti:
ragnatela:
sezione:
esterno: VERO
Ora salva ed esci da nano con Ctrl+O Poi Ctrl+X.
Prima di eseguire OliveTin per la prima volta, è necessario creare un file di configurazione. Qui è dove definirai i comandi che gli utenti devono eseguire. Per ora, inserisci:
toccoconfig.yaml
Usa OliveTin per dare ai tuoi utenti un controllo server limitato
Nel tuo terminale, inserisci:
docker-componi -d
Questo comando farà apparire Docker Compose in modalità separata. Docker Compose scaricherà le immagini per OliveTin e imposterà i contenitori. Questo processo potrebbe richiedere del tempo. Quando torni al prompt dei comandi, controlla che tutto funzioni correttamente con:
finestra mobile-componi ps
Apri un browser e vai a indirizzo-ip-tuo-pi-locale: 1337. Dovresti vedere una pagina web grigia con il piè di pagina OliveTin. Ora sei pronto per iniziare a definire i comandi per i tuoi utenti.
Di nuovo nel terminale, usa nano per modificare il file di configurazione che hai creato in precedenza:
nanoconfig.yaml
La sintassi è semplice e puoi definire il nome dei servizi e le azioni da eseguire in modo simile al seguente esempio:
Azioni:
- titolo: "Riavvia il server"
shell: riavviare- titolo: "Ping Netflix"
conchiglia: pingNetflix.com
- titolo: Riavvia Apache
icona: "🏁"
shell: sudo service apache2 restart
Il title field è il titolo che gli utenti possono vedere, mentre il comando following conchiglia: è il comando che verrà effettivamente eseguito sul tuo Raspberry Pi.
OliveTin supporta le icone unicode e puoi specificare il codice HTML di queste nel file icona sezione. In alternativa, puoi impostare l'URL completo di un'immagine che desideri utilizzare. Ad esempio:
icona: '<immsrc = " https://www.makeuseof.com/public/build/images/muo-logo-full-colored-light.svg"larghezza = "81px"/>'
Mentre la nostra configurazione fornisce esempi che riavvieranno Raspberry Pi, riavvieranno Apache e ping Netflix, non c'è davvero alcun limite ai comandi che puoi specificare. Puoi dare agli utenti un pulsante che copierà i film da una directory all'altra, cancellerà rapidamente e sovrascrivere determinate directory o creare un kill switch che crittograferà i dispositivi di archiviazione con a chiave casuale.
Quando sei soddisfatto della tua configurazione, salva il file ed esci da nano premendo Ctrl+O Poi Ctrl+X.
Qualsiasi stdout prodotto come risultato della pressione dei pulsanti viene registrato. È possibile visualizzare i registri premendo il Registri pulsante in alto a destra. Con OliveTin, puoi anche consentire agli utenti di dare comandi, noti come argomenti, attraverso l'interfaccia web, sia con una casella di testo, sia con scelte a tendina.
A causa del pericolo associato al consentire a utenti inesperti di inviare comandi arbitrari privilegiati direttamente al tuo server Raspberry Pi, puoi limitare il tipo di argomento che OliveTin accetterà.
Per una rapida consultazione, i tipi sono:
Tipo |
Valori accettati |
---|---|
very_dangerous_raw_string |
Come suggerisce il nome, l'utente potrà inserire qualsiasi testo o comando e farlo eseguire |
int |
Qualsiasi numero intero positivo |
asci |
Qualsiasi carattere o numero, ma senza spazi o punteggiatura |
identificatore_ascii |
Per DNS e simili |
ascii_frase |
a-z, 0-9, con spazi, |
URL |
Un indirizzo web |
Una definizione di casella di testo nel tuo config.yaml file è formattato come di seguito:
Azioni:
- titolo: Eco qualcosa da riga di comando
icona: "⛔"
conchiglia: eco {{ Messaggio }}
argomenti:
- nome: messaggio
tipo: very_dangerous_raw_string
La casella di testo apparirà quando qualcuno preme il pulsante appropriato e consentirà a qualsiasi utente sulla tua rete locale di eseguire codice arbitrario attraverso il browser. Non è del tutto una buona idea.
OliveTin rende facile per gli utenti eseguire attività di base sul tuo server Raspberry Pi
Il Raspberry Pi è la piattaforma home-server perfetta per i servizi di hosting che la tua famiglia può utilizzare e OliveTin rende facile per loro eseguire una semplice manutenzione senza disturbarti.
Ci sono migliaia di progetti self-hosted che puoi eseguire su Raspberry Pi che andranno a vantaggio della tua famiglia. Fai qualche ricerca e scopri quali servizi stai pagando per i quali potresti invece ospitare te stesso!