Running in production · Edition No. 20 · 14 Sep 2026

OliveTin/OliveTin

Shows a grid of buttons on a web page, each one bound to a shell command you wrote down in advance, and prints the output of every run.

← Running in productionRead the whole edition →

3.7k stars · AGPL-3.0 · 3000.15.0 (2026-06-19), read from the About sidebar on the repository page · Track this in Scout

Shows a grid of buttons on a web page, each one bound to a shell command you wrote down in advance, and prints the output of every run.

▶Repo detailsthe review · specs · pros & cons · install

What it is

A small web application that shows a grid of buttons, each one bound to a command you defined in a settings file. It shows the output of each run, and it can take typed values from the person pressing the button when you list which values are allowed.

What it is good for. Anyone who is not a full-time programmer and still has to operate a server. It removes two different problems at once: remembering the command, and typing it wrong at eleven at night. It is also the safe way to let somebody else run one job without giving them a login. For anyone who runs the same maintenance jobs by hand, a button on a phone beats a remembered command every time.

Stars3.7k
LicenceAGPL-3.0
Latest3000.15.0 (2026-06-19), read from the About sidebar on the repository page
Good
  • You can only run what you wrote down in advance, so a whole class of mistake becomes impossible by design.
  • It works on a phone, so you can act while you are away from your desk.
  • It shows the output of each run, so you can see whether the command actually worked.
Watch for
  • AGPL-3.0. That is a licence that requires you to publish your changes if you offer the changed program to others over a network. Running it as it comes is fine; building a product on it is not.
  • It runs commands as whatever user you start it as. Give it its own user with only the permissions those commands need.
  • Never put it on the open internet without a login page in front of it. A web page that runs commands is exactly what an attacker is looking for.
Similar repositories
  • msoap/shell2http

    The same idea reduced to its smallest form: each command becomes a web address, with no buttons and no screen, which makes it good for scripts and poor for people.

    Track this in Scout
  • rundeck/rundeck

    The same self-service idea built for a team, with users, roles, schedules and audit logs, at the cost of running a Java application.

    Track this in Scout
  • dagucloud/dagu

    Solves the other half: it runs jobs on a timer and chains steps together, where OliveTin runs one command when a person asks.

    Track this in Scout
Install
# Needs Docker. Put your settings file in /etc/OliveTin/config.yaml first.
sudo mkdir -p /etc/OliveTin
sudo tee /etc/OliveTin/config.yaml >/dev/null <<'EOF'
listenAddressSingleHTTPFrontend: 0.0.0.0:1337
logLevel: INFO
actions:
  - title: Show disk space
    shell: df -h
  - title: Restart the app
    shell: systemctl restart myapp
EOF
docker create --name olivetin -p 1337:1337 \
  -v /etc/OliveTin/:/config:ro docker.io/jamesread/olivetin
docker start olivetin
# then open http://your-server:1337 — behind a password, not on the open internet
Screenshots
OliveTin/OliveTin: GitHub preview cardOliveTin/OliveTin: Screenshot 1

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.