Skip to content

olivetin

Safe and simple access to predefined shell commands from a web interface

Safely give access to commands, for less technical people:

  • Give your family a button to podman restart plex
  • Give junior admins a simple web form with dropdowns, to start your custom script: backupScript.sh --folder
  • Enable SSH access to the server for the next 20 mins: firewall-cmd --add-service ssh --timeout 20m

Simplify complex commands, make them accessible and repeatable:

  • Expose complex commands on touchscreen tablets stuck on walls around your house: wake-on-lan aa🇧🇧cc:11:22:33
  • Run long-lived commands on your servers from your cell phone: apt update -y
  • Define complex commands with lots of preset arguments, and turn a few arguments into dropdown select boxes: docker start

devops

None

arm64 armhf amd64

Installation

1. Add WakeMeOps repository

curl -sSL https://raw.githubusercontent.com/upciti/wakemeops/main/assets/install_repository | sudo bash

2. Install olivetin

sudo apt install olivetin

Snippets

FROM wakemeops/minideb:bullseye

RUN install_packages \
    olivetin=2024.06.04*

USER 1001
- name: Install dependencies
  uses: upciti/wakemeops-action@v1
  with:
    packages: |
      olivetin=2024.06.04*

Download URLs

Version SHA256 Size (KB)
2024.06.04 dd4c32b7a361e64a37ffbb8a16badd138050f9addcc7ec2b1e33a0b5cef040dc 4666
2024.06.02 aed9a007bd7863b03e630874e040c572c8f08b28d516858e110d5cd07e7d0001 4666
2024.06.01 94b41abf885c72e1f49d3af7ed74eb6cb370c094203d952074be6c4786b8aa2b 4665
Version SHA256 Size (KB)
2024.06.04 9bd4a618e03904991283b477737954a691530b7bddd5770a15a1c86b3711475a 4082
2024.06.02 96d67a118cdf7c5d88eb889cb840ad8652b66434ae9d90d03c5ebb3db44aef00 4085
2024.06.01 524bf56a0c37bfabbb61a55b6af1317251cf6a0621e87c9a4ac4a1e46d5c3212 4080
Version SHA256 Size (KB)
2024.06.04 93acc77008b25c670cd82c251849262cb9ed581773cfd6e2bf6c1ed1a57f0896 4031
2024.06.02 5cd57df4b2ab70a556f96b6e7c9271e1bd51f760d1835a1481f0c900ed7cf017 4029
2024.06.01 3618e27387cef4d34333b97e64c3e4135c32d3c8e8825a53bfb468e3c4a4a727 4026

Blueprints

Debian packages listed on this page are generated from op2deb YAML blueprints. Blueprints for olivetin are versioned here.

Click here to see olivetin ops2deb blueprints
https://github.com/upciti/wakemeops/blob/main/blueprints/devops/olivetin/ops2deb.yml
name: olivetin
matrix:
  architectures:
    - amd64
    - arm64
    - armhf
  versions:
    - 2024.06.01
    - 2024.06.02
    - 2024.06.04
revision: "2"
summary: safe and simple access to predefined shell commands from a web interface
description: |-
  Safely give access to commands, for less technical people:

  - Give your family a button to podman restart plex
  - Give junior admins a simple web form with dropdowns, to start your custom
    script: backupScript.sh --folder {{ customerName }}
  - Enable SSH access to the server for the next 20 mins:
    firewall-cmd --add-service ssh --timeout 20m

  Simplify complex commands, make them accessible and repeatable:

  - Expose complex commands on touchscreen tablets stuck on walls around your
    house: wake-on-lan aa:bb:cc:11:22:33
  - Run long-lived commands on your servers from your cell phone: apt update -y
  - Define complex commands with lots of preset arguments, and turn a few
    arguments into dropdown select boxes: docker start {{container }}
recommends:
  - sudo
fetch:
  url: https://github.com/OliveTin/OliveTin/releases/download/{{version}}/OliveTin_linux_{{target}}.deb
  targets:
    armhf: armv7
install:
  - data/usr/local/bin/OliveTin:/usr/bin/olivetin
  - data/var/www/olivetin:/var/www/olivetin
  - content: |-
      #!/bin/sh
      set -e
      if ! id -u olivetin >/dev/null 2>&1; then
        useradd --system --no-create-home --user-group --shell /bin/false olivetin
      fi
    path: "{{debian}}/postinst"
  - content: |-
      [Unit]
      Description=OliveTin
      Wants=network-online.target
      After=network-online.target

      [Service]
      Type=simple
      ExecStart=/usr/bin/olivetin
      User=olivetin
      Group=olivetin
      Restart=always
      RestartSec=10
      ProtectSystem=strict
      PrivateTmp=yes

      [Install]
      WantedBy=multi-user.target
    path: /lib/systemd/system/olivetin.service
  - content: |-
      listenAddressSingleHTTPFrontend: 0.0.0.0:1337
      logLevel: "INFO"
      actions:
        - title: Ping Google
          shell: ping google.com -c 1
          icon: ping
          timeout: 10
    path: /etc/OliveTin/config.yaml
  - content: "# olivetin ALL=NOPASSWD: /usr/bin/systemctl start example.service"
    path: /etc/sudoers.d/20-olivetin

The blueprint fetch keyword contains a URL template pointing to olivetin releases. Downloaded files are locked in a lockfile versioned here.

Click here to see olivetin release hashes
https://github.com/upciti/wakemeops/blob/main/blueprints/devops/olivetin/ops2deb.lock.yml
- url: https://github.com/OliveTin/OliveTin/releases/download/2024.06.01/OliveTin_linux_amd64.deb
  sha256: dd562c3a15350ddc8c671bb4688ac1b76e43afe33a53ba14e8e7defd6bf40260
  timestamp: 2024-06-02 15:12:48+00:00
- url: https://github.com/OliveTin/OliveTin/releases/download/2024.06.01/OliveTin_linux_arm64.deb
  sha256: 455705addd16e8889d4be13171a853b6a5e54b9ae2dcc236f4e8baa94c5b4d38
  timestamp: 2024-06-02 15:12:48+00:00
- url: https://github.com/OliveTin/OliveTin/releases/download/2024.06.01/OliveTin_linux_armv7.deb
  sha256: fdf27246e24a0b892ae05c68d5f65c63ad9c6acef0857e0f8688d6026b64e468
  timestamp: 2024-06-02 15:12:48+00:00
- url: https://github.com/OliveTin/OliveTin/releases/download/2024.06.02/OliveTin_linux_amd64.deb
  sha256: 8fa8da63b3a8573bd1f5db625a31694a884a40a88c3692674383758ded519ca7
  timestamp: 2024-06-03 18:07:18+00:00
- url: https://github.com/OliveTin/OliveTin/releases/download/2024.06.02/OliveTin_linux_arm64.deb
  sha256: 497917627ca99f8fe5a4e3065fb668def74e7c00a05c1f5005b6838f45a37c8b
  timestamp: 2024-06-03 18:07:18+00:00
- url: https://github.com/OliveTin/OliveTin/releases/download/2024.06.02/OliveTin_linux_armv7.deb
  sha256: 9086dbfc5749ddf633ac983a2144153062768a238eea3dc5a47ec18a1ab12116
  timestamp: 2024-06-03 18:07:18+00:00
- url: https://github.com/OliveTin/OliveTin/releases/download/2024.06.04/OliveTin_linux_amd64.deb
  sha256: f38bc0557bab303feceab7ed983c6c23d39f28bc25efcbe4d7e1088a41e5c8d4
  timestamp: 2024-06-04 15:05:56+00:00
- url: https://github.com/OliveTin/OliveTin/releases/download/2024.06.04/OliveTin_linux_arm64.deb
  sha256: f89c8e14743d60a6ab81d06370d481969eec611b1c82657794ee5fb26b382dfc
  timestamp: 2024-06-04 15:05:56+00:00
- url: https://github.com/OliveTin/OliveTin/releases/download/2024.06.04/OliveTin_linux_armv7.deb
  sha256: fd03a5b86ee9991f8765a40cbe6fc6cf1f57dcb2c4dac748aaa9bef7125c0e19
  timestamp: 2024-06-04 15:05:56+00:00

Badge

WakeMeOps

[![WakeMeOps](https://docs.wakemeops.com/badges/olivetin.svg)](https://docs.wakemeops.com/packages/olivetin)
<a href="https://docs.wakemeops.com/packages/olivetin">
  <img src="https://docs.wakemeops.com/badges/olivetin.svg"/>
</a>
.. image:: https://docs.wakemeops.com/badges/olivetin.svg
:target: https://docs.wakemeops.com/packages/olivetin