Donnez aux autres utilisateurs un contrôle limité de votre serveur Web Raspberry Pi pour exécuter des tâches de routine.

Si vous utilisez un Raspberry Pi en tant que serveur domestique, il est probable que vos amis et votre famille accèdent également à ses services. Parfois, ils devront exécuter certaines tâches de routine nécessitant un contrôle limité du serveur.

OliveTin est une application auto-hébergée à laquelle ils peuvent accéder via un navigateur Web pour exécuter des commandes et des scripts prédéterminés que vous avez définis.

Pourquoi utiliser OliveTin sur Raspberry Pi?

La série d'ordinateurs monocarte Raspberry Pi constitue d'excellents serveurs domestiques légers, et il est relativement facile de configurer un serveur Web Raspberry Pi.

En plus d'héberger des sites Web et des blogs, votre Raspberry Pi peut héberger des galeries de photos, livres de cuisine et suites bureautiques en ligne. Tu peux diffuser des films et des émissions sur votre téléviseur avec Jellyfin, ou auto-héberger une bibliothèque de livres audio avec Audiobookshelf.

instagram viewer

Vous n'êtes pas non plus limité au nombre d'utilisateurs que vous pouvez avoir, donc à moins que vous ne viviez seul, vous partagez probablement l'accès à vos services Raspberry Pi avec d'autres membres de votre foyer.

Les serveurs, comme tout autre type d'ordinateur, nécessitent une maintenance occasionnelle. Vos utilisateurs peuvent avoir besoin de démarrer ou arrêter des services particuliers, se connecter à un VPN, sauvegarder des fichiers sur Raspberry Pi, ou vérifier les problèmes de réseau.

Si votre famille et vos colocataires sont familier avec la ligne de commande Linux, et vous leur faites confiance pour ne pas bloquer accidentellement ou délibérément votre système, vous pouvez envisager de leur donner leurs propres informations d'identification SSH avec appartenance au groupe sudo, afin qu'ils puissent effectuer ces tâches sans vous déranger.

C'est une proposition tentante mais dangereuse, et si quelque chose ne va pas, c'est vous qui allez devoir le réparer. Avec OliveTin, vous pouvez définir des commandes de routine que d'autres utilisateurs du serveur peuvent avoir besoin d'exécuter régulièrement. Ils peuvent ensuite ouvrir un navigateur Web et appuyer sur un bouton qui exécutera la commande sur votre Pi, sans jamais avoir besoin de toucher la ligne de commande.

Comment installer OliveTin sur Raspberry Pi

Le moyen le plus simple d'installer OliveTin consiste à utiliser Docker Compose. Si Docker et Docker Compose ne sont pas déjà installés sur votre Raspberry Pi, consultez notre guide essentiel sur comment installer Docker et Docker Compose sous Linux.

Connectez-vous à votre serveur Raspberry Pi en utilisant Coquille sécurisée (SSH) :

ssh pi@ton-adresse-ip-pi-locale

Créez un nouveau répertoire pour OliveTin et utilisez le CD commande pour y accéder :

mkdir olivetine && CD olivetine

Utilisez l'éditeur de texte nano pour créer un nouveau fichier Docker Compose :

nanodocker-composer.yml

Copiez et collez ce qui suit :

version: "3.5"
prestations de service:
olivetine :
nom_du_conteneur: olivetine
image: jamesread/olivetin
utilisateur: racine
tomes :
- ~/olivetin:/configuration
- /var/run/docker.sock :/var/run/docker.sock
ports :
- "1337:1337"
redémarrer: à moins d'être arrêté

réseaux :
la toile:
section:
externe: vrai

Maintenant, enregistrez et quittez nano avec Ctrl + O alors Ctrl + X.

Avant d'exécuter OliveTin pour la première fois, vous devez créer un fichier de configuration. C'est ici que vous définirez les commandes à exécuter par les utilisateurs. Pour l'instant, entrez :

toucheconfiguration.yaml

Utilisez OliveTin pour donner à vos utilisateurs un contrôle limité du serveur

Dans votre terminal, saisissez :

docker-composer jusqu'à -d 

Cette commande affichera Docker Compose en mode détaché. Docker Compose téléchargera les images pour OliveTin et configurera les conteneurs. Ce processus peut prendre un certain temps. Lorsque vous revenez à l'invite de commande, vérifiez que tout fonctionne correctement avec :

docker-composer ps

Ouvrez un navigateur et accédez à votre-adresse-ip-locale-pi: 1337. Vous devriez voir une page Web grise avec le pied de page OliveTin. Vous êtes maintenant prêt à commencer à définir des commandes pour vos utilisateurs.

De retour dans le terminal, utilisez nano pour modifier le fichier de configuration que vous avez créé précédemment :

nanoconfiguration.yaml

La syntaxe est simple et vous pouvez définir le nom des services et les actions à effectuer de la même manière que dans l'exemple suivant :

Actions:
- titre: "Redémarrer le serveur"
shell: redémarrer

- titre: "Ping Netflix"
coquille: pingnetflix.com

- titre: Redémarrer Apache
icône: "🏁"
shell: redémarrage du service sudo apache2

Le tTitre champ est le titre que les utilisateurs peuvent voir, tandis que la commande suivante coquille: est la commande qui sera effectivement exécutée sur votre Raspberry Pi.

OliveTin prend en charge les icônes Unicode, et vous pouvez spécifier le code HTML de celles-ci dans le icône section. Vous pouvez également définir l'URL complète d'une image que vous souhaitez utiliser. Par exemple:

icône: '<imagesrc = " https://www.makeuseof.com/public/build/images/muo-logo-full-colored-light.svg"largeur = "81px"/>'

Bien que notre configuration donne des exemples qui redémarreront le Raspberry Pi, redémarreront Apache et pingeront Netflix, il n'y a vraiment aucune limite aux commandes que vous pouvez spécifier. Vous pouvez donner aux utilisateurs un bouton qui copiera les films d'un répertoire à un autre, effacera rapidement et écraser certains répertoires ou créer un kill-switch qui chiffrera vos périphériques de stockage avec un clé aléatoire.

Lorsque vous êtes satisfait de votre configuration, enregistrez le fichier et quittez nano en appuyant sur Ctrl + O alors Ctrl + X.

Toute sortie standard produite à la suite d'une pression sur un bouton est enregistrée. Vous pouvez voir les journaux en appuyant sur le Journaux bouton en haut à droite. Avec OliveTin, vous pouvez également autoriser les utilisateurs à donner des commandes, appelées arguments, via l'interface Web, soit avec une zone de texte, soit avec des choix déroulants.

En raison du danger associé au fait de laisser des utilisateurs inexpérimentés émettre des commandes arbitraires privilégiées directement sur votre serveur Raspberry Pi, vous pouvez restreindre le type d'argument qu'OliveTin acceptera.

Pour une référence rapide, les types sont :

Taper

Valeurs acceptées

chaîne_brute_très_dangereuse

Comme son nom l'indique, l'utilisateur pourra saisir n'importe quel texte ou commande et le faire exécuter

entier

Tout nombre entier positif

ascii

N'importe quel caractère ou nombre, mais pas d'espaces ni de ponctuation

identifiant_ascii

Pour DNS et similaire

phrase_ascii

a-z, 0-9, avec espaces, . et ,

URL

Une adresse Internet

Une définition de zone de texte dans votre config.yaml le fichier est formaté comme ci-dessous :

Actions:
- titre: Écho quelque chose à la ligne de commande
icône: "⛔"
coquille: écho {{ message }}
arguments:
- nom: message
taper: chaîne_brute_très_dangereuse

La zone de texte apparaîtra lorsque quelqu'un appuie sur le bouton approprié et permettra à tout utilisateur de votre réseau local d'exécuter du code arbitraire via le navigateur. Ce n'est pas tout à fait une bonne idée.

OliveTin permet aux utilisateurs d'effectuer facilement des tâches de base sur votre serveur Raspberry Pi

Le Raspberry Pi est la plate-forme de serveur domestique idéale pour héberger des services destinés à votre famille, et OliveTin leur permet d'effectuer facilement une maintenance simple sans vous déranger.

Il existe des milliers de projets auto-hébergés que vous pouvez exécuter sur Raspberry Pi et qui profiteront à votre foyer. Faites des recherches et découvrez quels services vous payez pour lesquels vous pourriez vous héberger à la place !