jamesread 1 год назад
Родитель
Сommit
9bb17badad
5 измененных файлов с 36 добавлено и 78 удалено
  1. 5 4
      .github/PULL_REQUEST_TEMPLATE.md
  2. 3 3
      .github/workflows/codestyle.yml
  3. 1 3
      Makefile
  4. 5 53
      README.md
  5. 22 15
      config.yaml

+ 5 - 4
.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 have forked the project, and raised this PR on a feature branch.
 - [ ] I ran the `pre-commit` hooks, and my commit message was validated.
 - [ ] 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.
 - [ ] I understand and accept the [AGPL-3.0 license](LICENSE) and [code of conduct](CODE_OF_CONDUCT.md), and my contributions fall under these.

+ 3 - 3
.github/workflows/codestyle.yml

@@ -30,8 +30,8 @@ jobs:
       - name: deps
       - name: deps
         run: make -w grpc
         run: make -w grpc
 
 
-      - name: daemon
-        run: make -w daemon-codestyle
+      - name: service
+        run: make -wC service codestyle
 
 
       - name: webui
       - name: webui
-        run: make -w webui-codestyle
+        run: make -wC webui.dev codestyle

+ 1 - 3
Makefile

@@ -48,9 +48,7 @@ devrun: compile
 devcontainer: compile podman-image podman-container
 devcontainer: compile podman-image podman-container
 
 
 webui-codestyle:
 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:
 webui-dist:
 	$(call delete-files,webui)
 	$(call delete-files,webui)

+ 5 - 53
README.md

@@ -15,6 +15,8 @@ OliveTin gives **safe** and **simple** access to predefined shell commands from
 <img alt = "screenshot" src = "https://github.com/OliveTin/OliveTin/blob/main/var/marketing/screenshotDesktop.png" />
 <img alt = "screenshot" src = "https://github.com/OliveTin/OliveTin/blob/main/var/marketing/screenshotDesktop.png" />
 <a href = "#screenshots">More screenshots below</a>
 <a href = "#screenshots">More screenshots below</a>
 
 
+All documentation can be found at [docs.olivetin.app](https://docs.olivetin.app). This includes installation and usage guide, etc.
+
 ## Use cases
 ## Use cases
 
 
 **Safely** give access to commands, for less technical people;
 **Safely** give access to commands, for less technical people;
@@ -68,56 +70,6 @@ Mobile screen size (responsive layout);
 
 
 ## Documentation
 ## Documentation
 
 
-All documentation can be found at http://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).
+All documentation can be found at [docs.olivetin.app](https://docs.olivetin.app). This includes installation and usage guide, etc.
+
+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!

+ 22 - 15
config.yaml

@@ -8,19 +8,19 @@ listenAddressSingleHTTPFrontend: 0.0.0.0:1337
 # Choose from INFO (default), WARN and DEBUG
 # Choose from INFO (default), WARN and DEBUG
 logLevel: "INFO"
 logLevel: "INFO"
 
 
-# Checking for updates https://docs.olivetin.app/update-checks.html
+# Checking for updates https://docs.olivetin.app/reference/updateChecks.html
 checkForUpdates: false
 checkForUpdates: false
 
 
 # Actions are commands that are executed by OliveTin, and normally show up as
 # Actions are commands that are executed by OliveTin, and normally show up as
 # buttons on the WebUI.
 # 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:
 actions:
   # This is the most simple action, it just runs the command and flashes the
   # This is the most simple action, it just runs the command and flashes the
   # button to indicate status.
   # button to indicate status.
   #
   #
   # If you are running OliveTin in a container remember to pass through the
   # 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
   - title: Ping the Internet
     shell: ping -c 3 1.1.1.1
     shell: ping -c 3 1.1.1.1
     icon: ping
     icon: ping
@@ -42,11 +42,16 @@ actions:
 
 
   # This uses `popupOnStart: execution-button` to display a mini button that
   # This uses `popupOnStart: execution-button` to display a mini button that
   # links to the logs.
   # links to the logs.
+  #
+  # You can also rate-limit actions too.
   - title: date
   - title: date
     shell: date
     shell: date
     timeout: 6
     timeout: 6
     icon: clock
     icon: clock
     popupOnStart: execution-button
     popupOnStart: execution-button
+    maxRate:
+      - limit: 3
+        duration: 5m
 
 
   # You are not limited to operating system commands, and of course you can run
   # You are not limited to operating system commands, and of course you can run
   # your own scripts. Here `maxConcurrent` stops the script running multiple
   # 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
   # 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.
   # `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
   - title: Ping host
     id: ping_host
     id: ping_host
     shell: ping {{ host }} -c {{ count }}
     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,
   # However, if you are running in a container you will need to do some setup,
   # see the docs below.
   # 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
   - title: Restart Docker Container
     icon: restart
     icon: restart
     shell: docker restart {{ container }}
     shell: docker restart {{ container }}
@@ -103,7 +108,7 @@ actions:
   # There is a special `confirmation` argument to help against accidental clicks
   # There is a special `confirmation` argument to help against accidental clicks
   # on "dangerous" actions.
   # on "dangerous" actions.
   #
   #
-  # Docs: https://docs.olivetin.app/confirmation.html
+  # Docs: https://docs.olivetin.app/args/input_confirmation.html
   - title: Delete old backups
   - title: Delete old backups
     icon: ashtonished
     icon: ashtonished
     shell: rm -rf /opt/oldBackups/
     shell: rm -rf /opt/oldBackups/
@@ -118,7 +123,7 @@ actions:
   # This is an action that runs a script included with OliveTin, that will
   # 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.
   # 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
   - title: Get OliveTin Theme
     shell: olivetin-get-theme {{ themeGitRepo }} {{ themeFolderName }}
     shell: olivetin-get-theme {{ themeGitRepo }} {{ themeFolderName }}
     icon: theme
     icon: theme
@@ -136,8 +141,8 @@ actions:
   # it, just use SSH! OliveTin includes a helper to make this easier, which is
   # it, just use SSH! OliveTin includes a helper to make this easier, which is
   # entirely optional. You can also setup SSH manually.
   # 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"
   - title: "Setup easy SSH"
     icon: ssh
     icon: ssh
     shell: olivetin-setup-easy-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
   # Here's how to use SSH with the "easy" config, to restart a service on
   # another server.
   # 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
   - title: Restart httpd on server1
     id: restart_httpd
     id: restart_httpd
     icon: restart
     icon: restart
@@ -165,12 +170,12 @@ actions:
   # can also just specify any HTML, this includes any unicode character,
   # can also just specify any HTML, this includes any unicode character,
   # or a <img = "..." /> link to a custom icon.
   # or a <img = "..." /> 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
   # Lots of people use OliveTin to easily execute ansible-playbooks. You
   # probably want a much longer timeout as well (so that ansible completes).
   # 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"
   - title: "Run Automation Playbook"
     icon: '&#129302;'
     icon: '&#129302;'
     shell: ansible-playbook -i /etc/hosts /root/myRepo/myPlaybook.yaml
     shell: ansible-playbook -i /etc/hosts /root/myRepo/myPlaybook.yaml
@@ -237,13 +242,13 @@ actions:
 # in your configuration as variables. For example; `container.status`,
 # in your configuration as variables. For example; `container.status`,
 # or `vm.hostname`.
 # or `vm.hostname`.
 #
 #
-# Docs: http://docs.olivetin.app/entities.html
+# Docs: https://docs.olivetin.app/entities/intro.html
 entities:
 entities:
   # YAML files are the default expected format, so you can use .yml or .yaml,
   # 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
   # or even .txt, as long as the file contains valid a valid yaml LIST, then it
   # will load properly.
   # will load properly.
   #
   #
-  # Docs: https://docs.olivetin.app/entities.html
+  # Docs: https://docs.olivetin.app/entities/intro.html
   - file: entities/servers.yaml
   - file: entities/servers.yaml
     name: server
     name: server
 
 
@@ -255,6 +260,8 @@ entities:
 #
 #
 # The only way to properly use entities, are to use them with a `fieldset` on
 # The only way to properly use entities, are to use them with a `fieldset` on
 # a dashboard.
 # a dashboard.
+#
+# Docs: https://docs.olivetin.app/dashboards/intro.html
 dashboards:
 dashboards:
   # Top level items are dashboards.
   # Top level items are dashboards.
   - title: My Servers
   - title: My Servers