Streamlining Shell Commands with OliveTin: A User-Friendly Web Interface for Effortless Access
OliveTin: Access Shell Commands Directly from Interface
OliveTin is a robust self-hosted web interface that offers secure and straightforward access to predefined shell commands. It stands as an invaluable tool, transforming intricate commands into user-friendly actions that are effortlessly accessible and repeatable. This feature is especially beneficial for those who may not possess a comprehensive understanding of shell commands.
For example, OliveTin can provide family members with a straightforward button to reboot a program such as Plex. It's also an excellent tool for system administrators, allowing them to equip junior admins with a clear-cut web form complete with dropdowns to initiate custom scripts.
Moreover, OliveTin can distill complex commands into easily digestible options. This includes providing SSH access to the server for designated periods or executing enduring commands on servers via a mobile device.
The app is getting regular updates from its developer, and it is easy to use and configure using simple YAML configuration.
Sample Use-cases
- Emergency System Shutdown: With OliveTin, you can provide a button for emergency system shutdown to specific users. This allows for quick response in case of system malfunctions or security breaches. For instance,
shutdown -h now
. - Data Backup: OliveTin can be used to create a button for non-technical team members to back up important data at any time, ensuring the safety and security of data. For example,
rsync -a /source_folder /destination_folder
. - System Updates: You can give access to specific users to update and upgrade system software with a single click. This can be particularly useful in maintaining the system's security and performance. An example command could be
sudo apt-get update && sudo apt-get upgrade
. - Server Health Check: With OliveTin, you can provide a button to perform a health check of the server. This can be useful for non-technical users to monitor the server's status. For example,
top -b -n 1
.
Each of these use cases enhances the user's ability to interact with the system without needing extensive technical knowledge. They make complex commands accessible through a simple, user-friendly interface, thus streamlining operations and increasing efficiency.
How to use (Video)
Features
User-friendly Interface
OliveTin comes with a responsive and touch-friendly user interface, making it an excellent choice for mobile and tablet users. Its intuitiveness and ease of use ensure a smooth experience for users across various devices.
Easy Configuration with YAML
OliveTin employs YAML for its configuration, lending to its simplicity. YAML is becoming a standard for cloud-native applications, and OliveTin is no exception to this trend.
Dark Mode Option
Users who prefer a darker aesthetic for their interfaces can enjoy OliveTin's dark mode. This feature adds to the versatility of the interface, catering to different user preferences.
Accessibility Compliance
OliveTin takes accessibility seriously. It adheres to all accessibility checks in Firefox, ensuring that the tool can be used by a broad range of users, including those with accessibility needs.
Container Availability
OliveTin offers a container for quick testing and easy setup, making it an excellent choice for the self-hosted community. This feature enables users to get the system up and running with minimal hassle.
Integration Capabilities
With OliveTin, you can integrate with virtually anything. It runs Linux shell commands, so you can theoretically integrate with numerous systems and tools using curl, ping, and other commands. Moreover, you can extend OliveTin's functionality by writing your own shell scripts.
Resource Efficiency
OliveTin is designed to be lightweight on system resources, using only a few megabytes of RAM and minimal CPU. The software is written in Go, with a web interface designed as a modern, responsive Single Page App that uses the REST/gRPC API, ensuring efficient resource utilization.
Extensive Unit Tests and Style Checks
OliveTin has a good amount of unit tests and style checks. These help potential contributors maintain consistency and aid in the maintainability of the software.
More Features
- Supports multiple themes
Supported Systems
Install using Docker compose
First, make sure that you have Docker and Docker-Compose installed.
Create docker-compose.yml
file that includes the following:
version: "3.8"
services:
olivetin:
container_name: olivetin
image: jamesread/olivetin
volumes:
- /docker/OliveTin:/config # replace host path or volume as needed
ports:
- "1337:1337"
restart: unless-stopped
Then run it using:
docker-compose up -d
Post Install
Post installation (container)
You will need to write a basic configuration file before OliveTin will startup.
Create a basic config file at /etc/OliveTin/config.yaml
- the exact path depends on what directory you specified in the bind mount container creation in the last step. Note that the file must be called config.yaml
, and config.yml
or mystuff.yaml
would not work. You can download a sample configuration file like this if you like;
Download the sample config.yaml file to get you started.
user@host: cd /etc/OliveTin/
user@host: curl -O https://raw.githubusercontent.com/OliveTin/OliveTin/main/config.yaml
The file contents should look something like this;
The most simple config.yaml
file.
actions:
- title: "Hello world!"
shell: echo 'Hello World!'
If you are running a firewall on your server, like firewalld, you will need to open port 1337;
user@host: firewall-cmd --add-port 1337/tcp --permanent
user@host: firewall-cmd --reload
Now that you have a configuration file, and the OliveTin container created, you are now ready to start OliveTin!
user@host: docker start olivetin
You should be able to browse to http://yourserver:1337 (or similar) to get to the web interface.
If you see the OliveTin page popup in your browser, you can jump to the configuration section as the next step.
Tech Stack
The app is written using Golang and it can be installed either by using the single binary or by using Docker.
Conclusion
To conclude, OliveTin is an exceptional, powerful tool that democratizes the use of shell commands, making them more accessible and user-friendly for everyone, irrespective of their technical proficiency.
License
The app is released under the AGPL-3.0 license.