{"id":13491594,"url":"https://github.com/OliveTin/OliveTin","last_synced_at":"2025-03-28T08:33:20.710Z","repository":{"id":40322037,"uuid":"365300077","full_name":"OliveTin/OliveTin","owner":"OliveTin","description":"OliveTin gives safe and simple access to predefined shell commands from a web interface. ","archived":false,"fork":false,"pushed_at":"2024-04-11T23:28:26.000Z","size":1862,"stargazers_count":1620,"open_issues_count":15,"forks_count":56,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-04-12T15:56:07.033Z","etag":null,"topics":["api","container","homeautomation","linux","selfhosted","service","sysadmin"],"latest_commit_sha":null,"homepage":"https://olivetin.app","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OliveTin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.adoc","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-05-07T16:57:44.000Z","updated_at":"2024-07-16T11:20:29.077Z","dependencies_parsed_at":"2023-12-28T10:26:16.155Z","dependency_job_id":"d152c6de-dd35-4ba8-b5a4-e38ae21c3a82","html_url":"https://github.com/OliveTin/OliveTin","commit_stats":{"total_commits":350,"total_committers":8,"mean_commits":43.75,"dds":0.4714285714285714,"last_synced_commit":"b2cc62059e16bcd03884a5e8c7f13f3f47f1b89c"},"previous_names":["jamesread/olivetin"],"tags_count":83,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OliveTin%2FOliveTin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OliveTin%2FOliveTin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OliveTin%2FOliveTin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OliveTin%2FOliveTin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OliveTin","download_url":"https://codeload.github.com/OliveTin/OliveTin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245996833,"owners_count":20707334,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","container","homeautomation","linux","selfhosted","service","sysadmin"],"created_at":"2024-07-31T19:00:58.460Z","updated_at":"2025-03-28T08:33:20.704Z","avatar_url":"https://github.com/OliveTin.png","language":"Go","funding_links":[],"categories":["Go","Tools for Self-Hosting","Software","置顶","api","Other"],"sub_categories":["Automation","05、运维监控体系","Web Applications"],"readme":"# OliveTin\n\n\u003cimg alt = \"project logo\" src = \"https://github.com/OliveTin/OliveTin/blob/main/webui.dev/OliveTinLogo.png\" align = \"right\" width = \"160px\" /\u003e\n\nOliveTin gives **safe** and **simple** access to predefined shell commands from a web interface.\n\n[![Maturity Badge](https://img.shields.io/badge/maturity-Production-brightgreen)](#none)\n[![Discord](https://img.shields.io/discord/846737624960860180?label=Discord%20Server)](https://discord.gg/jhYWWpNJ3v)\n[![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/awesome-selfhosted/awesome-selfhosted#automation)\n[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/5050/badge)](https://bestpractices.coreinfrastructure.org/projects/5050)\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/Olivetin/OliveTin)](https://goreportcard.com/report/github.com/OliveTin/OliveTin)\n[![Build Snapshot](https://github.com/OliveTin/OliveTin/actions/workflows/build-snapshot.yml/badge.svg)](https://github.com/OliveTin/OliveTin/actions/workflows/build-snapshot.yml)\n\n\u003cimg alt = \"screenshot\" src = \"https://github.com/OliveTin/OliveTin/blob/main/var/marketing/screenshotDesktop.png\" /\u003e\n\u003ca href = \"#screenshots\"\u003eMore screenshots below\u003c/a\u003e\n\nAll documentation can be found at [docs.olivetin.app](https://docs.olivetin.app). This includes installation and usage guide, etc.\n\n## Use cases\n\n**Safely** give access to commands, for less technical people;\n\n* eg: Give your family a button to `podman restart plex`\n* eg: Give junior admins a simple web form with dropdowns, to start your custom script. `backupScript.sh --folder {{ customerName }}`\n* eg: Enable SSH access to the server for the next 20 mins `firewall-cmd --add-service ssh --timeout 20m`\n\n**Simplify** complex commands, make them accessible and repeatable;\n\n* eg: Expose complex commands on touchscreen tablets stuck on walls around your house. `wake-on-lan aa:bb:cc:11:22:33`\n* eg: Run long-lived commands on your servers from your cell phone. `dnf update -y`\n* eg: Define complex commands with lots of preset arguments, and turn a few arguments into dropdown select boxes. `docker rm {{ container }} \u0026\u0026 docker create {{ container }} \u0026\u0026 docker start {{ container }}`\n\n[Join the community on Discord](https://discord.gg/jhYWWpNJ3v) to talk with other users about use cases, or to ask for support in getting started.\n\n## YouTube demo video\n\n[![YouTube demo video](https://raw.githubusercontent.com/OliveTin/OliveTin/main/var/marketing/YouTubeBanner.png)](https://www.youtube.com/watch?v=UBgOfNrzId4)\n\n## Features\n\n* **Responsive, touch-friendly UI** - great for tablets and mobile\n* **Super simple config in YAML** - because if it's not YAML now-a-days, it's not \"cloud native\" :-)\n* **Dark mode** - for those of you that roll that way.\n* **Accessible** - passes all the accessibility checks in Firefox, and issues with accessibility are taken seriously.\n* **Container** - available for quickly testing and getting it up and running, great for the selfhosted community.\n* **Integrate with anything** - OliveTin just runs Linux shell commands, so theoretially 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.\n* **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.\n* **Good amount of unit tests and style checks** - helps potential contributors be consistent, and helps with maintainability.\n\n## Screenshots\n\nDesktop web browser;\n\n\u003cp align = \"center\"\u003e\n\u003cimg alt = \"screenshot\" src = \"https://github.com/OliveTin/OliveTin/blob/main/var/marketing/screenshotDesktop.png\" /\u003e\n\u003c/p\u003e\n\nDesktop web browser (dark mode);\n\n\u003cp align = \"center\"\u003e\n\u003cimg alt = \"screenshot\" src = \"https://github.com/OliveTin/OliveTin/blob/main/var/marketing/screenshotDesktopDark.png\" /\u003e\n\u003c/p\u003e\n\nMobile screen size (responsive layout);\n\n\u003cp align = \"center\"\u003e\n\u003cimg alt = \"screenshot\" src = \"https://github.com/OliveTin/OliveTin/blob/main/var/marketing/screenshotMobile.png\" style = \"height: 700px;\" /\u003e\n\u003c/p\u003e\n\n## Documentation\n\nAll documentation can be found at [docs.olivetin.app](https://docs.olivetin.app). This includes installation and usage guide, etc.\n\nYou can find instructions in the docs on how to install as a **Linux package**, **Linux Container**, on **FreeBSD**, **Windows**, **MacOS** and other platforms, too!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOliveTin%2FOliveTin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FOliveTin%2FOliveTin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOliveTin%2FOliveTin/lists"}