Skip to content
It's ottomatic beyond belief!
Go JavaScript HTML Shell CSS Dockerfile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Otto is an automation toolkit for UNIX-like computers. Its designed to be fast, efficient with thousands of servers, and have no runtime requirements on targets.


The Otto server is the central location for all your scripts and hosts.


The docker image for Otto is preferred. Load the image using docker load then use:

docker run -p 8080:8080 -v <data dir>:/otto_data -e OTTO_UID=$(id -u) -e OTTO_GID=$(id -g) --name otto otto

Navigating to the web interface, use the default credentials of admin:admin to log in. You'll want to change that password right away, so head to the Options tab.


The Otto client is the agent that runs on the target host. It accepts and execute scripts. It should run as root, and works well with SystemD.

Client binaries are provided on the server at /clients


The otto_client.conf configuration file is required to launch the otto client

Property Required Description
psk Yes The PSK configured for this host on the server
log_path Yes The path to a file where the Otto client should log
default_uid No The default UID if not specified by the script
default_gid No The default GID if not specified by the script
path No The value of $PATH when scripts are executed


A script is configured on the otto server and is executed on the otto client. Scripts can be in any executable format as long as the executable itself requires only the first and only parameter being the path to the script.

For example: bash <script>, python <python file>

Environment Variables

Environment variables allow you to customize the results of the script on a per host basis.

Envrionment variables can be configured at multiple levels:

  1. Global
  2. Script
  3. Host

Global envrionment variables are configured in the options page on the Otto server. They're included in all scripts.

Scripts can also include their own envrionment variables. These overwrite global variables.

Hosts can include their own variables. These overwrite script variables.

Lastly, there are a number of implicit variables that are automatically included:

Key Value
OTTO_URL The absolute URL to the otto server, configured in the options page
OTTO_VERSION The version of the otto software
OTTO_HOST_ADDRESS The configured address of the host this script is executing on
OTTO_HOST_PORT The configured port of the host this script is executing on
OTTO_HOST_PSK The configured PSK of the host this script is executing on
You can’t perform that action at this time.