暫無描述

jamesread 35320aba24 fix: #1040, output limit increased from 1039 lines to 10039 lines 2 月之前
.github 08d0f6d574 Merge branch 'next' of github.com:OliveTin/OliveTin into next 2 月之前
docs d409aa8a42 doc: MCP Server 2 月之前
frontend 35320aba24 fix: #1040, output limit increased from 1039 lines to 10039 lines 2 月之前
integration-tests 5690ef521a chore: Hardened take flakes 2 月之前
lang 9d916b7175 fix: Add link to websocket disconnection 5 月之前
proto 65ed5c1ff4 feat: more intelligent reconnect method 2 月之前
service 8f6d53a029 chore: tweak reconnect login to avoid reconnect spam 2 月之前
specs 5ff6b5d080 fix: Entity ordering (#886, #762) 5 月之前
var ca71e7fdab Update install.md 2 月之前
.dockerignore 286fa43e95 Less junk in the docker image 5 年之前
.gitignore 65ed5c1ff4 feat: more intelligent reconnect method 2 月之前
.goreleaser.yml bf3efa54c1 docs: fixup a merge of macOS docs I messed up 2 月之前
.pre-commit-config.yaml 4744169aa0 chore: code cleanup, remove todos, etc 6 月之前
.releaserc.yaml 561cd9c431 fix: Various coderabbit suggestions on tpl ext 7 月之前
AGENTS.md 5ff6b5d080 fix: Entity ordering (#886, #762) 5 月之前
AI.md b330fbd1a5 fix: all broken integration tests 10 月之前
CODE_OF_CONDUCT.md 35562e5667 Create CODE_OF_CONDUCT.md 5 年之前
CONTRIBUTING.adoc c132eacc00 docs: add Antora site sources under docs/ with CI smoke build 3 月之前
Dockerfile.multiarches 6c1ab3f189 chore: Dockerfile base version update 3 月之前
Dockerfile.singlearch 6c1ab3f189 chore: Dockerfile base version update 3 月之前
INSTALL-MACOS.md 79fe6e7bb5 Update INSTALL-MACOS.md 2 月之前
LICENSE f21b38d7a6 Create LICENSE 5 年之前
Makefile 5b9f2beccd chore: Clean up docker builds, support attestation with provinence and sboms 6 月之前
README.md c132eacc00 docs: add Antora site sources under docs/ with CI smoke build 3 月之前
SECURITY.md 0df9ff1806 docs: Document behavior for duplicate security issues 2 月之前
app.olivetin.olivetin.plist 513e6be466 Update app.olivetin.olivetin.plist 2 月之前
config.macos.yaml 31513f302e Rename macos.config.yaml to config.macos.yaml 2 月之前
config.yaml cbed6d68c2 feat: Show exec conditions in the UI, and allow right clicking buttons for action details 3 月之前
local-antora-playbook-ci.yml c132eacc00 docs: add Antora site sources under docs/ with CI smoke build 3 月之前
local-antora-playbook.yml c132eacc00 docs: add Antora site sources under docs/ with CI smoke build 3 月之前

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%201%20of%205%20(assistance--only)-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)

screenshot 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

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!