Ofrezca a otros usuarios un control limitado de su servidor web Raspberry Pi para ejecutar tareas de rutina.
Si está ejecutando una Raspberry Pi como servidor doméstico, es probable que sus amigos y familiares también accedan a sus servicios. De vez en cuando, necesitarán ejecutar algunas tareas de rutina que requieren un control limitado del servidor.
OliveTin es una aplicación autohospedada a la que pueden acceder a través de un navegador web para ejecutar comandos predeterminados y scripts definidos por usted.
¿Por qué usar OliveTin en Raspberry Pi?
La serie Raspberry Pi de computadoras de placa única son excelentes servidores domésticos livianos y es relativamente fácil de usar. configurar un servidor web Raspberry Pi.
Además de alojar sitios web y blogs, su Raspberry Pi puede albergar galerías de fotos, libros de cocina y suites ofimáticas en línea. Puede transmite películas y programas a tu TV con Jellyfin, o hospedar una biblioteca de audiolibros con Audiobookshelf.
Tampoco está limitado a la cantidad de usuarios que puede tener, por lo que, a menos que viva solo, probablemente comparta el acceso a sus servicios de Raspberry Pi con otros miembros de su hogar.
Los servidores, como cualquier otro tipo de computadora, necesitan un mantenimiento ocasional. Es posible que sus usuarios necesiten iniciar o detener servicios particulares, conectarse a una VPN, copia de seguridad de archivos en Raspberry Pi, o comprobar si hay problemas de red.
Si su familia y compañeros de casa están familiarizado con la línea de comandos de Linux, y confía en que no dañarán su sistema de forma accidental o deliberada, puede considerar darles sus propias credenciales SSH junto con pertenencia al grupo sudo, para que puedan realizar estas tareas sin molestarte.
Es una propuesta tentadora pero peligrosa, y si algo sale mal, eres tú quien tendrá que arreglarlo. Con OliveTin, puede definir comandos de rutina que otros usuarios del servidor pueden necesitar ejecutar con regularidad. Luego pueden abrir un navegador web y presionar un botón que ejecutará el comando en su Pi, sin necesidad de tocar la línea de comando.
Cómo instalar OliveTin en Raspberry Pi
La forma más fácil de instalar OliveTin es usando Docker Compose. Si aún no tiene Docker y Docker Compose instalados en su Raspberry Pi, consulte nuestra guía esencial sobre cómo instalar Docker y Docker Compose en Linux.
Conéctese a su servidor Raspberry Pi usando Shell seguro (SSH):
pi ssh@su-local-pi-ip-dirección
Cree un nuevo directorio para OliveTin y use el cd Comando para entrar en él:
mkdir olivetin && cd olivo
Use el editor de texto nano para crear un nuevo archivo Docker Compose:
nanodocker-compose.yml
Copia y pega lo siguiente:
versión: "3.5"
servicios:
aceituna estaño:
nombre_contenedor: olivetin
imagen: jamesread/olivetin
usuario: root
volúmenes:
- ~/olivetin:/configuración
- /var/ejecutar/docker.calcetín:/var/ejecutar/docker.calcetín
puertos:
- "1337:1337"
reiniciar: a menos que se detenga
redes:
web:
sección:
externo: verdadero
Ahora guarde y salga de nano con Control + O entonces Control + X.
Antes de ejecutar OliveTin por primera vez, debe crear un archivo de configuración. Aquí es donde definirá los comandos que ejecutarán los usuarios. Por ahora, ingresa:
tocarconfiguración.yaml
Use OliveTin para dar a sus usuarios un control limitado del servidor
En tu terminal, ingresa:
ventana acoplable-componer hasta -d
Este comando abrirá Docker Compose en modo separado. Docker Compose descargará las imágenes para OliveTin y configurará los contenedores. Este proceso puede llevar algún tiempo. Cuando regrese al símbolo del sistema, verifique que todo funcione correctamente con:
docker-componer ps
Abra un navegador y vaya a su-dirección-ip-local-pi: 1337. Debería ver una página web gris con el pie de página de OliveTin. Ahora está listo para comenzar a definir comandos para sus usuarios.
De vuelta en la terminal, use nano para editar el archivo de configuración que creó anteriormente:
nanoconfiguración.yaml
La sintaxis es simple y puede definir el nombre de los servicios y las acciones a realizar de manera similar al siguiente ejemplo:
comportamiento:
- título: "Reiniciar servidor"
shell: reiniciar- título: "Hacer ping a Netflix"
caparazón: silbidonetflix.com
- título: Reiniciar Apache
icono: "🏁"
shell: reinicio del servicio sudo apache2
La tÍtulo campo es el título que los usuarios pueden ver, mientras que el siguiente comando caparazón: es el comando que realmente se llevará a cabo en su Raspberry Pi.
OliveTin admite íconos Unicode, y puede especificar el código HTML de estos en el icono sección. Alternativamente, puede configurar la URL completa de una imagen que desea usar. Por ejemplo:
icono: '<imagenorigen = " https://www.makeuseof.com/public/build/images/muo-logo-full-colored-light.svg"ancho = "81 píxeles"/>'
Si bien nuestra configuración brinda ejemplos que reiniciarán Raspberry Pi, reiniciarán Apache y harán ping a Netflix, realmente no hay límite para los comandos que puede especificar. Puede dar a los usuarios un botón que copiará películas de un directorio a otro, las borrará rápidamente y sobrescribir ciertos directorios, o crear un interruptor automático que cifrará sus dispositivos de almacenamiento con un clave aleatoria.
Cuando esté satisfecho con su configuración, guarde el archivo y salga de nano presionando Control + O entonces Ctrl + X.
Se registra cualquier stdout producido como resultado de presionar un botón. Puede ver los registros presionando el botón Registros botón en la parte superior derecha. Con OliveTin, también puede permitir que los usuarios den comandos, conocidos como argumentos, a través de la interfaz web, ya sea con un cuadro de texto o con opciones desplegables.
Debido al peligro asociado con permitir que usuarios inexpertos emitan comandos arbitrarios privilegiados directamente a su servidor Raspberry Pi, puede restringir el tipo de argumento que aceptará OliveTin.
Para referencia rápida, los tipos son:
Tipo |
Valores aceptados |
---|---|
cadena_cruda_muy_peligrosa |
Como sugiere el nombre, el usuario podrá ingresar cualquier texto o comando y ejecutarlo. |
En t |
Cualquier número entero positivo |
ascii |
Cualquier carácter o número, pero sin espacios ni puntuación |
identificador_ascii |
Para DNS y similares |
frase_ascii |
a-z, 0-9, con espacios, |
URL |
una dirección web |
Una definición de cuadro de texto en su config.yaml El archivo tiene el formato siguiente:
comportamiento:
- título: Eco algo a la línea de comando
icono: "⛔"
caparazón: eco {{ mensaje }}
argumentos:
- nombre: mensaje
tipo: muy_peligroso_crudo_cadena
El cuadro de texto aparecerá cuando alguien presione el botón apropiado y permitirá que cualquier usuario en su red local ejecute código arbitrario a través del navegador. No es del todo una buena idea.
OliveTin facilita a los usuarios la realización de tareas básicas en su servidor Raspberry Pi
El Raspberry Pi es la plataforma de servidor doméstico perfecta para servicios de alojamiento para uso de su familia, y OliveTin les facilita llevar a cabo un mantenimiento simple sin molestarlo.
Hay miles de proyectos autohospedados que puede ejecutar en Raspberry Pi que beneficiarán a su hogar. ¡Investigue un poco y descubra qué servicios está pagando por los cuales podría hospedarse usted mismo!