説明なし

James Read 9ce8b0ef12 ci: comment on resolved issues via semantic-release github plugin (#1138) 12 時間 前
.github bd1dfc34cf docs: update security reports 22 時間 前
docs ea0def2b76 docs: isolate latching toggle screenshot fixture and stop on capture failure 23 時間 前
examples d4dbc172d2 chore: include demo backup script, make it flakey 4 ヶ月 前
frontend af9ed38dff chore: Coderabbit suggestions 1 日 前
integration-tests 4e2ce56b99 chore: dep update 1 日 前
lang fb393a4aaa chore: dep update 2 日 前
proto 98e3ed7b34 chore: dep update 1 日 前
scripts 25b80e1460 fmt: Code style and linter 3 ヶ月 前
service add4f1c545 fix: skip nil actions when rebuilding the action map 23 時間 前
specs 9938b94973 fix: report config decode and include parse failures as config issues 23 時間 前
var af9ed38dff chore: Coderabbit suggestions 1 日 前
.dockerignore 0080f27dc4 build: exclude local and irrelevant build artifacts 1 ヶ月 前
.gitignore 0080f27dc4 build: exclude local and irrelevant build artifacts 1 ヶ月 前
.goreleaser.yml 3949960c0c ci: comment on resolved issues via semantic-release github plugin 12 時間 前
.pre-commit-config.yaml bbaaf37747 chore(docs): expose documentation checks locally 1 ヶ月 前
.releaserc.yaml 3949960c0c ci: comment on resolved issues via semantic-release github plugin 12 時間 前
AGENTS.md bbaaf37747 chore(docs): expose documentation checks locally 1 ヶ月 前
AI.md 8f059778ce docs: OliveTin now uses up to Level 2 of 5 AI autonomy. 3 ヶ月 前
CODE_OF_CONDUCT.md 35562e5667 Create CODE_OF_CONDUCT.md 5 年 前
CONTRIBUTING.adoc 304e2c82eb Merge branch 'next' into build/make-generation-reproducible 1 ヶ月 前
Dockerfile.multiarches d4dbc172d2 chore: include demo backup script, make it flakey 4 ヶ月 前
Dockerfile.singlearch d4dbc172d2 chore: include demo backup script, make it flakey 4 ヶ月 前
LICENSE f21b38d7a6 Create LICENSE 5 年 前
Makefile a26825af1c chore: better screenshots 1 日 前
README.md a26825af1c chore: better screenshots 1 日 前
SECURITY.md bd1dfc34cf docs: update security reports 22 時間 前
config.yaml 1739f1e127 chore: removed warnings from default config 2 ヶ月 前
local-antora-playbook-ci.yml c132eacc00 docs: add Antora site sources under docs/ with CI smoke build 5 ヶ月 前
local-antora-playbook.yml c132eacc00 docs: add Antora site sources under docs/ with CI smoke build 5 ヶ月 前
logo.svg 2cb97778b9 docs: Add logo in root 4 週間 前
renovate.json 3ad42630cc chore: modernize old go bits and pieces 1 日 前

README.md

project logo

OliveTin

OliveTin gives **safe** and **simple** access to predefined shell commands from a web interface. [![Maturity Badge](https://img.shields.io/badge/maturity-Production-brightgreen)](#none) [![Discord](https://img.shields.io/discord/846737624960860180?label=Discord%20Server)](https://discord.gg/jhYWWpNJ3v) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d2/media/badge.svg)](https://github.com/awesome-selfhosted/awesome-selfhosted#automation) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/5050/badge)](https://bestpractices.coreinfrastructure.org/projects/5050) [![Go Report Card](https://goreportcard.com/badge/github.com/Olivetin/OliveTin)](https://goreportcard.com/report/github.com/OliveTin/OliveTin) [![AI Autonomy Level](https://img.shields.io/badge/AI%20Autonomy-Level%202%20of%205%20(pair--programmer)-blue)](https://blog.jread.com/posts/ai-levels-of-autonomy-in-software-engineering/) [OliveTin 2k to 3k upgrade guide](https://docs.olivetin.app/upgrade/2k3k.html)

OliveTin action buttons More screenshots below

All documentation can be found at docs.olivetin.app. This includes installation and usage guide, etc.

The AsciiDoc sources for that site live in this repository under docs/ (Antora component). The docs.olivetin.app repository contains the Antora playbook, theme supplemental files, and the workflow that publishes GitHub Pages.

Use cases

Safely give access to commands, for less technical people;

  • eg: Give your family a button to podman restart plex
  • eg: Give junior admins a simple web form with dropdowns, to start your custom script. backupScript.sh --folder {{ customerName }}
  • eg: 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;

  • eg: Expose complex commands on touchscreen tablets stuck on walls around your house. wake-on-lan aa:bb:cc:11:22:33
  • eg: Run long-lived commands on your servers from your cell phone. dnf update -y
  • eg: Define complex commands with lots of preset arguments, and turn a few arguments into dropdown select boxes. docker rm {{ container }} && docker create {{ container }} && docker start {{ container }}

Join the community on Discord to talk with other users about use cases, or to ask for support in getting started.

YouTube demo video

YouTube demo video

Features

  • Responsive, touch-friendly UI - great for tablets and mobile
  • Super simple config in YAML - because if it's not YAML now-a-days, it's not "cloud native" :-)
  • Dark mode - for those of you that roll that way.
  • Accessible - passes all the accessibility checks in Firefox, and issues with accessibility are taken seriously.
  • Container - available for quickly testing and getting it up and running, great for the selfhosted community.
  • Integrate with anything - OliveTin just runs Linux shell commands, so theoretically you could integrate with a bunch of stuff just by using curl, ping, etc. However, writing your own shell scripts is a great way to extend OliveTin.
  • Lightweight on resources - uses only a few MB of RAM and barely any CPU. Written in Go, with a web interface written as a modern, responsive, Single Page App that uses the REST/Connect RPC API.
  • Good amount of unit tests and style checks - helps potential contributors be consistent, and helps with maintainability.

Screenshots

Action buttons

Action buttons

Your predefined shell commands appear as simple, touch-friendly buttons, so anyone can run them safely without a terminal.

Arguments

Arguments

Actions can ask for input before they run, with typed and validated fields, defaults and dropdowns, so commands only ever run with sensible values.

Command output

Command output

Watch a command's output live as it runs, along with whether it succeeded and how long it took.

Dashboards and entities

Dashboards and entities

Build dashboards that group actions by the things you manage, such as servers or containers, with one set of buttons generated for each of them.

Execution logs

Execution logs

Every action that runs is logged, so you can see who ran what, when, and whether it succeeded.

Dark mode

Dark mode

OliveTin follows your browser's dark mode preference automatically.

Mobile layout

Mobile layout

The responsive layout works well on phones and on wall-mounted tablets, so commands are a tap away wherever you are.

Screenshots use fictional test data and are regenerated with make screenshots (see var/marketing/screenshots).

No-Nonsense Software Principles

OliveTin follows these principles:

  • Open Source & Free Software: following the Open Source Definition and the Free Software Definition. All code and assets are available under the AGPL-3.0 License.
  • Independent: No company owns the code or is responsible for the projects' governance.
  • Inclusive: No "core", "pro", "premium" or "enterprise" version. The only version is the one you can download and run, and it has all the features.
  • Invisible: No usage tracking, no user tracking, no ads, and no telemetry.
  • Internal: No internet connection required for any functionality.

Documentation

All documentation can be found at docs.olivetin.app. This includes installation and usage guide, etc.

You can find instructions in the docs on how to install as a Linux package, Linux Container, on FreeBSD, Windows, macOS and other platforms, too!

Donations & Sponsorship

OliveTin does not accept monetary donations or sponsorship. See Donations & Sponsorship for the full explanation.