diff --git a/_advanced_configuration.html b/_advanced_configuration.html index f892ccc40..1dc7df5f3 100644 --- a/_advanced_configuration.html +++ b/_advanced_configuration.html @@ -167,52 +167,52 @@

OliveTin

Table of Contents

OliveTin documentation

-

10. Advanced Configuration

+

Advanced Configuration

-

5.1. Execution Feedback

+

Execution Feedback

OliveTin now has several options to control "feedback" when actions are started. This can be controlled on a per-action basis, using the popupOnStart configuration option.

-

5.1.1. Big Flashy Buttons

+

Big Flashy Buttons

config.yaml
@@ -355,7 +355,7 @@

<

-

5.1.2. Execution Dialog (Output Only)

+

Execution Dialog (Output Only)

config.yaml
@@ -371,7 +371,7 @@

-

5.1.3. Execution Dialog

+

Execution Dialog

config.yaml
@@ -388,7 +388,7 @@

-

5.1.4. Execution Buttons

+

Execution Buttons

config.yaml
-

7.2. Important Safety Warning

+

Important Safety Warning

Before you continue, it’s important to read through this safety warning.

@@ -240,12 +244,12 @@

-

← Previous: Introduction to Arguments | ↑ Up: Arguments | ⌂ Home: OliveTin documentation | Next: Textbox arguments →

+

← Previous: Introduction to Arguments | ↑ Up: Arguments | ⌂ Home: OliveTin documentation | Next: Argument types →

diff --git a/_introduction_to_arguments.html b/_introduction_to_arguments.html index 906307ef5..bbdfe532f 100644 --- a/_introduction_to_arguments.html +++ b/_introduction_to_arguments.html @@ -167,58 +167,62 @@

OliveTin

-

7.1. Introduction to Arguments

+

Introduction to Arguments

Actions and commands that OliveTin runs, without arguments, are generally quite safe - only that command can be run, without modifications. However, many users need the flexibility to set options on that command - normally called command line arguments. In OliveTin, arguments are defined in a shell commands like echo {{ message }}, with a bit of extra configuration.

@@ -248,7 +252,7 @@

diff --git a/_misc_api_calls.html b/_misc_api_calls.html index 2fad48c7e..7cea9c7df 100644 --- a/_misc_api_calls.html +++ b/_misc_api_calls.html @@ -167,41 +167,41 @@

OliveTin

-

15.3. Misc API calls

+

Misc API calls

-

15.3.1. Example API call: Get the dashboard buttons ("components")

+

Example API call: Get the dashboard buttons ("components")

curl
@@ -221,7 +221,7 @@

-

15.3.2. Example API call: readyz Healthcheck

+

Example API call: readyz Healthcheck

This is useful for configuring healthchecks in docker containers, or on Kubernetes.

@@ -243,7 +243,7 @@

diff --git a/_olivetin_api_overview.html b/_olivetin_api_overview.html index 55fd61ad9..31a51693f 100644 --- a/_olivetin_api_overview.html +++ b/_olivetin_api_overview.html @@ -167,41 +167,41 @@

OliveTin

-

15.1. OliveTin API Overview

+

OliveTin API Overview

This section of the documentation is intended for developers, and those who want to hack around with OliveTin and extend it. This page provides a few pointers to get started.

@@ -227,7 +227,7 @@

The gRPC API only listens on localhost default, but it can be set to listen publicly. See the network ports documentation for a better description of how the APIs are exposed. Most people do not need to use the gRPC API. The .proto file for the gRPC API is located at the root of the OliveTin Git repository; OliveTin.proto.

-

13. Reference

+

Reference

-

5.4. Run as different users

+

Run as different users

OliveTin does not need to run as root. It does not request any special permissions from the operating system that require root (as long as you run on @@ -234,7 +234,7 @@

-

5.4.1. EG: Using sudo;

+

EG: Using sudo;

-

13.2. Security

+

Security

-

8.1. The "actions" section

+

The "actions" section

To make Olivetin easy to use, it generates a default "Actions" section for you, as many people don’t want the hassle of having to configure dashboards. This is fine, you absolutely @@ -231,7 +231,7 @@

diff --git a/_understanding_exit_codes.html b/_understanding_exit_codes.html index 5ba838cc4..04f6027fa 100644 --- a/_understanding_exit_codes.html +++ b/_understanding_exit_codes.html @@ -167,60 +167,60 @@

OliveTin

-

13.3. Understanding exit codes

+

Understanding exit codes

OliveTin just runs commands. If the command exits with an unusual exit code (something other than 0), OliveTin will tell you. Many Linux commands will exit @@ -238,7 +238,7 @@

-

13.3.1. Common error codes

+

Common error codes

  • @@ -254,7 +254,7 @@

    <

diff --git a/action-container-control.html b/action-container-control.html index 2fcbb9899..da340f0e6 100644 --- a/action-container-control.html +++ b/action-container-control.html @@ -281,56 +281,56 @@

OliveTin

-

6.1. Containers - start/stop

+

Containers - start/stop

@@ -354,7 +354,7 @@

-

6.1.1. Example config.yaml

+

Example config.yaml

actions:
@@ -367,7 +367,7 @@ 

-

6.1.2. Setup if running inside a container

+

Setup if running inside a container

-

5. Action customisation

+

Action customisation

@@ -240,7 +240,7 @@

-

6.3.1. Example config.yaml

+

Example config.yaml

-

6.2. Restart a systemd service

+

Restart a systemd service

@@ -354,7 +354,7 @@

-

6.2.1. Example config.yaml

+

Example config.yaml

-

6.4. SSH into another machine and run a command

+

SSH into another machine and run a command

This is probably one of the most useful things OliveTin is used for - just plain old SSH, which allows it to easily connect from a container to any server running on your network to run commands. This is also the preferred method of running commands on the server that is hosting the OliveTin container image as well.

@@ -357,7 +357,7 @@

-

6.4.1. Example config.yaml

+

Example config.yaml

-

4. Actions

+

Actions

An action is a shell command, with an associated icon, and various details that describe how the command can be executed. Actions are the fundamental unit of work in OliveTin.

@@ -271,7 +271,7 @@

diff --git a/after-completion.html b/after-completion.html index 9a3e61d12..fdd019adb 100644 --- a/after-completion.html +++ b/after-completion.html @@ -281,64 +281,64 @@

OliveTin

-

6.6. Ansible Playbooks

+

Ansible Playbooks

@@ -354,7 +354,7 @@

-

3.2. Apache HTTPD - DNS based

+

Apache HTTPD - DNS based

This is an example of how to setup a DNS name based Apache HTTPD proxy for OliveTin. It assumes OliveTin is running on localhost, port 1337.

@@ -362,7 +362,7 @@

diff --git a/api-start-action.html b/api-start-action.html index 9bf7f3042..8c9420488 100644 --- a/api-start-action.html +++ b/api-start-action.html @@ -281,41 +281,41 @@

OliveTin

-

15.2. Starting Actions from the API

+

Starting Actions from the API

There are several variants of this API call available which might be easier for scripts (or humans) to work with!

@@ -372,7 +372,7 @@

-

15.2.5. Example API call; Start an action by ID in the URL

+

Example API call; Start an action by ID in the URL

curl
@@ -528,7 +528,7 @@

-

15.2.6. Example API call: Start an action using StartAction

+

Example API call: Start an action using StartAction

curl
@@ -544,7 +544,7 @@

-

15.2.7. Example API call: Start an action using StartAction with arguments

+

Example API call: Start an action using StartAction with arguments

curl
@@ -559,7 +559,7 @@

diff --git a/api.html b/api.html index 1292ba715..983773539 100644 --- a/api.html +++ b/api.html @@ -167,41 +167,41 @@

OliveTin

-

15. API

+

API

diff --git a/arg-datetime.html b/arg-datetime.html new file mode 100644 index 000000000..2281d5187 --- /dev/null +++ b/arg-datetime.html @@ -0,0 +1,387 @@ + + + + + + + + +OliveTin documentation + + + + + + +
+
+

Input: DateTime

+
+

OliveTin supports datetime pickers - note that these do NOT add your timezone, so it up to your scripts / commands to interpret which timezone is being used.

+
+
+
config.yaml
+
+
actions:
+  - title: Print your favourite datetime!
+    shell: echo {{ my_favourite_time }}
+    arguments:
+      - type: datetime
+        title: My Favourite DateTime
+
+
+
+
+arg datetime +
+
+
+ + + + + +
+
Note
+
+
+

The OliveTin server does try to parse and validate the date on the server side to prevent dangerous input, but there is no validation in the browser, beyond what your browser might do to prevent you from picking an invalid date.

+
+
+

This is safe, as what really matters is what the server allows to be passed to be executed - and that is checked.

+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/arg-dropdowns.html b/arg-dropdowns.html new file mode 100644 index 000000000..55b781f6f --- /dev/null +++ b/arg-dropdowns.html @@ -0,0 +1,389 @@ + + + + + + + + +OliveTin documentation + + + + + + +
+
+

Input: Dropdowns

+
+

Predefined choices are normally the safest type of arguments, because users are limited to only enter values that you specify.

+
+
+
+
actions:
+  - title: echo a message
+    icon: smile
+    shell: echo "{{ message }}"
+    arguments:
+      - name: message
+        choices:
+          - title: Hello
+            value: Hello there!
+
+          - title: Goodbye
+            value: Aww, goodbye. :-(
+
+
+
+

Note that when predefined choices are used, the argument type is ignored.

+
+
+

This is what it looks like in the web interface;

+
+
+
+args4 +
+
+
+

Then finally, when you execute this command, it would look something like this (remember that this is just a basic "echo" command).

+
+
+
+args choices exec +
+
+
+ +
+ + + \ No newline at end of file diff --git a/arg-suggestions.html b/arg-suggestions.html index 813b3b90e..10eb72046 100644 --- a/arg-suggestions.html +++ b/arg-suggestions.html @@ -281,58 +281,62 @@

OliveTin

-

7.7. Suggestions

+

Suggestions

Argument inputs can also have "suggested" values, which can make it quicker to type commonly used options. The way that these are displayed will vary depending on your browser, as they are implemented as a modern HTML5 browser feature called "datalist".

@@ -373,7 +377,7 @@

-

7.7.1. Examples

+

Examples

arg suggestions firefox @@ -388,19 +392,19 @@

-

7.7.2. Browser Support

+

Browser Support

datalist is widely supported now-a-days, but Firefox on Android notably lacks support; https://caniuse.com/datalist . See the upstream bug here; https://bugzilla.mozilla.org/show_bug.cgi?id=1535985 .

diff --git a/arg-textbox.html b/arg-textbox.html new file mode 100644 index 000000000..ca210ca55 --- /dev/null +++ b/arg-textbox.html @@ -0,0 +1,402 @@ + + + + + + + + +OliveTin documentation + + + + + + +
+
+

Input: Textbox

+
+

Many times you need to customize how an action/shell command is run, with arguments. For example;

+
+
+
+
echo "Hello world"
+
+
+
+

In the example above, Hello world is an argument passed to the echo command. OliveTin allows you to add pre-defined, and free-text arguments to commands in this way. Below is the OliveTin version of the echo command shown above;

+
+
+
config.yaml
+
+
actions:
+  - title: echo a message
+    icon: smile
+    shell: echo {{ message }}
+    arguments:
+      - name: message
+        type: ascii_sentence
+
+
+
+

This will give you a normal button, like this;

+
+
+
+args1 +
+
+
+

However, when you click on it, you’ll get a prompt to enter arguments, like this;

+
+
+
+args2 +
+
+
+

You’ll see that the type is set to ascii_sentence. This applies fairly safe +input validation to arguments, so that only a-z, 0-9, spaces and .'s are allowed.

+
+
+

When you start the action, and it’s finished, go to the "logs" view to view the output of the command we’ve just run.

+
+
+
+args3 +
+
+
+ +
+ + + \ No newline at end of file diff --git a/_textbox_arguments.html b/arg-types.html similarity index 63% rename from _textbox_arguments.html rename to arg-types.html index 3d82f6de3..c6377a8ec 100644 --- a/_textbox_arguments.html +++ b/arg-types.html @@ -161,116 +161,68 @@ .nav-footer{text-align: center; margin-top: auto;} .nav-footer > p > a {white-space: nowrap;} - +
-

7.3. Textbox arguments

-
-

Many times you need to customize how an action/shell command is run, with arguments. For example;

-
-
-
-
echo "Hello world"
-
-
-
-

In the example above, Hello world is an argument passed to the echo command. OliveTin allows you to add pre-defined, and free-text arguments to commands in this way. Below is the OliveTin version of the echo command shown above;

-
-
-
-
actions:
-  - title: echo a message
-    icon: smile
-    shell: echo {{ message }}
-    arguments:
-      - name: message
-        type: ascii_sentence
-
-
-
-

This will give you a normal button, like this;

-
-
-
-args1 -
-
-
-

However, when you click on it, you’ll get a prompt to enter arguments, like this;

-
-
-
-args2 -
-
-
-

You’ll see that the type is set to ascii_sentence. This applies fairly safe -input validation to arguments, so that only a-z, 0-9, spaces and .'s are allowed.

-
-
-

When you start the action, and it’s finished, go to the "logs" view to view the output of the command we’ve just run.

-
-
-
-args3 -
-
-
-

7.3.1. Argument types

+

Argument types

A full list of argument types are below;

@@ -278,58 +230,77 @@

Table 2. Argument types reference table + Type +Rendered as Allowed values -

very_dangerous_raw_string

-

Anything. This is incredibly dangerous, as effectively people can type anything they like, including executing additional commands beyond what you specify. Absolutely should not be used unless your OliveTin instance can only be used by people you trust entirely.

- - -

regex:…​

-

Version 2024.03.081 and above support custom regex patterns. See Custom regex arguments.

- - -

int

-

Any number, made up of the characters 0 to 9. Negative numbers are not supported.

+

(default)

+

Textbox

+

If a type: is not set, and choices: is empty, then ascii will be used, and a warning will be logged. It is recommended that you set the type explicitly, rather than relying on defaults.

ascii

+

Textbox

a-z (case insensitive), 0-9, but no spaces or punctuation

ascii_identifier

+

Textbox

Like a DNS name, a-Z (case insensitive), 0-0, -, ., and _.

ascii_sentence

+

Textbox

a-z (case insensitive), 0-9, with spaces, . and ,.

+

very_dangerous_raw_string

+

Textbox

+

Anything. This is incredibly dangerous, as effectively people can type anything they like, including executing additional commands beyond what you specify. Absolutely should not be used unless your OliveTin instance can only be used by people you trust entirely.

+ + +

regex:…​

+

Textbox

+

Version 2024.03.081 and above support custom regex patterns. See Custom regex arguments.

+ + +

int

+

Textbox

+

Any number, made up of the characters 0 to 9. Negative numbers are not supported.

+ +

url

+

Textbox

A url, e.g. https://github.com/OliveTin

confirmation

+

Confirmation

+

A "hidden" argument that makes the action require a confirmation before launching. See confirmation arguments.

+ + +

n/a, but choices used

+

Dropdown

A "hidden" argument that makes the action require a confirmation before launching.

-
diff --git a/args-custom-regex.html b/args-custom-regex.html index 64aaccbb7..28793b3b6 100644 --- a/args-custom-regex.html +++ b/args-custom-regex.html @@ -281,58 +281,62 @@

OliveTin

-

7.4. Custom regex

+

Custom regex

OliveTin version 2024.02.081 and above support custom regex patterns for argument types. Here is an example to validate against any 3 letter word;

@@ -350,12 +354,12 @@

diff --git a/args-dropdowns.html b/args-dropdowns.html deleted file mode 100644 index abb30d45d..000000000 --- a/args-dropdowns.html +++ /dev/null @@ -1,271 +0,0 @@ - - - - - - - - -OliveTin documentation - - - - - -
-
-

7.5. Dropdown choice arguments

-
-

Predefined choices are normally the safest type of arguments, because users are limited to only enter values that you specify.

-
-
-
-
actions:
-  - title: echo a message
-    icon: smile
-    shell: echo "{{ message }}"
-    arguments:
-      - name: message
-        choices:
-          - title: Hello
-            value: Hello there!
-
-          - title: Goodbye
-            value: Aww, goodbye. :-(
-
-
-
-

Note that when predefined choices are used, the argument type is ignored.

-
-
-

This is what it looks like in the web interface;

-
-
-
-args4 -
-
-
-

Then finally, when you execute this command, it would look something like this (remember that this is just a basic "echo" command).

-
-
-
-args choices exec -
-
-
- -
- - - \ No newline at end of file diff --git a/args.html b/args.html index c4a916edc..5971d5416 100644 --- a/args.html +++ b/args.html @@ -167,58 +167,62 @@

OliveTin

-

11. Authentication & Authorization

+

Authentication & Authorization

-

3.8. Caddy - Path based

+

Caddy - Path based

Caddyfile
-

1.2. Which download do I need?

+

Which download do I need?

OliveTin can be run as a service or a container. If you are not sure which is best for you, read containers vs services.

-

1.2.1. Packages (run OliveTin as a service)

+

Packages (run OliveTin as a service)

This is a table that explains which package/download is best for each environment;

@@ -313,7 +313,7 @@

-

1.2.2. Container images

+

Container images

@@ -371,7 +371,7 @@

diff --git a/concurrency.html b/concurrency.html index 98c0e6279..353186554 100644 --- a/concurrency.html +++ b/concurrency.html @@ -281,56 +281,56 @@

OliveTin

-

2. Configuration

+

Configuration

-

7.6. Confirmation argument

+

Input: Confirmation

The confirmation type argument is a special argument type, which simply disables the "Start" button until a checkbox is ticked. This can be useful if you have an action with no other arguments, but you want to prevent accidental button-clicks starting the action.

@@ -357,12 +361,12 @@

diff --git a/container-control-panel.html b/container-control-panel.html index 8680a0a68..22bc63942 100644 --- a/container-control-panel.html +++ b/container-control-panel.html @@ -281,50 +281,50 @@

OliveTin

-

12.1. Container Control Panel

+

Container Control Panel

OliveTin is frequently used to create simple container control panels, this is one of the default examples that ships with the standard OliveTin config.yaml.

@@ -334,7 +334,7 @@

-

12.1.1. Setup if running inside a container

+

Setup if running inside a container

You can control other containers, when running OliveTin inside a container itself, however you need to do some extra setup when creating the OliveTin @@ -395,7 +395,7 @@

-

12.1.2. Entity file

+

Entity file

To build this Container Control dashboard, we use an entity file that stores and updates produced by docker ps --format json > /etc/OliveTin/entities/containers.json

@@ -411,7 +411,7 @@

diff --git a/container-dnf.html b/container-dnf.html index 2f078881b..bf72f2be1 100644 --- a/container-dnf.html +++ b/container-dnf.html @@ -167,65 +167,65 @@

OliveTin

-

13.5. Installing extra container packages

+

Installing extra container packages

The official OliveTin container image is based on Fedora Linux. Fedora has shown to offer a great mix of stability and support over two decades. The base container image for OliveTin is relatively lightweight, with not many tools installed by default. This keeps the download size small, but you may want to add additional packages.

-

13.5.1. Quickstart - using DNF to install additional packages

+

Quickstart - using DNF to install additional packages

You can of course create your own container image, but this is probably a lot of work for new users, or people who just want a few extra packages/commands. Instead of creating a whole new container image, you can simply run microdnf (the Fodora package manager) to install more commands.

@@ -264,7 +264,7 @@

-

13.5.2. See also

+

See also

-

4.1. Create your first action

+

Create your first action

This is an example of your very first action. First of all, edit your config.yaml, and enter this YAML markup;

@@ -363,7 +363,7 @@

-

4.1.1. What do I try next?

+

What do I try next?

  • @@ -397,7 +397,7 @@

    <

diff --git a/customize-webui.html b/customize-webui.html index 9bd1a9fe4..f46705038 100644 --- a/customize-webui.html +++ b/customize-webui.html @@ -281,57 +281,57 @@

OliveTin

-

10.1. Customize the web UI

+

Customize the web UI

The OliveTin web UI is reasonably customizable - parts of the page that you don’t need can be hidden when they’re not needed.

-

10.1.1. Page Title

+

Page Title

You can customize the page title;

@@ -348,7 +348,7 @@

-

10.1.2. Show Navigation

+

Show Navigation

You can choose to hide the navigation elements in OliveTin, to present a simplified user interface.

@@ -379,7 +379,7 @@

-

10.1.3. Show new versions

+

Show new versions

You can disable the "new version" information in the footer - the default for showNewVersions is true;

@@ -395,7 +395,7 @@

-

8. Dashboards

+

Dashboards

OliveTin generates a default view of actions which is useful for simple OliveTin use cases - this is always called "Actions" and cannot be renamed. The Actions view also does not support entities, fieldsets or folders.

@@ -431,12 +431,12 @@

diff --git a/displays.html b/displays.html index a87381e76..ff1a7b3bb 100644 --- a/displays.html +++ b/displays.html @@ -281,54 +281,54 @@

OliveTin

-

9. Entities

+

Entities

-

14.6. Error Fetching WebUI Settings

+

Error Fetching WebUI Settings

This is a less common issue, but it means that the main web HTML has loaded, but it could not get http://yourserver:1337/webUiSettings.json - most likely because of a 404 (Not Found) or JSON parse issue. You can see the exact reason if your browser as Web Developer Tools - look in the console. Firefox and Chrome both have great web developer tools, that can normally be opened with the F12 key, or from the developer tools menu.

@@ -235,7 +235,7 @@

diff --git a/err-js-modules-not-supported.html b/err-js-modules-not-supported.html index c050eb9f8..f05f7e532 100644 --- a/err-js-modules-not-supported.html +++ b/err-js-modules-not-supported.html @@ -167,58 +167,58 @@

OliveTin

-

6. Action examples

+

Action examples

-

4.3. Execute on schedule (cron)

+

Execute on schedule (cron)

OliveTin can execute actions on a schedule, and uses a cron format for configuration.

@@ -361,7 +361,7 @@

This is a fantastic website: https://cron.help/

-

4.3.1. Support for seconds in cron

+

Support for seconds in cron

The default cron format for OliveTin supports the Unix/Linux format - 5 fields, with no support for seconds. This is by far the most popular format that most people are used to.

@@ -388,7 +388,7 @@

diff --git a/exec-file-changed.html b/exec-file-changed.html index 6000c5e88..178d0c09b 100644 --- a/exec-file-changed.html +++ b/exec-file-changed.html @@ -281,64 +281,64 @@

OliveTin

-

4.7. Execute on file changed

+

Execute on file changed

You can execute an action when a file is changed in a directory. The argument filename is pre-populated for you.

@@ -358,7 +358,7 @@

diff --git a/exec-file-created.html b/exec-file-created.html index 34bda0933..01e6dd5a8 100644 --- a/exec-file-created.html +++ b/exec-file-created.html @@ -281,64 +281,64 @@

OliveTin

-

4.6. Execute on file created

+

Execute on file created

You can execute an action when a file is created in a directory. The argument filename is pre-populated for you.

@@ -358,7 +358,7 @@

diff --git a/exec-on-calendar.html b/exec-on-calendar.html index d81e7ff1d..6ad2a6b57 100644 --- a/exec-on-calendar.html +++ b/exec-on-calendar.html @@ -281,64 +281,64 @@

OliveTin

@@ -405,7 +405,7 @@

diff --git a/exec-on-demand.html b/exec-on-demand.html index 87c9badf3..e4ceba2fa 100644 --- a/exec-on-demand.html +++ b/exec-on-demand.html @@ -167,64 +167,64 @@

OliveTin

-

4.4. Execute on startup

+

Execute on startup

OliveTin can execute actions on a startup.

@@ -237,7 +237,7 @@

-

4.4.1. Example: Install additional commands into OliveTin

+

Example: Install additional commands into OliveTin

This functionality to execute actions on startup is a very easy way to install additional commands in OliveTin;

@@ -260,7 +260,7 @@

diff --git a/exec-webhook.html b/exec-webhook.html index d7d67d0d3..e2eefd6c9 100644 --- a/exec-webhook.html +++ b/exec-webhook.html @@ -167,64 +167,64 @@

OliveTin

-

8.2. Fieldsets

+

Fieldsets

-

12.2. Heating Control Panel

+

Heating Control Panel

This was inspired by a GitHub issue to control heating; https://github.com/OliveTin/OliveTin/issues/73

@@ -334,7 +334,7 @@

<

-

5.2. Icons

+

Icons

You can specify any HTML for an icon. It’s a popular choice to use Unicode icons because they are extremely fast to load and there are a lot of them.

@@ -345,7 +345,7 @@

Figure 2. Examples of icons in OliveTin

-

5.2.1. Iconify Icons

+

Iconify Icons

Browse over 200,000 icons that can be used with OliveTin here; https://icon-sets.iconify.design/

@@ -381,7 +381,7 @@

-

5.2.2. Unicode icons ("emoji")

+

Unicode icons ("emoji")

For example on the here is a list of "Emoji" in unicode. If you find "Smiling face with sunglasses" you can click @@ -397,7 +397,7 @@

-

5.2.3. Full HTML icons (<img src …​)

+

Full HTML icons (<img src …​)

You can also specify the full HTML for an image, like;

@@ -424,7 +424,7 @@

-

5.2.4. Saving and serving icons for "offline" use

+

Saving and serving icons for "offline" use

Sometimes you might want to store images to use as icons, with your installation of OliveTin. This can be useful when your installation is meant to be offline, or disconnected from the internet. This is easily done.

@@ -482,7 +482,7 @@

diff --git a/images/arg-datetime.png b/images/arg-datetime.png new file mode 100644 index 000000000..f25158a32 Binary files /dev/null and b/images/arg-datetime.png differ diff --git a/index.html b/index.html index 3fbad33ad..560aed307 100644 --- a/index.html +++ b/index.html @@ -167,35 +167,35 @@

OliveTin

@@ -349,7 +349,7 @@

Read more

diff --git a/install-alpine.html b/install-alpine.html index c56dcf758..bded3e982 100644 --- a/install-alpine.html +++ b/install-alpine.html @@ -167,66 +167,66 @@

OliveTin

-

1.5. Alpine Linux

+

Alpine Linux

Alpine Linux is supported by an upstream .apk package, or a manual .tar.gz install, or by a container.

@@ -234,7 +234,7 @@

hear from you!

-

1.5.1. Installing the upstream .apk

+

Installing the upstream .apk

user@host: wget https://github.com/OliveTin/OliveTin/releases/latest/download/OliveTin_linux_amd64.apk
@@ -243,7 +243,7 @@ 

-

1.5.2. Installing the .tar.gz

+

Installing the .tar.gz

The standard .tar.gz instructions should work just fine, replacing systemd for the OpenRC file.

@@ -255,7 +255,7 @@

diff --git a/install-archbtw.html b/install-archbtw.html index c263d689f..adfa9bb1e 100644 --- a/install-archbtw.html +++ b/install-archbtw.html @@ -281,66 +281,66 @@

OliveTin

-

1.6. Arch Linux (AUR)

+

Arch Linux (AUR)

There are 3 packages available for Arch Linux;

@@ -358,7 +358,7 @@

-

1.6.1. Installation (AUR)

+

Installation (AUR)

Install using yay;

@@ -369,7 +369,7 @@

-

1.6.2. Post installation

+

Post installation

You will need to write a basic configuration file before OliveTin will startup.

@@ -414,7 +414,7 @@

diff --git a/install-compose.html b/install-compose.html index 11be0ee31..506c14c7a 100644 --- a/install-compose.html +++ b/install-compose.html @@ -281,66 +281,66 @@

OliveTin

-

1.8. Docker Compose install

+

Docker Compose install

Docker compose is a popular way to define multi-container applications using a infrastructure as code approach.

@@ -369,7 +369,7 @@

-

1.8.1. Post installation (container)

+

Post installation (container)

You will need to write a basic configuration file before OliveTin will startup.

@@ -422,7 +422,7 @@

-

1.8.2. Troubleshooting podman/docker installations

+

Troubleshooting podman/docker installations

If you are having problems in starting OliveTin, or OliveTin is crashing on startup, then check the logs like this;

@@ -436,7 +436,7 @@

-

1.8.3. Controlling other docker containers from a Docker Compose install of OliveTin

+

Controlling other docker containers from a Docker Compose install of OliveTin

If you want to use OliveTin running in a container to control other Docker containers, you will need to pass through the Docker sock in your compose file.

@@ -466,7 +466,7 @@

-

1.8.4. Controlling the docker user with Docker Compose

+

Controlling the docker user with Docker Compose

This is the correct way to tell the OliveTin container to run as root (or any other user);

@@ -495,7 +495,7 @@

-

1.8.5. Using Traefik with Docker Compose

+

Using Traefik with Docker Compose

Traefik is a popular reverse proxy that seems to be used a lot in people’s Docker compose setups. See the Traefik + Docker Compose page for more details.

@@ -508,7 +508,7 @@

diff --git a/install-container-vs-service.html b/install-container-vs-service.html index 78bc02679..f04eb2230 100644 --- a/install-container-vs-service.html +++ b/install-container-vs-service.html @@ -167,66 +167,66 @@

OliveTin

-

1.1. Containers vs Services

+

Containers vs Services

Linux Containers have become an incredibly popular method for running software. OliveTin supports every way of running Linux containers - spanning from homelabs up to enterprise environments. As a container, it can be used standalone using Podman/Docker, through to using docker-compose or even on Kubernetes.

@@ -234,13 +234,13 @@

install using a Linux package instead.

-

1.1.1. Don’t overcomplicate your containers - use SSH!

+

Don’t overcomplicate your containers - use SSH!

Sometimes you just want to (or have to) use containers, but also want to use these local resources as well. Instead of bind-mounting lots of stuff into the Linux container and creating a really complicated container definition (which is hard to scale), consider a simple alternative: SSH with OliveTin. This allows you to easily SSH back into the container host and keep your container definition really simple. This approach works great and is popular for a lot of users.

@@ -279,7 +279,7 @@

diff --git a/install-container.html b/install-container.html index cd405b39b..c70a46e60 100644 --- a/install-container.html +++ b/install-container.html @@ -281,66 +281,66 @@

OliveTin

@@ -399,19 +399,19 @@

-

1.7.1. Container user

+

Container user

OliveTin does not need to be run as a root, and does not need any special capabilities. If you want to change the user that OliveTin runs as, use --user when creating the container. OliveTin ignores PUID and PGID.

-

1.7.2. Container timezone

+

Container timezone

To change the changing the timezone requires a bound-mount from the host. Olivetin ignores the TZ variable as it is non-standard.

-

1.7.3. Post installation (container)

+

Post installation (container)

You will need to write a basic configuration file before OliveTin will startup.

@@ -464,7 +464,7 @@

-

1.7.4. Troubleshooting podman/docker installations

+

Troubleshooting podman/docker installations

If you are having problems in starting OliveTin, or OliveTin is crashing on startup, then check the logs like this;

@@ -484,7 +484,7 @@

diff --git a/install-fedora.html b/install-fedora.html index 593dd55db..16487b8ca 100644 --- a/install-fedora.html +++ b/install-fedora.html @@ -281,66 +281,66 @@

OliveTin

-

1.4. Fedora Linux (dnf)

+

Fedora Linux (dnf)

Fedora is included in the Fedora Project official repositories. For an overview of versions, see the Package Sources page;

@@ -348,7 +348,7 @@

https://src.fedoraproject.org/rpms/OliveTin

-

1.4.1. Installation

+

Installation

Install using dnf (or yum, on older versions of Fedora);

@@ -359,7 +359,7 @@

-

1.4.2. Post installation

+

Post installation

You will need to write a basic configuration file before OliveTin will startup.

@@ -404,7 +404,7 @@

diff --git a/install-helm.html b/install-helm.html index 61fd0df75..cf0ebbedc 100644 --- a/install-helm.html +++ b/install-helm.html @@ -167,66 +167,66 @@

OliveTin

-

1.9. Helm on Kubernetes Install

+

Helm on Kubernetes Install

Helm makes installing OliveTin on Kubernetes very easy, the official chart is hosted on Artifact Hub.

@@ -234,7 +234,7 @@

Artifact Hub

-

1.9.1. Quickstart

+

Quickstart

user@host: helm repo add olivetin https://olivetin.github.io/OliveTin-HelmChart/
@@ -251,7 +251,7 @@ 

diff --git a/install-k8s.html b/install-k8s.html index 840bdeaa4..74ff02845 100644 --- a/install-k8s.html +++ b/install-k8s.html @@ -281,66 +281,66 @@

OliveTin

-

1.10. Kubernetes install (manually)

+

Kubernetes install (manually)

OliveTin works just fine on Kubernetes. The easiest way to deploy it is with a Kubernetes ConfigMap, Deployment, Service and finally Ingress. Like so;

@@ -397,7 +397,7 @@

diff --git a/install-linuxpackage.html b/install-linuxpackage.html index 35eeadfb3..eae30b82a 100644 --- a/install-linuxpackage.html +++ b/install-linuxpackage.html @@ -281,71 +281,71 @@

OliveTin

-

1.3. Linux package install (.rpm/.deb)

+

Linux package install (.rpm/.deb)

Running OliveTin as a systemd service on a Linux machine means it can use any program installed on your machine (you don’t have to add programs to a container). This is generally easier to use than a container, but containers can work just fine too with a bit more effort.

-

1.3.1. Choosing the right Linux package

+

Choosing the right Linux package

There are .deb, .rpm, and similar packages published for OliveTin on each release page. Pick a package most relevant to the Linux distribution you are @@ -360,7 +360,7 @@

-

1.3.2. Post installation

+

Post installation

You will need to write a basic configuration file before OliveTin will startup.

@@ -405,7 +405,7 @@

diff --git a/install-targz.html b/install-targz.html index 9b79154b4..3abc20adf 100644 --- a/install-targz.html +++ b/install-targz.html @@ -281,71 +281,71 @@

OliveTin

-

1.11. .tar.gz Install (manual)

+

.tar.gz Install (manual)

This is an option for an advanced setup, for users who cannot user the .deb or .rpm packages.

-

1.11.1. Manual setup (.tar.gz)

+

Manual setup (.tar.gz)

A .tar.gz file is provided for people who are using other Linux distributions or want to set things up manually.

@@ -367,7 +367,7 @@

-

1.11.2. Post installation

+

Post installation

You will need to write a basic configuration file before OliveTin will startup.

@@ -412,7 +412,7 @@

diff --git a/installation.html b/installation.html index 3290b5f6e..fbd8d940c 100644 --- a/installation.html +++ b/installation.html @@ -167,66 +167,66 @@

OliveTin

-

1. Installation Guide

+

Installation Guide

-

11.3. JWT Authorization

+

JWT Authorization

You need to know your JWT Cookie Name and Hash Secret. Whatever tool you are using to authenticate users will probably have instructions on how to find this.

@@ -222,7 +222,7 @@

11.3.

-

11.3.1. Adding JWT details to OliveTin config.yaml

+

Adding JWT details to OliveTin config.yaml

Setup your config file so it has something like this;

@@ -242,13 +242,13 @@

-

11.3.2. Usable claims

+

Usable claims

OliveTin currently can match Access Control Lists based on a username or primary user group. These must be called name and group respectively. You can see if these are being used properly turning on DEBUG logging and looking at the jwt claims.

-

11.3.3. Setup default permissions

+

Setup default permissions

OliveTin will assume that guests are able to View and Execute every action by default. When you are setting up authorization you probably want to limit this. You can do that by setting defaultPermissions like this;

@@ -263,7 +263,7 @@

-

11.3.4. Setup OliveTin Access Control Lists

+

Setup OliveTin Access Control Lists

Access Control Lists are a way to override the default permissions.

@@ -306,7 +306,7 @@

-

11.3.5. Customizing field names

+

Customizing field names

You may need to customize the field names for your JWT authentication.

@@ -324,7 +324,7 @@

diff --git a/log-levels.html b/log-levels.html index 24d6c9bc3..e93279bba 100644 --- a/log-levels.html +++ b/log-levels.html @@ -281,52 +281,52 @@

OliveTin

-

13.6. Multiple instances on a server

+

Multiple instances on a server

Several users will find themselves wanting to run multiple instances of OliveTin. Depending on how you’ve setup OliveTin depends on how easy it is to configure that. This page includes instructions for OliveTin installed as a container, and as a package (.tar.gz).

-

13.6.1. With Containers

+

With Containers

This is the easiest way to run multiple OliveTin instances. Follow the Container Installation instructions, or similar for Docker Compose, Helm or similar to get started.

@@ -250,7 +250,7 @@

-

13.6.2. Without containers - using a package (.tar.gz)

+

Without containers - using a package (.tar.gz)

If you are not using containers, then it is probably best not to use a .deb/.rpm installation, as those packages can only be installed for one instance.

@@ -356,7 +356,7 @@

diff --git a/network-ports.html b/network-ports.html index dca5f0a08..82a11dbcb 100644 --- a/network-ports.html +++ b/network-ports.html @@ -167,60 +167,60 @@

OliveTin

-

13.1. Network ports

+

Network ports

OliveTin might suprise some people when they see it is listening on several ports when it starts up. Most of these ports are internal and localhost-only by @@ -291,7 +291,7 @@

-

13.1.1. See also

+

See also

-

3.6. Nginx - Path based

+

Nginx - Path based

nginx.conf

@@ -354,7 +354,7 @@

-

3.1. Reverse Proxy general guide

+

Reverse Proxy general guide

It’s common to put OliveTin behind a reverse proxy, for authentication, customizing the OliveTin address/path, or for a variety of other reasons.

-

3.1.1. DNS name vs Path based proxies

+

DNS name vs Path based proxies

DNS Name based virtual hosts (eg: olivetin.example.com ) are easier to setup and configure than path based virtual hosts (eg: www.example.com/utils/OliveTin), because path based virtual hosts need to take care mangle OliveTin paths without breaking things.

@@ -247,7 +247,7 @@
-

3. Reverse Proxies

+

Reverse Proxies

-

13.7. Snapshot builds

+

Snapshot builds

It’s sometimes useful to test code changes in OliveTin that are still in development - and have not yet made it into an official version, yet. Thankfully, all code changes are automatically compiled into a "snapshot" builds and are saved in GitHub actions.

@@ -243,7 +243,7 @@

Most of the time you will want to select the top build, unless you’ve specifically been given a build link to use.

-

13.7.1. Download the snapshot archive

+

Download the snapshot archive

On the job page, you will have a single "snapshot" file listed. In this screenshot, it is 109 MB.

@@ -271,7 +271,7 @@

diff --git a/solutions.html b/solutions.html index c8fe58fd7..5ccb9cfd7 100644 --- a/solutions.html +++ b/solutions.html @@ -167,50 +167,50 @@

OliveTin

-

12. Solutions

+

Solutions

-

14.2. sosreport

+

sosreport

OliveTin has a useful feature to gather information about your installation that is useful when you’re asking for help - when you have a support request. If you are able to provide sosreport, this generally helps others help you a lot. The sosreport feature does NOT send any information to the developers or anybody else, it’s simply text - copy and paste it to where someone is trying to help you!

@@ -251,7 +251,7 @@

You can then copy and paste this text into a GitHub issue, discussion, Discord chat, or wherever else someone might be helping you.

-

14.2.1. How do I generate a sosreport?

+

How do I generate a sosreport?

OliveTin needs to be able to startup and it’s API needs to be functional. Once OliveTin is started, simply browse to: http://myserver:1337/api/sosreport

@@ -271,7 +271,7 @@

-

14.2.2. What if I cannot even get to the OliveTin API?

+

What if I cannot even get to the OliveTin API?

OliveTin’s web interface doesn’t need to be working to get a sosreport (as the web interface and the API are separate). However, if OliveTin won’t even startup, or you cannot seem to get to the API, then sadly a sosreport can’t help you. Please do specify that when you ask for help.

@@ -283,7 +283,7 @@

diff --git a/support.html b/support.html index d354985f4..0baccfb8c 100644 --- a/support.html +++ b/support.html @@ -167,58 +167,58 @@

OliveTin

-

13.8. Themes

+

Themes

Temporary docs until I write something better.

@@ -348,7 +348,7 @@

-

13.8.1. Create your own theme (without any intention of publishing it)

+

Create your own theme (without any intention of publishing it)

Create a sub-directory under your theme directory (normally /var/www/olivetin/themes) called "mytheme"

@@ -382,7 +382,7 @@

-

5.3. Timeouts

+

Timeouts

-

14. Support & Troubleshooting

+

Support & Troubleshooting

-

13.4. Update Checks (and tracking)

+

Update Checks (and tracking)

The OliveTin server will now check for updates on startup, and every 7 days after that. It will report those updates as a log message in the console. It does not apply any updates, because this is the choice and responsibility of whoever is running OliveTin to decide if, when, and how to apply any updates.

@@ -228,7 +228,7 @@

The information OliveTin sends to the update server is stored/saved., and this could be considered a form of tracking - that is tracking installations, not tracking people. This page hopefully helps explain what, how and why that information is used so you can be informed (and make changes if you wish).

-

13.4.1. Design considerations

+

Design considerations

  • @@ -253,7 +253,7 @@

-

13.4.2. What is sent (and tracked)

+

What is sent (and tracked)

When OliveTin checks for updates, it will send the following;

@@ -289,7 +289,7 @@

-

13.4.3. What is the OliveTin installation ID?

+

What is the OliveTin installation ID?

This is a randomly generated UUID - that is not based on your operating system, not on any of your data. OliveTin tries to create a random installation-id.txt in your config directory when it starts up.

@@ -301,7 +301,7 @@

-

13.4.4. Why do you need my machine ID?

+

Why do you need my machine ID?

This was changed in OliveTin - the MachineID is no longer collected, and the project moved to InstallationID instead. The answer is kept here for old versions.

@@ -320,7 +320,7 @@

-

13.4.5. Why do you need to store any information at all?

+

Why do you need to store any information at all?

This is incredibly useful information for project developers to know, because;

@@ -339,7 +339,7 @@

-

13.4.6. What is stored?

+

What is stored?

The update service only stores the information that is sent - explained with an example above.

@@ -348,7 +348,7 @@

-

13.4.7. What is not sent/stored

+

What is not sent/stored

-

13.4.9. Why isn’t this opt-in?

+

Why isn’t this opt-in?

It seems the majority of software does perform update checks by default like this - Chrome, Firefox, most modern Operating Systems, etc. Because no information about people, or your data is being used, apart from your installation ID, this seems like a safe default.

@@ -379,7 +379,7 @@

<

-

13.4.10. How do I disable update checking?

+

How do I disable update checking?

If you are worried about privacy, or similar, please do make your concerns known. This is best if this is an open discussion.

@@ -393,7 +393,7 @@

<

-

13.4.12. Why can’t I visit update-check.olivetin.app in my browser?

+

Why can’t I visit update-check.olivetin.app in my browser?

The root domain for OliveTin (OliveTin.app) has HSTS turned on - this forces your browser to use SSL (HTTPS - the little encryption padlock) for all subdomains - including www.olivetin.app and docs.olivetin.app. Although both of those websites don’t transmit anything that really needs encrypion, the web is certainly moving to having SSL turned on everywhere. It even has a positive impact on search engine rankings!

@@ -428,7 +428,7 @@

13