Streamlining Shell Commands with OliveTin: A User-Friendly Web Interface for Effortless Access

OliveTin: Access Shell Commands Directly from Interface

Streamlining Shell Commands with OliveTin: A User-Friendly Web Interface for Effortless Access

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.

Resources & Downloads








Open-source Apps

9,500+

Medical Apps

500+

Lists

450+

Dev. Resources

900+