Dê a outros usuários controle limitado de seu servidor web Raspberry Pi para executar tarefas de rotina.

Se você estiver executando um Raspberry Pi como um servidor doméstico, é provável que amigos e familiares acessem seus serviços também. Ocasionalmente, eles precisam executar algumas tarefas de rotina que exigem controle limitado do servidor.

OliveTin é um aplicativo auto-hospedado que eles podem acessar por meio de um navegador da Web para executar comandos e scripts predeterminados definidos por você.

Por que usar o OliveTin no Raspberry Pi?

A série Raspberry Pi de computadores de placa única é excelente para servidores domésticos leves e é relativamente fácil de configurar um servidor web Raspberry Pi.

Além de hospedar sites e blogs, seu Raspberry Pi pode hospedar galerias de fotos, livros de receitas e suítes de escritório online. Você pode Transmita filmes e programas para sua TV com Jellyfin, ou auto-hospedar uma biblioteca de audiolivros com Audiobookshelf.

Você também não está limitado ao número de usuários que pode ter; portanto, a menos que more sozinho, provavelmente compartilhe o acesso aos serviços Raspberry Pi com outros membros de sua família.

instagram viewer

Servidores, como qualquer outro tipo de computador, precisam de manutenção ocasional. Seus usuários podem precisar iniciar ou parar serviços específicos, conectar a uma VPN, fazer backup de arquivos no Raspberry Pi, ou verifique se há problemas de rede.

Se sua família e colegas de casa estão familiarizado com a linha de comando do Linux, e você confia neles para não interromper seu sistema acidental ou deliberadamente, considere fornecer a eles suas próprias credenciais SSH junto com associação ao grupo sudo, para que eles possam realizar essas tarefas sem incomodá-lo.

É uma proposta tentadora, mas perigosa, e se algo der errado, é você quem terá que consertar. Com o OliveTin, você pode definir comandos de rotina que outros usuários do servidor podem precisar executar regularmente. Eles podem então abrir um navegador da web e apertar um botão que executará o comando em seu Pi - sem precisar tocar na linha de comando.

Como instalar o OliveTin no Raspberry Pi

A maneira mais fácil de instalar o OliveTin é usando o Docker Compose. Se você ainda não tem o Docker e o Docker Compose instalados em seu Raspberry Pi, confira nosso guia essencial sobre como instalar o Docker e o Docker Compose no Linux.

Conecte-se ao seu servidor Raspberry Pi usando Shell seguro (SSH):

ssh pi@seu-local-pi-ip-address

Crie um novo diretório para o OliveTin e use o cd comando para mover para ele:

mkdir olivetin && cd azeitona

Use o editor de texto nano para criar um novo arquivo Docker Compose:

nanodocker-compose.yml

Copie e cole o seguinte:

versão: "3.5"
Serviços:
olivetina:
container_name: olivetin
imagem: jamesread/olivetin
usuário: raiz
volumes:
- ~/olivetin:/configuração
- /var/run/docker.sock:/var/run/docker.sock
portas:
- "1337:1337"
reiniciar: a menos que seja parado

redes:
rede:
seção:
externo: verdadeiro

Agora salve e saia do nano com Ctrl + O então Ctrl + X.

Antes de executar o OliveTin pela primeira vez, você precisa criar um arquivo de configuração. É aqui que você definirá os comandos a serem executados pelos usuários. Por enquanto, digite:

tocarconfiguração.yaml

Use o OliveTin para dar aos seus usuários controle limitado do servidor

No seu terminal, digite:

docker-compose up -d 

Este comando abrirá o Docker Compose no modo desanexado. O Docker Compose fará o download das imagens para o OliveTin e configurará os contêineres. Este processo pode levar algum tempo. Quando você retornar ao prompt de comando, verifique se tudo está funcionando corretamente com:

docker-compose ps

Abra um navegador e navegue até seu-pi-endereço-ip-local: 1337. Você deve ver uma página da web cinza com o rodapé OliveTin. Agora você está pronto para começar a definir comandos para seus usuários.

De volta ao terminal, use o nano para editar o arquivo de configuração que você criou anteriormente:

nanoconfiguração.yaml

A sintaxe é simples e você pode definir o nome dos serviços e as ações a serem executadas de maneira semelhante ao exemplo a seguir:

ações:
- título: "Reiniciar servidor"
shell: reiniciar

- título: "Ping Netflix"
concha: pingnetflix.com

- título: Reiniciar o Apache
ícone: "🏁"
shell: reinício do apache2 do serviço sudo

o title campo é o título que os usuários podem ver, enquanto o comando seguinte concha: é o comando que realmente será executado no seu Raspberry Pi.

OliveTin oferece suporte a ícones unicode e você pode especificar o código HTML deles no ícone seção. Como alternativa, você pode definir o URL completo de uma imagem que deseja usar. Por exemplo:

ícone: '<imgorigem = " https://www.makeuseof.com/public/build/images/muo-logo-full-colored-light.svg"largura = "81px"/>'

Embora nossa configuração forneça exemplos que reiniciarão o Raspberry Pi, reiniciarão o Apache e executarão ping no Netflix, não há realmente nenhum limite para os comandos que você pode especificar. Você pode dar aos usuários um botão que irá copiar filmes de um diretório para outro, limpar rapidamente e sobrescrever determinados diretórios ou criar um interruptor de interrupção que criptografará seus dispositivos de armazenamento com um chave aleatória.

Quando estiver satisfeito com sua configuração, salve o arquivo e saia do nano pressionando Ctrl + O então Ctrl + X.

Qualquer stdout produzido como resultado do pressionamento de botões é registrado. Você pode ver os logs pressionando o botão Histórico botão no canto superior direito. Com o OliveTin, você também pode permitir que os usuários forneçam comandos, conhecidos como argumentos, por meio da interface da Web - seja com uma caixa de texto ou com opções suspensas.

Devido ao perigo associado a permitir que usuários inexperientes emitam comandos arbitrários privilegiados diretamente para seu servidor Raspberry Pi, você pode restringir o tipo de argumento que o OliveTin aceitará.

Para referência rápida, os tipos são:

Tipo

Valores aceitos

very_dangerous_raw_string

Como o nome sugere, o usuário poderá inserir qualquer texto ou comando e executá-lo

int

Qualquer número inteiro positivo

ascii

Qualquer caractere ou número, mas sem espaços ou pontuação

identificador_ascii

Para DNS e similares

frase_ascii

a-z, 0-9, com espaços, . e ,

url

Um endereço da web

Uma definição de caixa de texto em seu config.yaml arquivo está formatado conforme abaixo:

ações:
- título: Eco algo para linha de comando
ícone: "⛔"
concha: eco {{ mensagem }}
argumentos:
- nome: mensagem
tipo: very_dangerous_raw_string

A caixa de texto aparecerá quando alguém pressionar o botão apropriado e permitirá que qualquer usuário em sua rede local execute código arbitrário por meio do navegador. Não é uma boa ideia.

OliveTin torna mais fácil para os usuários executar tarefas básicas em seu servidor Raspberry Pi

O Raspberry Pi é a plataforma de servidor doméstico perfeita para serviços de hospedagem para sua família, e o OliveTin facilita a manutenção simples sem incomodá-lo.

Existem milhares de projetos auto-hospedados que você pode executar no Raspberry Pi, que beneficiarão sua família. Faça alguma pesquisa e descubra quais serviços você está pagando pelos quais você pode se hospedar!