Configuration

OliveTin is controlled by a config.yaml file. On startup, it looks for this file in the following locations;

  1. The value specified by the --configdir argument, which defaults to the current working directory (./)

  2. /config/ - Mostly used for containers

  3. /etc/OliveTin/ - this is the recommended directory on Linux for your config.yaml.

The most simple config.yaml would be something like this;

The most simple config.yaml file.
actions:
  - title: "Hello world!"
    shell: echo 'Hello World!'

The configuration does not really get more complicated than that. You can of course add more actions, and customize more, but the syntax otherwise extremely simple.

For building up from here, look at the following resources;

  • See the actions documentation for extra examples of what OliveTin could be configured to do.

  • See the action cutomisation documentation to customize how those actions work.

  • See the Solutions documentation for just the essential configuration to achieve popular use cases.

All configuration options are covered in the sollution sections

Core functionality

Option Description Default Live Reloadable Documentation

actions

The list of available actions.

-

Live Reloadable, but refreshing the web browser is recommended.

Action examples

entities

A list of "things" you can attach actions to.

-

Live Reloadable, but restart is recommended.

Entities

dashboards

A grouping of actions, with optional displays, or actions generated from entities.

-

Live Reloadable

Dashboards

UI Customization

Option Description Default Live Reloadable Documentation

pageTitle

A custom title for the OliveTin page.

OliveTin

Live reloadable

Customize the web UI.

showFooter

Show (or hide) the footer.

true

Live reloadable

Customize the web UI.

showNewVersions

Show (or hide) new versions in the footer.

true

Live reloadable

Customize the web UI.

showNavigation

Show (or hide) the sidebar/topbar section navigation.

true

Live reloadable

Customize the web UI.

sectionNavigationStyle

The style of the section navigation. sidebar, topbar

sidebar

Live reloadable

Customize the web UI.

defaultPopupOnStart

The default popup to show on start.

none

Live reloadable

Popup On Start.

defaultIconForActions

The default icon to use for actions.

smile

Requires Restart

-

defaultIconForDirectories

The default icon to use for directories.

directory

Requires Restart

-

defaultIconForBack

The default icon to use for back (from directories).

«

Requires Restart

-

enableCustomJs

Enable custom JavaScript.

false

Live Reloadable, band refreshing the web browser is required.

Custom JS.

themeName

The theme to use.

``

Restart recommended

Themes.

Security Configuration

Option Description Default Live Reloadable Documentation

AuthJwtCookieName

The name of the cookie to use for JWT authentication.

``

Requires restart

JWT with HMAC, JWT with Keys

AuthJwtAud

The audience to use for JWT authentication.

``

Requires restart

JWT with Keys

AuthJwtCertsURL

The URL to fetch the public keys from with JWKS

``

Requires restart

JWT with Keys

AuthJwtClaimUsername

The claim to use for the username.

sub

Requires restart

JWT with HMAC, JWT with Keys

AuthJwtClaimUserGroup

The claim to use for the usergroup.

sub

Requires restart

JWT with HMAC, JWT with Keys

AuthHttpHeaderUsername

The HTTP header to use for the username.

``

Requires restart

Trusted Headers

AuthHttpHeaderUserGroup

The HTTP header to use for the usergroup.

``

Requires restart

Trusted Headers

DefaultPermissions

The default permissions to use.

[]

Requires restart

Access Control Lists

AccessControlLists

The list of access control lists.

[]

Requires restart

Access Control Lists

Networking Configuration

Option Description Default Live Reloadable Documentation

UseSingleHttpFrontend

Whether or not to start the internal "microproxy" frontend. Disabling this is highly unusual and is only really useful for power users.

true

Requires Restart

Network Ports

ListenAddressSingleHTTPFrontend

The address to listen on for the internal "microproxy" frontend.

0.0.0.0:1337

Requires Restart

Network Ports

ListenAddressWebUI

The address to listen on for the web UI.

localhost:1340

Requires Restart

Network Ports

ListenAddressRestActions

The address for the API

localhost:1338

Requires Restart

Network Ports

ListenAddressGrpcActions

The address for the gRPC API

localhost:1339

Requires Restart

Network Ports

ListenAddressPrometheus

The address for the Prometheus metrics

localhost:1341

Requires Restart

Network Ports, Prometheus

ExternalRestAddress

The address the web browser should use to connect to the API.

.

Requires Restart

Network Ports

Debugging Configuration

Option Description Default Live Reloadable Documentation

LogLevel

The log level to use. INFO, DEBUG, WARN

INFO

Requires Restart

-

LogDebugOptions

Enable various debug logs.

-

Requires Restart

Advanced Troubleshooting

Insecure*

Various options to disable security features.

false

Restart recommended

Advanced Troubleshooting

Miscellaneous Configuration

Option Description Default Live Reloadable Documentation

WebUIDir

The directory to serve the web UI from.

Calculated at runtime.

Requires Restart

-

CronSupportForSeconds

Whether or not to support seconds in cron expressions.

false

Requires Restart

Cron

SaveLogs

Whether or not to save logs to disk.

[]

Requires Restart

Save Logs

Prometheus

Prometheus configuration.

-

Requires Restart

Prometheus