跳到内容

如何在 Rocky Linux 上安装和使用 OliveTin

介绍

您是否曾经厌倦了反复输入相同的 CLI 命令?您是否曾经希望您家里的其他人能够在没有您干预的情况下重新启动 Plex 服务器?您是否想只在 Web 面板中键入一个名称,点击一个按钮,然后观看定制的 Docker/LXD 容器像变魔术一样出现?

那么您可能想看看 OliveTin。OliveTin 实际上只是一个应用程序,它允许您从配置文件生成一个网页,而该网页包含按钮。点击按钮,OliveTin 将运行您自己设置的预设 bash 命令。

当然,如果您有足够的编程经验,可以从头开始自己创建类似的东西……但这要容易得多。设置后的样子如下所示(图片来自 OliveTin 仓库

A screenshot of OliveTin on the desktop; it features several squares in a grid, with labels and actions for each command that can be run.

切勿在公共服务器上运行此应用程序

这个应用程序的设计和创建者的意图是在本地网络上使用,可能在开发环境中使用。但是,目前它没有用户身份验证系统,并且(直到开发人员修复此问题)默认情况下以 root 身份运行

所以,您可以随意在安全和防火墙保护的网络上使用它。不要把它放在任何旨在供公众使用的东西上。暂时先这样。

先决条件和假设

要按照本指南操作,您需要

  • 运行 Rocky Linux 的计算机
  • 对命令行的基本了解或经验。
  • Root 访问权限或使用 sudo 的能力。
  • 学习 YAML 的基础知识。它并不难,您将在下面掌握它。

安装 OliveTin

OliveTin 包含预构建的 RPM。只需在此处下载您的架构的最新版本,然后安装它。如果您是在带有图形桌面的工作站上按照本指南操作,只需下载文件,然后在您选择的任何文件管理器中双击它。

如果您是在服务器上安装此应用程序,那么您可以在工作机器上下载它,并通过 SSH/SCP/SFTP 上传,或者做一些人们说不要做的事情,用 wget 下载。

例如

wget https://github.com/OliveTin/OliveTin/releases/download/2022-04-07/OliveTin_2022-04-07_linux_amd64.rpm

然后使用(同样,例如)安装应用程序

sudo rpm -i OliveTin_2022-04-07_linux_amd64.rpm

OliveTin 可以作为普通的 systemd 服务运行,但暂时不要启用它。您需要先设置配置文件。

注意

经过一些测试后,我确定这些相同的安装说明在 Rocky Linux LXD 容器中也能完美运行。对于喜欢 Docker 的任何人,预构建的镜像都可用。

配置 OliveTin 操作

OliveTin 可以执行 bash 可以执行的任何操作,甚至更多。您可以使用它运行带有 CLI 选项的应用程序、运行 bash 脚本、重新启动服务等等。要开始,请使用 root/sudo 用您选择的文本编辑器打开配置文件

sudo nano /etc/OliveTin/config.yaml

最基本的操作类型是按钮;您点击它,命令将在主机上运行。您可以在 YAML 文件中按如下方式定义它

actions:
  - title: Restart Nginx
    shell: systemctl restart nginx

您还可以使用 unicode 表情符号等为每个操作添加自定义图标

actions:
  - title: Restart Nginx
    icon: "&#1F504"
    shell: systemctl restart nginx

我不会详细介绍所有自定义选项,但您也可以使用文本输入和下拉菜单,为要运行的命令添加变量和选项。如果您这样做,OliveTin 将在运行命令之前提示您输入。

通过这样做,您可以运行任何程序,使用 SSH 控制远程机器,触发 webhook 等等。查看 官方文档,获取更多想法。

但以下是我的一个例子:我有一个个人脚本,用于生成预装有 Web 服务器的 LXD 容器。使用 OliveTin,我能够快速为该脚本制作一个 GUI,如下所示

actions:
- title: Build Container
  shell: sh /home/ezequiel/server-scripts/rocky-host/buildcontainer -c {{ containerName }} -d {{ domainName }} {{ softwarePackage }}
  timeout: 60
  arguments:
    - name: containerName
      title: Container Name
      type: ascii_identifier

    - name: domainName
      title: Domain
      type: ascii_identifier

    - name: softwarePackage
      title: Default Software
      choices:
        - title: None
          value:

        - title: Nginx
          value: -s nginx

        - title: Nginx & PHP
          value: -s nginx-php

        - title: mariadb
          value: -s mariadb

在前端,看起来像这样(是的,OliveTin 有一个黑暗模式,我真的需要更改那个图标)

A form with three text inputs and a dropdown menu

启用 OliveTin

一旦您按照自己的意愿构建了配置文件,只需使用以下命令启用并启动 OliveTin

sudo systemctl enable --now OliveTin

每次编辑配置文件后,您都需要以通常的方式重新启动服务

sudo systemctl restart OliveTin

结论

OliveTin 是一款非常棒的工具,可以用来运行各种操作,从简单的 bash 命令到复杂的脚本都可以。请记住,默认情况下,所有操作都以 root 用户身份运行,除非您在 shell 命令中使用 `su/sudo` 来切换用户。

因此,在设置 OliveTin 时,您需要格外谨慎,尤其是当您打算将它提供给您的家人使用时,例如用于控制家庭服务器和设备等等。

再次强调,除非您准备自己确保网页安全,否则不要将 OliveTin 部署到公共服务器上。

除此之外,尽情享受吧!OliveTin 是一款非常实用的工具。

作者:Ezequiel Bruni

贡献者:Steven Spencer, Ganna Zhyrnova