diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index c67cb3a..442313b 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -15,8 +15,9 @@ Please put a X in the boxes as evidence of reading through the checklist.
- [ ] I have forked the project, and raised this PR on a feature branch.
- [ ] I ran the `pre-commit` hooks, and my commit message was validated.
-- [ ] `make daemon-compile` runs without any issues.
-- [ ] `make daemon-codestyle` runs without any issues.
-- [ ] `make daemon-unittests` runs without any issues.
-- [ ] `make webui-codestyle` runs without any issues.
+- [ ] `make -wC service compile` runs without any issues.
+- [ ] `make -wC service codestyle` runs without any issues.
+- [ ] `make -wC service unittests` runs without any issues.
+- [ ] `make -wC webui codestyle` runs without any issues.
+- [ ] `make -w it` runs without any issues.
- [ ] I understand and accept the [AGPL-3.0 license](LICENSE) and [code of conduct](CODE_OF_CONDUCT.md), and my contributions fall under these.
diff --git a/.github/workflows/codestyle.yml b/.github/workflows/codestyle.yml
index c9cc592..9bc0b0e 100644
--- a/.github/workflows/codestyle.yml
+++ b/.github/workflows/codestyle.yml
@@ -30,8 +30,8 @@ jobs:
- name: deps
run: make -w grpc
- - name: daemon
- run: make -w daemon-codestyle
+ - name: service
+ run: make -wC service codestyle
- name: webui
- run: make -w webui-codestyle
+ run: make -wC webui.dev codestyle
diff --git a/Makefile b/Makefile
index 9a7ccb6..9641c0b 100644
--- a/Makefile
+++ b/Makefile
@@ -48,9 +48,7 @@ devrun: compile
devcontainer: compile podman-image podman-container
webui-codestyle:
- cd webui.dev && npm install
- cd webui.dev && npx eslint main.js js/*
- cd webui.dev && npx stylelint style.css
+ make -wC webui.dev codestyle
webui-dist:
$(call delete-files,webui)
diff --git a/README.md b/README.md
index e9588cd..e4ceb15 100644
--- a/README.md
+++ b/README.md
@@ -15,6 +15,8 @@ OliveTin gives **safe** and **simple** access to predefined shell commands from
More screenshots below
+All documentation can be found at [docs.olivetin.app](https://docs.olivetin.app). This includes installation and usage guide, etc.
+
## Use cases
**Safely** give access to commands, for less technical people;
@@ -68,56 +70,6 @@ Mobile screen size (responsive layout);
## Documentation
-All documentation can be found at http://docs.olivetin.app . This includes installation and usage guide, etc.
+All documentation can be found at [docs.olivetin.app](https://docs.olivetin.app). This includes installation and usage guide, etc.
-### Quickstart reference for `config.yaml`
-
-This is a quick example of `config.yaml` - but again, lots of documentation for how to write your `config.yaml` can be found at [the documentation site.](https://docs.olivetin.app)
-
-* (Recommended) [Linux package install (.rpm/.deb)](https://docs.olivetin.app/install-linuxpackage.html) install instructions
-* [Container (podman/docker)](https://docs.olivetin.app/install-container.html) install instructions
-* [Docker compose](https://docs.olivetin.app/install-compose.html) install instructions
-* [Helm on Kubernetes](https://docs.olivetin.app/install-helm.html) install instructions
-* [Kubernetes (manual)](https://docs.olivetin.app/install-k8s.html) install instructions
-* [.tar.gz (manual)](https://docs.olivetin.app/install-targz.html) install instructions
-
-Put this `config.yaml` in `/etc/OliveTin/` if you're running a standard service, or mount it at `/config` if running in a container.
-
-```yaml
-# Listen on all addresses available, port 1337
-listenAddressSingleHTTPFrontend: 0.0.0.0:1337
-
-# Choose from INFO (default), WARN and DEBUG
-logLevel: "INFO"
-
-# Actions (buttons) to show up on the WebUI:
-actions:
- # Docs: https://docs.olivetin.app/action-container-control.html
-- title: Restart Plex
- icon: restart
- shell: docker restart plex
-
- # This will send 1 ping
- # Docs: https://docs.olivetin.app/action-ping.html
-- title: Ping host
- shell: ping {{ host }} -c {{ count }}
- icon: ping
- arguments:
- - name: host
- title: host
- type: ascii_identifier
- default: example.com
-
- - name: count
- title: Count
- type: int
- default: 1
-
- # Restart http on host "webserver1"
- # Docs: https://docs.olivetin.app/action-ssh.html
-- title: restart httpd
- icon: restart
- shell: ssh root@webserver1 'service httpd restart'
-```
-
-A full example config can be found at in this repository - [config.yaml](https://github.com/OliveTin/OliveTin/blob/main/config.yaml).
+You can find instructions in the docs on how to install as a **Linux package**, **Linux Container**, on **FreeBSD**, *Windows**, **MacOS** and other platforms, too!
diff --git a/config.yaml b/config.yaml
index a5383fe..3c739c1 100644
--- a/config.yaml
+++ b/config.yaml
@@ -8,19 +8,19 @@ listenAddressSingleHTTPFrontend: 0.0.0.0:1337
# Choose from INFO (default), WARN and DEBUG
logLevel: "INFO"
-# Checking for updates https://docs.olivetin.app/update-checks.html
+# Checking for updates https://docs.olivetin.app/reference/updateChecks.html
checkForUpdates: false
# Actions are commands that are executed by OliveTin, and normally show up as
# buttons on the WebUI.
#
-# Docs: https://docs.olivetin.app/create-your-first-action.html
+# Docs: https://docs.olivetin.app/action_execution/create_your_first.html
actions:
# This is the most simple action, it just runs the command and flashes the
# button to indicate status.
#
# If you are running OliveTin in a container remember to pass through the
- # docker socket! https://docs.olivetin.app/action-container-control.html
+ # docker socket! https://docs.olivetin.app/solutions/container-control-panel/index.html
- title: Ping the Internet
shell: ping -c 3 1.1.1.1
icon: ping
@@ -42,11 +42,16 @@ actions:
# This uses `popupOnStart: execution-button` to display a mini button that
# links to the logs.
+ #
+ # You can also rate-limit actions too.
- title: date
shell: date
timeout: 6
icon: clock
popupOnStart: execution-button
+ maxRate:
+ - limit: 3
+ duration: 5m
# You are not limited to operating system commands, and of course you can run
# your own scripts. Here `maxConcurrent` stops the script running multiple
@@ -63,7 +68,7 @@ actions:
# When you want to prompt users for input, that is when you should use
# `arguments` - this presents a popup dialog and asks for argument values.
#
- # Docs: https://docs.olivetin.app/action-ping.html
+ # Docs: https://docs.olivetin.app/action_examples/ping.html
- title: Ping host
id: ping_host
shell: ping {{ host }} -c {{ count }}
@@ -88,7 +93,7 @@ actions:
# However, if you are running in a container you will need to do some setup,
# see the docs below.
#
- # Docs: https://docs.olivetin.app/action-container-control.html
+ # Docs: https://docs.olivetin.app/solutions/container-control-panel/index.html
- title: Restart Docker Container
icon: restart
shell: docker restart {{ container }}
@@ -103,7 +108,7 @@ actions:
# There is a special `confirmation` argument to help against accidental clicks
# on "dangerous" actions.
#
- # Docs: https://docs.olivetin.app/confirmation.html
+ # Docs: https://docs.olivetin.app/args/input_confirmation.html
- title: Delete old backups
icon: ashtonished
shell: rm -rf /opt/oldBackups/
@@ -118,7 +123,7 @@ actions:
# This is an action that runs a script included with OliveTin, that will
# download themes. You will still need to set theme "themeName" in your config.
#
- # Docs: https://docs.olivetin.app/themes.html
+ # Docs: https://docs.olivetin.app/reference/reference_themes_for_users.html
- title: Get OliveTin Theme
shell: olivetin-get-theme {{ themeGitRepo }} {{ themeFolderName }}
icon: theme
@@ -136,8 +141,8 @@ actions:
# it, just use SSH! OliveTin includes a helper to make this easier, which is
# entirely optional. You can also setup SSH manually.
#
- # Docs: https://docs.olivetin.app/action-ssh-easy.html
- # Docs: https://docs.olivetin.app/action-ssh.html
+ # Docs: https://docs.olivetin.app/action_examples/ssh-easy.html
+ # Docs: https://docs.olivetin.app/action_examples/ssh-manual.html
- title: "Setup easy SSH"
icon: ssh
shell: olivetin-setup-easy-ssh
@@ -146,8 +151,8 @@ actions:
# Here's how to use SSH with the "easy" config, to restart a service on
# another server.
#
- # Docs: https://docs.olivetin.app/action-ssh-easy.html
- # Docs: https://docs.olivetin.app/action-service.html
+ # Docs: https://docs.olivetin.app/action_examples/ssh-easy.html
+ # Docs: https://docs.olivetin.app/action_examples/systemd_service.html
- title: Restart httpd on server1
id: restart_httpd
icon: restart
@@ -165,12 +170,12 @@ actions:
# can also just specify any HTML, this includes any unicode character,
# or a
link to a custom icon.
#
- # Docs: https://docs.olivetin.app/icons.html
+ # Docs: https://docs.olivetin.app/action_customization/icons.html
#
# Lots of people use OliveTin to easily execute ansible-playbooks. You
# probably want a much longer timeout as well (so that ansible completes).
#
- # Docs: https://docs.olivetin.app/ansible-playbook.html
+ # Docs: https://docs.olivetin.app/action_examples/ansible.html
- title: "Run Automation Playbook"
icon: '🤖'
shell: ansible-playbook -i /etc/hosts /root/myRepo/myPlaybook.yaml
@@ -237,13 +242,13 @@ actions:
# in your configuration as variables. For example; `container.status`,
# or `vm.hostname`.
#
-# Docs: http://docs.olivetin.app/entities.html
+# Docs: https://docs.olivetin.app/entities/intro.html
entities:
# YAML files are the default expected format, so you can use .yml or .yaml,
# or even .txt, as long as the file contains valid a valid yaml LIST, then it
# will load properly.
#
- # Docs: https://docs.olivetin.app/entities.html
+ # Docs: https://docs.olivetin.app/entities/intro.html
- file: entities/servers.yaml
name: server
@@ -255,6 +260,8 @@ entities:
#
# The only way to properly use entities, are to use them with a `fieldset` on
# a dashboard.
+#
+# Docs: https://docs.olivetin.app/dashboards/intro.html
dashboards:
# Top level items are dashboards.
- title: My Servers