4
0

Тайлбар байхгүй

James Read 02e2ac1676 fix: Listen address fields were not being loaded from config.yaml (#664) 8 сар өмнө
.github 3dfbbcc770 doc: Switch to issue types 8 сар өмнө
frontend 8b2b85c3d0 fix: Argument form start button, and input validation was also broken! (#663) 8 сар өмнө
gen cbb163726e chore: wip OliveTin3k 8 сар өмнө
integration-tests 91dfe2437e fix: increase integration test timeout 9 сар өмнө
proto b330fbd1a5 fix: all broken integration tests 9 сар өмнө
service 38d81fafe2 fix: Listen address fields were not being loaded from config.yaml 8 сар өмнө
var a62d58f119 chore: OliveTin 3k progress 11 сар өмнө
.dockerignore 286fa43e95 Less junk in the docker image 5 жил өмнө
.gitignore cbb163726e chore: wip OliveTin3k 8 сар өмнө
.goreleaser.yml 77e8c37599 fix: docker latest-3k tag 8 сар өмнө
.pre-commit-config.yaml 6b9c6c8b9c refactor: Switch to conventional scripts, rather than custom script (#535) 1 жил өмнө
.releaserc.yaml 45f9c18bc3 fix: enable main releases on 3k 8 сар өмнө
AGENTS.md fa94357374 chore: Stop AI agents adding superflous comments 8 сар өмнө
AI.md b330fbd1a5 fix: all broken integration tests 9 сар өмнө
CODE_OF_CONDUCT.md 35562e5667 Create CODE_OF_CONDUCT.md 5 жил өмнө
CONTRIBUTING.adoc 2981fc4c1f doc: Point pull request template to contributors guide (#549) 1 жил өмнө
Dockerfile 2c7b33b730 chore: Dep update 2025-07-09 (#613) 1 жил өмнө
Dockerfile.arm64 2c7b33b730 chore: Dep update 2025-07-09 (#613) 1 жил өмнө
Dockerfile.armv7 482ef0e5e8 feature: Helper scripts for ssh, themes, etc (#349) 2 жил өмнө
LICENSE f21b38d7a6 Create LICENSE 5 жил өмнө
Makefile b0f24811b2 fix: stylelint and webui cleanup 9 сар өмнө
README.md d3aa3b25b0 fix: doc typo 8 сар өмнө
SECURITY.md 11dad79794 fmt: Added pre-commit, fixed a few lint errors, npn updated webui 2 жил өмнө
config.yaml a464e6a445 fix: broken tests after changing the way arguments are parsed 9 сар өмнө

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) [OliveTin 2k to 3k upgrade guide](https://docs.olivetin.app/upgrade/2k3k.html)

screenshot More screenshots below

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

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/gRPC API.
  • Good amount of unit tests and style checks - helps potential contributors be consistent, and helps with maintainability.

Screenshots

Desktop web browser;

screenshot

Desktop web browser (dark mode);

screenshot

Mobile screen size (responsive layout);

screenshot

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!