diff options
Diffstat (limited to 'doc')
69 files changed, 1051 insertions, 193 deletions
| diff --git a/doc/accesslist-duplicates.md b/doc/accesslist-duplicates.md index e3767e7..e4d0c7f 100644 --- a/doc/accesslist-duplicates.md +++ b/doc/accesslist-duplicates.md @@ -1,6 +1,13 @@  Find and remove access list duplicates  ====================================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️️ **Info**: This script can not be used on its own but requires the base @@ -15,13 +22,13 @@ entries in wireless access list.  Requirements and installation  ----------------------------- -Depending on whether you use `wifiwave2` package (`/interface/wifiwave2`) -or legacy wifi with CAPsMAN (`/caps-man`) or local wireless interface +Depending on whether you use `wifi` package (`/interface/wifi`), legacy +wifi with CAPsMAN (`/caps-man`) or local wireless interface  (`/interface/wireless`) you need to install a different script. -For `wifiwave2`: +For `wifi`: -    $ScriptInstallUpdate accesslist-duplicates.wifiwave2; +    $ScriptInstallUpdate accesslist-duplicates.wifi;  For legacy CAPsMAN: @@ -36,7 +43,7 @@ Usage and invocation  Run this script from a terminal: -    /system/script/run accesslist-duplicates.local; +    /system/script/run accesslist-duplicates.wifi;   diff --git a/doc/backup-cloud.md b/doc/backup-cloud.md index b612fc4..7d55d74 100644 --- a/doc/backup-cloud.md +++ b/doc/backup-cloud.md @@ -1,6 +1,13 @@  Upload backup to Mikrotik cloud  =============================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base @@ -10,12 +17,12 @@ Description  -----------  This script uploads -[binary backup to Mikrotik cloud](https://wiki.mikrotik.com/wiki/Manual:IP/Cloud#Backup). +[binary backup to Mikrotik cloud ↗️](https://wiki.mikrotik.com/wiki/Manual:IP/Cloud#Backup). -> ⚠️ **Warning**: The used command can hit errors that a script can not handle. -> This may result in script termination (where no notification is sent) or -> malfunction of fetch command (where all up- and downloads break) for some -> time. Failed notifications are queued then. +> ⚠️ **Warning**: The used command can hit errors that a script can with +> workaround only. A notification *should* be sent anyway. But it can result +> in malfunction of fetch command (where all up- and downloads break) for +> some time. Failed notifications are queued then.  ### Sample notification @@ -42,7 +49,9 @@ The configuration goes to `global-config-overlay`, these are the parameters:  Also notification settings are required for  [e-mail](mod/notification-email.md), -[matrix](mod/notification-matrix.md) and/or +[gotify](mod/notification-gotify.md), +[matrix](mod/notification-matrix.md), +[ntfy](mod/notification-ntfy.md) and/or  [telegram](mod/notification-telegram.md).  Usage and invocation @@ -60,7 +69,7 @@ See also  --------  * [Send backup via e-mail](backup-email.md) -* [Save configuration to fallback partition](doc/backup-partition.md) +* [Save configuration to fallback partition](backup-partition.md)  * [Upload backup to server](backup-upload.md)  --- diff --git a/doc/backup-email.md b/doc/backup-email.md index 67564e7..7b8bcfe 100644 --- a/doc/backup-email.md +++ b/doc/backup-email.md @@ -1,6 +1,13 @@  Send backup via e-mail  ====================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base @@ -52,7 +59,7 @@ See also  --------  * [Upload backup to Mikrotik cloud](backup-cloud.md) -* [Save configuration to fallback partition](doc/backup-partition.md) +* [Save configuration to fallback partition](backup-partition.md)  * [Send notifications via e-mail](mod/notification-email.md)  * [Upload backup to server](backup-upload.md) diff --git a/doc/backup-partition.md b/doc/backup-partition.md index e95422c..50b8a09 100644 --- a/doc/backup-partition.md +++ b/doc/backup-partition.md @@ -1,6 +1,13 @@  Save configuration to fallback partition  ======================================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base @@ -10,11 +17,21 @@ Description  -----------  This script saves the current configuration to fallback -[partition](https://wiki.mikrotik.com/wiki/Manual:Partitions). +[partition ↗️](https://wiki.mikrotik.com/wiki/Manual:Partitions). +It can also copy-over the RouterOS installation when run interactively +or just before a feature update.  For this to work you need a device with sufficient flash storage that is  properly partitioned. +To make you aware of a possible issue a scheduler logging a warning is +added in the backup partition's configuration. You may want to use +[log-forward](log-forward.md) to be notified. + +> ⚠️ **Warning**: By default only the configuration is saved to backup +> partition. Every now and then you should copy your installation over +> for a recent RouterOS version! See below for options. +  Requirements and installation  ----------------------------- @@ -22,6 +39,18 @@ Just install the script:      $ScriptInstallUpdate backup-partition; +Configuration +------------- + +The configuration goes to `global-config-overlay`, the only parameter is: + +* `BackupPartitionCopyBeforeFeatureUpdate`: copy-over the RouterOS +  installation when a feature update is pending + +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. +  Usage and invocation  -------------------- @@ -29,6 +58,9 @@ Just run the script:      /system/script/run backup-partition; +When run interactively from terminal it supports to copy-over the RouterOS +installation when versions differ. +  Creating a scheduler may be an option:      /system/scheduler/add interval=1w name=backup-partition on-event="/system/script/run backup-partition;" start-time=09:30:00; @@ -39,6 +71,7 @@ See also  * [Upload backup to Mikrotik cloud](backup-cloud.md)  * [Send backup via e-mail](backup-email.md)  * [Upload backup to server](backup-upload.md) +* [Forward log messages via notification](log-forward.md)  ---  [⬅️ Go back to main README](../README.md)   diff --git a/doc/backup-upload.md b/doc/backup-upload.md index f9aaa29..b4012c8 100644 --- a/doc/backup-upload.md +++ b/doc/backup-upload.md @@ -1,6 +1,13 @@  Upload backup to server  ======================= +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base @@ -48,7 +55,9 @@ The configuration goes to `global-config-overlay`, these are the parameters:  Also notification settings are required for  [e-mail](mod/notification-email.md), -[matrix](mod/notification-matrix.md) and/or +[gotify](mod/notification-gotify.md), +[matrix](mod/notification-matrix.md), +[ntfy](mod/notification-ntfy.md) and/or  [telegram](mod/notification-telegram.md).  ### Issues with SFTP client @@ -77,7 +86,7 @@ See also  * [Upload backup to Mikrotik cloud](backup-cloud.md)  * [Send backup via e-mail](backup-email.md) -* [Save configuration to fallback partition](doc/backup-partition.md) +* [Save configuration to fallback partition](backup-partition.md)  ---  [⬅️ Go back to main README](../README.md)   diff --git a/doc/capsman-download-packages.md b/doc/capsman-download-packages.md index 8174c13..5722227 100644 --- a/doc/capsman-download-packages.md +++ b/doc/capsman-download-packages.md @@ -1,6 +1,13 @@  Download packages for CAP upgrade from CAPsMAN  ============================================= +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base @@ -18,21 +25,25 @@ This script automatically downloads these packages.  Requirements and installation  ----------------------------- -Just install the script on CAPsMAN device. Depending on whether you use -`wifiwave2` package (`/interface/wifiwave2`) or legacy wifi with CAPsMAN -(`/caps-man`) you need to install a different script. +Make sure you have the `package-path` set in your CAPsMAN configuration, +as that is where packages are downloaded to and where the system expects +them. + +Then just install the script on CAPsMAN device. +Depending on whether you use `wifi` package (`/interface/wifi`) or legacy +wifi with CAPsMAN (`/caps-man`) you need to install a different script. -For `wifiwave2`: +For `wifi`: -    $ScriptInstallUpdate capsman-download-packages.wifiwave2; +    $ScriptInstallUpdate capsman-download-packages.wifi;  For legacy CAPsMAN:      $ScriptInstallUpdate capsman-download-packages.capsman; -Optionally add a scheduler to run after startup. For `wifiwave2`: +Optionally add a scheduler to run after startup. For `wifi`: -    /system/scheduler/add name=capsman-download-packages on-event="/system/script/run capsman-download-packages.wifiwave2;" start-time=startup; +    /system/scheduler/add name=capsman-download-packages on-event="/system/script/run capsman-download-packages.wifi;" start-time=startup;  For legacy CAPsMAN: @@ -41,16 +52,20 @@ For legacy CAPsMAN:  Packages available in local storage in older version are downloaded  unconditionally. -If no packages are found the script tries to download missing packages for -legacy CAPsMAN by guessing from system log. For `wifiwave2` a default set -of packages (`routeros` and `wifiwave2` for *arm* and *arm64*) is downloaded. +If no packages are found the script downloads a default set of packages: + + * `wifi`: `routeros` and `wifi-qcom` for *arm* and *arm64*, `wifi-qcom-ac` for *arm* + * legacy CAPsMAN: `routeros` and `wireless` for *arm* and *mipsbe* + +> ℹ️ **Info**: If you have packages in the directory and things go wrong for +> what ever unknown reason: Remove **all** packages and start over.  Usage and invocation  --------------------  Run the script manually: -    /system/script/run capsman-download-packages.wifiwave2; +    /system/script/run capsman-download-packages.wifi;  ... or from scheduler. diff --git a/doc/capsman-rolling-upgrade.md b/doc/capsman-rolling-upgrade.md index 5c038e9..d277db6 100644 --- a/doc/capsman-rolling-upgrade.md +++ b/doc/capsman-rolling-upgrade.md @@ -1,6 +1,13 @@  Run rolling CAP upgrades from CAPsMAN  ===================================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base @@ -20,13 +27,13 @@ parallel.  Requirements and installation  ----------------------------- -Just install the script on CAPsMAN device. Depending on whether you use -`wifiwave2` package (`/interface/wifiwave2`) or legacy wifi with CAPsMAN -(`/caps-man`) you need to install a different script. +Just install the script on CAPsMAN device. +Depending on whether you use `wifi` package (`/interface/wifi`) or legacy +wifi with CAPsMAN (`/caps-man`) you need to install a different script. -For `wifiwave2`: +For `wifi`: -    $ScriptInstallUpdate capsman-rolling-upgrade.wifiwave2; +    $ScriptInstallUpdate capsman-rolling-upgrade.wifi;  For legacy CAPsMAN: @@ -41,7 +48,7 @@ that script when required.  Alternatively run it manually: -    /system/script/run capsman-rolling-upgrade.wifiwave2; +    /system/script/run capsman-rolling-upgrade.wifi;  See also  -------- diff --git a/doc/certificate-renew-issued.md b/doc/certificate-renew-issued.md index bb8e18c..c4615b5 100644 --- a/doc/certificate-renew-issued.md +++ b/doc/certificate-renew-issued.md @@ -1,6 +1,13 @@  Renew locally issued certificates  ================================= +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base diff --git a/doc/check-certificates.md b/doc/check-certificates.md index 58151f3..a9426db 100644 --- a/doc/check-certificates.md +++ b/doc/check-certificates.md @@ -1,6 +1,13 @@  Renew certificates and notify on expiration  =========================================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base @@ -44,7 +51,9 @@ subject alternative name (aka *Subject Alt Name* or *SAN*) can be used.  Also notification settings are required for  [e-mail](mod/notification-email.md), -[matrix](mod/notification-matrix.md) and/or +[gotify](mod/notification-gotify.md), +[matrix](mod/notification-matrix.md), +[ntfy](mod/notification-ntfy.md) and/or  [telegram](mod/notification-telegram.md).  Usage and invocation @@ -62,11 +71,23 @@ Just run the script:  Tips & Tricks  ------------- +### Schedule at startup +  The script checks for full connectivity before acting, so scheduling at  startup is perfectly valid:      /system/scheduler/add name=check-certificates@startup on-event="/system/script/run check-certificates;" start-time=startup; +### Initial import + +Given you have a certificate on you server, you can use `check-certificates` +for the initial import. Just create a *dummy* certificate with short lifetime +that matches criteria to be renewed: + +    /certificate/add name=example.com common-name=example.com days-valid=1; +    /certificate/sign example.com; +    /system/script/run check-certificates; +  See also  -------- diff --git a/doc/check-health.d/notification-03-free-ram-low.avif b/doc/check-health.d/notification-03-free-ram-low.avifBinary files differ deleted file mode 100644 index effc87c..0000000 --- a/doc/check-health.d/notification-03-free-ram-low.avif +++ /dev/null diff --git a/doc/check-health.d/notification-03-ram-utilization-high.avif b/doc/check-health.d/notification-03-ram-utilization-high.avifBinary files differ new file mode 100644 index 0000000..59155c5 --- /dev/null +++ b/doc/check-health.d/notification-03-ram-utilization-high.avif diff --git a/doc/check-health.d/notification-04-free-ram-ok.avif b/doc/check-health.d/notification-04-free-ram-ok.avifBinary files differ deleted file mode 100644 index cadb1d0..0000000 --- a/doc/check-health.d/notification-04-free-ram-ok.avif +++ /dev/null diff --git a/doc/check-health.d/notification-04-ram-utilization-ok.avif b/doc/check-health.d/notification-04-ram-utilization-ok.avifBinary files differ new file mode 100644 index 0000000..d995b9a --- /dev/null +++ b/doc/check-health.d/notification-04-ram-utilization-ok.avif diff --git a/doc/check-health.d/notification-08-psu-fail.avif b/doc/check-health.d/notification-08-state-fail.avifBinary files differ index ad049ac..ad049ac 100644 --- a/doc/check-health.d/notification-08-psu-fail.avif +++ b/doc/check-health.d/notification-08-state-fail.avif diff --git a/doc/check-health.d/notification-09-psu-ok.avif b/doc/check-health.d/notification-09-state-ok.avifBinary files differ index 26f5a74..26f5a74 100644 --- a/doc/check-health.d/notification-09-psu-ok.avif +++ b/doc/check-health.d/notification-09-state-ok.avif diff --git a/doc/check-health.md b/doc/check-health.md index 3f4c70f..33847e3 100644 --- a/doc/check-health.md +++ b/doc/check-health.md @@ -1,6 +1,13 @@  Notify about health state  ========================= +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base @@ -10,22 +17,24 @@ Description  -----------  This script is run from scheduler periodically, sending notification on -health related events: +health related events. Monitoring CPU and RAM utilization (available +processing and memory resources) works on all devices:  * high CPU utilization -* low available free RAM +* high RAM utilization (low available RAM) + +With additional plugins functionality can be extended, depending on +sensors available in hardware: +  * voltage jumps up or down more than configured threshold  * voltage drops below hard lower limit +* fan failed or recovered  * power supply failed or recovered  * temperature is above or below threshold -Note that bad initial state will not trigger an event. - -Monitoring CPU utilization and available free RAM works on all devices. -Other than that only sensors available in hardware can be checked. See what -your hardware supports: - -    /system/health/print; +> ⚠️ **Warning**: Note that bad initial state will not trigger an event! For +> example rebooting a device that is already too hot will not trigger an +> alert on high temperature.  ### Sample notifications @@ -34,10 +43,10 @@ your hardware supports:       -#### Available free RAM +#### RAM utilization (low available RAM) -   - +   +  #### Voltage @@ -50,8 +59,8 @@ your hardware supports:  #### PSU state -   - +   +  Requirements and installation  ----------------------------- @@ -65,6 +74,30 @@ Just install the script and create a scheduler:  > precision of cpu utilization, escpecially on devices with limited  > resources. Thus an unusual interval is used here. +### Plugins + +Additional plugins are available for sensors available in hardware. First +check what your hardware supports: + +    /system/health/print; + +Then install the plugin for *fan* and *power supply unit* *state*: + +    $ScriptInstallUpdate check-health,check-health.d/state; + +... or *temperature*: + +    $ScriptInstallUpdate check-health,check-health.d/temperature; + +... or *voltage*: + +    $ScriptInstallUpdate check-health,check-health.d/voltage; + +You can also combine the commands and install all or a subset of plugins +in one go: + +    $ScriptInstallUpdate check-health,check-health.d/state,check-health.d/temperature,check-health.d/voltage; +  Configuration  ------------- @@ -80,7 +113,9 @@ The configuration goes to `global-config-overlay`, these are the parameters:  Also notification settings are required for  [e-mail](mod/notification-email.md), -[matrix](mod/notification-matrix.md) and/or +[gotify](mod/notification-gotify.md), +[matrix](mod/notification-matrix.md), +[ntfy](mod/notification-ntfy.md) and/or  [telegram](mod/notification-telegram.md).  --- diff --git a/doc/check-lte-firmware-upgrade.md b/doc/check-lte-firmware-upgrade.md index a81ca86..a0c441e 100644 --- a/doc/check-lte-firmware-upgrade.md +++ b/doc/check-lte-firmware-upgrade.md @@ -1,6 +1,13 @@  Notify on LTE firmware upgrade  ============================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base @@ -37,7 +44,9 @@ Configuration  Also notification settings are required for  [e-mail](mod/notification-email.md), -[matrix](mod/notification-matrix.md) and/or +[gotify](mod/notification-gotify.md), +[matrix](mod/notification-matrix.md), +[ntfy](mod/notification-ntfy.md) and/or  [telegram](mod/notification-telegram.md).  See also diff --git a/doc/check-perpetual-license.d/notification.avif b/doc/check-perpetual-license.d/notification.avifBinary files differ new file mode 100644 index 0000000..70ca603 --- /dev/null +++ b/doc/check-perpetual-license.d/notification.avif diff --git a/doc/check-perpetual-license.md b/doc/check-perpetual-license.md new file mode 100644 index 0000000..0335fb5 --- /dev/null +++ b/doc/check-perpetual-license.md @@ -0,0 +1,71 @@ +Check perpetual license on CHR +============================== + +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../README.md) + +> ℹ️ **Info**: This script can not be used on its own but requires the base +> installation. See [main README](../README.md) for details. + +Description +----------- + +On *Cloud Hosted Router* (*CHR*) the licensing is perpetual: Buy once, use +forever - but it needs regular renewal. This script checks licensing state +and sends a notification to warn before expiration. + +### Sample notification + + + +Requirements and installation +----------------------------- + +Just install the script: + +    $ScriptInstallUpdate check-perpetual-license; + +And add a scheduler for automatic update notification: + +    /system/scheduler/add interval=1d name=check-perpetual-license on-event="/system/script/run check-perpetual-license;" start-time=startup; + +Configuration +------------- + +No extra configuration is required for this script, but notification +settings are required for +[e-mail](mod/notification-email.md), +[gotify](mod/notification-gotify.md), +[matrix](mod/notification-matrix.md), +[ntfy](mod/notification-ntfy.md) and/or +[telegram](mod/notification-telegram.md). + +Usage and invocation +-------------------- + +Be notified when run from scheduler or run it manually: + +    /system/script/run check-perpetual-license; + +Tips & Tricks +------------- + +The script checks for full connectivity before acting, so scheduling at +startup is perfectly valid: + +    /system/scheduler/add name=check-perpetual-license@startup on-event="/system/script/run check-perpetual-license;" start-time=startup; + +See also +-------- + +* [Notify on RouterOS update](check-routeros-update.md) + +--- +[⬅️ Go back to main README](../README.md)   +[⬆️ Go back to top](#top) diff --git a/doc/check-routeros-update.md b/doc/check-routeros-update.md index 3b5c2bd..a45e075 100644 --- a/doc/check-routeros-update.md +++ b/doc/check-routeros-update.md @@ -1,6 +1,13 @@  Notify on RouterOS update  ========================= +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base @@ -23,8 +30,8 @@ automatically is supported.  > ⚠️ **Warning**: Installing updates is important from a security point  > of view. At the same time it can be source of serve breakage. So test  > versions in lab and read -> [changelog](https://mikrotik.com/download/changelogs/) and -> [forum](https://forum.mikrotik.com/viewforum.php?f=21) before deploying +> [changelog ↗️](https://mikrotik.com/download/changelogs/) and +> [forum ↗️](https://forum.mikrotik.com/viewforum.php?f=21) before deploying  > to your production environment! Automatic updates should be handled  > with care! @@ -66,7 +73,9 @@ The configuration goes to `global-config-overlay`, these are the parameters:  Also notification settings are required for  [e-mail](mod/notification-email.md), -[matrix](mod/notification-matrix.md) and/or +[gotify](mod/notification-gotify.md), +[matrix](mod/notification-matrix.md), +[ntfy](mod/notification-ntfy.md) and/or  [telegram](mod/notification-telegram.md).  Usage and invocation @@ -91,6 +100,7 @@ startup is perfectly valid:  See also  -------- +* [Check perpetual license on CHR](check-perpetual-license.md)  * [Automatically upgrade firmware and reboot](firmware-upgrade-reboot.md)  * [Manage system update](packages-update.md) diff --git a/doc/collect-wireless-mac.md b/doc/collect-wireless-mac.md index 9ba1e3a..2378fed 100644 --- a/doc/collect-wireless-mac.md +++ b/doc/collect-wireless-mac.md @@ -1,6 +1,13 @@  Collect MAC addresses in wireless access list  ============================================= +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base @@ -22,13 +29,13 @@ and modify it to your needs.  Requirements and installation  ----------------------------- -Depending on whether you use `wifiwave2` package (`/interface/wifiwave2`) -or legacy wifi with CAPsMAN (`/caps-man`) or local wireless interface +Depending on whether you use `wifi` package (`/interface/wifi`), legacy +wifi with CAPsMAN (`/caps-man`) or local wireless interface  (`/interface/wireless`) you need to install a different script. -For `wifiwave2`: +For `wifi`: -    $ScriptInstallUpdate collect-wireless-mac.capsman.wifiwave2; +    $ScriptInstallUpdate collect-wireless-mac.wifi;  For legacy CAPsMAN: @@ -47,7 +54,9 @@ entries are to be added.  Also notification settings are required for  [e-mail](mod/notification-email.md), -[matrix](mod/notification-matrix.md) and/or +[gotify](mod/notification-gotify.md), +[matrix](mod/notification-matrix.md), +[ntfy](mod/notification-ntfy.md) and/or  [telegram](mod/notification-telegram.md).  Usage and invocation diff --git a/doc/daily-psk.md b/doc/daily-psk.md index 60a645f..118d768 100644 --- a/doc/daily-psk.md +++ b/doc/daily-psk.md @@ -1,6 +1,13 @@  Use wireless network with daily psk  =================================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base @@ -21,16 +28,16 @@ Requirements and installation  Just install this script. -Depending on whether you use `wifiwave2` package (`/interface/wifiwave2`) -or legacy wifi with CAPsMAN (`/caps-man`) or local wireless interface +Depending on whether you use `wifi` package (`/interface/wifi`), legacy +wifi with CAPsMAN (`/caps-man`) or local wireless interface  (`/interface/wireless`) you need to install a different script and add  schedulers to run the script: -For `wifiwave2`: +For `wifi`: -    $ScriptInstallUpdate daily-psk.wifiwave2; -    /system/scheduler/add interval=1d name=daily-psk on-event="/system/script/run daily-psk.wifiwave2;" start-time=03:00:00; -    /system/scheduler/add name=daily-psk@startup on-event="/system/script/run daily-psk.wifiwave2;" start-time=startup; +    $ScriptInstallUpdate daily-psk.wifi; +    /system/scheduler/add interval=1d name=daily-psk on-event="/system/script/run daily-psk.wifi;" start-time=03:00:00; +    /system/scheduler/add name=daily-psk@startup on-event="/system/script/run daily-psk.wifi;" start-time=startup;  For legacy CAPsMAN: @@ -58,9 +65,9 @@ The configuration goes to `global-config-overlay`, these are the parameters:  > [`global-config`](../global-config.rsc) (the one without `-overlay`) to  > your local `global-config-overlay` and modify it to your specific needs. -Then add an access list entry. For `wifiwave2`: +Then add an access list entry. For `wifi`: -    /interface/wifiwave2/access-list/add comment="Daily PSK" ssid-regexp="-guest\$" passphrase="ToBeChangedDaily"; +    /interface/wifi/access-list/add comment="Daily PSK" ssid-regexp="-guest\$" passphrase="ToBeChangedDaily";  For legacy CAPsMAN: @@ -72,7 +79,9 @@ For legacy local interface:  Also notification settings are required for  [e-mail](mod/notification-email.md), -[matrix](mod/notification-matrix.md) and/or +[gotify](mod/notification-gotify.md), +[trix](mod/notification-matrix.md), +[ntfy](mod/notification-ntfy.md) and/or  [telegram](mod/notification-telegram.md).  --- diff --git a/doc/dhcp-lease-comment.md b/doc/dhcp-lease-comment.md index cd29641..b02f199 100644 --- a/doc/dhcp-lease-comment.md +++ b/doc/dhcp-lease-comment.md @@ -1,6 +1,13 @@  Comment DHCP leases with info from access list  ============================================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base @@ -15,13 +22,13 @@ from wireless access list.  Requirements and installation  ----------------------------- -Depending on whether you use `wifiwave2` package (`/interface/wifiwave2`) -or legacy wifi with CAPsMAN (`/caps-man`) or local wireless interface +Depending on whether you use `wifi` package (`/interface/wifi`), legacy +wifi with CAPsMAN (`/caps-man`) or local wireless interface  (`/interface/wireless`) you need to install a different script. -For `wifiwave2`: +For `wifi`: -    $ScriptInstallUpdate dhcp-lease-comment.wifiwave2; +    $ScriptInstallUpdate dhcp-lease-comment.wifi;  For legacy CAPsMAN: diff --git a/doc/dhcp-to-dns.md b/doc/dhcp-to-dns.md index 772704e..4211d85 100644 --- a/doc/dhcp-to-dns.md +++ b/doc/dhcp-to-dns.md @@ -1,6 +1,13 @@  Create DNS records for DHCP leases  ================================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base diff --git a/doc/firmware-upgrade-reboot.md b/doc/firmware-upgrade-reboot.md index 8bf4d19..54f1da0 100644 --- a/doc/firmware-upgrade-reboot.md +++ b/doc/firmware-upgrade-reboot.md @@ -1,6 +1,13 @@  Automatically upgrade firmware and reboot  ========================================= +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base diff --git a/doc/fw-addr-lists.md b/doc/fw-addr-lists.md index 5805905..46b80c2 100644 --- a/doc/fw-addr-lists.md +++ b/doc/fw-addr-lists.md @@ -1,6 +1,13 @@  Download, import and update firewall address-lists  ================================================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base @@ -11,10 +18,11 @@ Description  This script downloads, imports and updates firewall address-lists. Its main  purpose is to block attacking ip addresses, spam hosts, command-and-control -servers and similar malicious entities. The default configuration contains -lists from [abuse.ch](https://abuse.ch/) and -[dshield.org](https://dshield.org/), and -lists from [spamhaus.org](https://spamhaus.org/) are prepared. +servers and similar malicious entities. The default configuration contains a +[collective list by GitHub user @stamparm ↗️](https://github.com/stamparm/ipsum), +lists from [dshield.org ↗️](https://dshield.org/) and +[blocklist.de ↗️](https://www.blocklist.de/), and lists from +[spamhaus.org ↗️](https://spamhaus.org/) are prepared.  The address-lists are updated in place, so after initial import you will not  see situation when the lists are not populated. @@ -22,6 +30,13 @@ see situation when the lists are not populated.  To mitigate man-in-the-middle attacks with altered lists the server's  certificate is checked. +> ⚠️ **Warning**: The script does not limit the size of a list, but keep in +> mind that huge lists can exhaust your device's resources (RAM and CPU), +> and may take a long time to process.   +> Even crashes for the complete scripting (and CLI) subsystem are possible. +> This should be logged accordingly with warnings when global functions are +> reloaded from scheduler. +  Requirements and installation  ----------------------------- @@ -51,13 +66,16 @@ The configuration goes to `global-config-overlay`, these are the parameters:  > your local `global-config-overlay` and modify it to your specific needs.  Naming a certificate for a list makes the script verify the server -certificate, so you should add that if possible. Some certificates are -available in my repository and downloaded automatically. Import it manually -(menu `/certificate/`) if missing. +certificate, so you should add that if possible. You may want to find the +[certificate name from browser](../CERTIFICATES.md).  Create firewall rules to process the packets that are related to addresses -from address-lists. This rejects the packets from and to ip addresses listed -in address-list `block`. +from address-lists. + +### IPv4 rules + +This rejects the packets from and to IPv4 addresses listed in +address-list `block`.      /ip/firewall/filter/add chain=input src-address-list=block action=reject reject-with=icmp-admin-prohibited;      /ip/firewall/filter/add chain=forward src-address-list=block action=reject reject-with=icmp-admin-prohibited; @@ -85,6 +103,38 @@ Alternatively handle the packets in firewall's raw section if you prefer:  > ⚠️ **Warning**: Just again... The order of firewall rules is important. Make  > sure they actually take effect as expected! +### IPv6 rules + +These are the same rules, but for IPv6.  + +Reject packets in address-list `block`: + +    /ipv6/firewall/filter/add chain=input src-address-list=block action=reject reject-with=icmp-admin-prohibited; +    /ipv6/firewall/filter/add chain=forward src-address-list=block action=reject reject-with=icmp-admin-prohibited; +    /ipv6/firewall/filter/add chain=forward dst-address-list=block action=reject reject-with=icmp-admin-prohibited; +    /ipv6/firewall/filter/add chain=output dst-address-list=block action=reject reject-with=icmp-admin-prohibited; + +Allow packets in address-list `allow`: + +    /ipv6/firewall/filter/add chain=input src-address-list=allow action=accept; +    /ipv6/firewall/filter/add chain=forward src-address-list=allow action=accept; +    /ipv6/firewall/filter/add chain=forward dst-address-list=allow action=accept; +    /ipv6/firewall/filter/add chain=output dst-address-list=allow action=accept; + +Drop packets in firewall's raw section: + +    /ipv6/firewall/raw/add chain=prerouting src-address-list=block action=drop; +    /ipv6/firewall/raw/add chain=prerouting dst-address-list=block action=drop; +    /ipv6/firewall/raw/add chain=output dst-address-list=block action=drop; + +> ⚠️ **Warning**: Just again... The order of firewall rules is important. Make +> sure they actually take effect as expected! + +See also +-------- + +* [Certificate name from browser](../CERTIFICATES.md) +  ---  [⬅️ Go back to main README](../README.md)    [⬆️ Go back to top](#top) diff --git a/doc/global-wait.md b/doc/global-wait.md index 39921db..799cae7 100644 --- a/doc/global-wait.md +++ b/doc/global-wait.md @@ -1,6 +1,13 @@  Wait for global functions and modules  ===================================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base diff --git a/doc/gps-track.md b/doc/gps-track.md index 721b075..5e4878f 100644 --- a/doc/gps-track.md +++ b/doc/gps-track.md @@ -1,6 +1,13 @@  Send GPS position to server  =========================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base diff --git a/doc/hotspot-to-wpa.md b/doc/hotspot-to-wpa.md index 4909eef..a2e9748 100644 --- a/doc/hotspot-to-wpa.md +++ b/doc/hotspot-to-wpa.md @@ -1,5 +1,12 @@ -Use WPA2 network with hotspot credentials -========================================= +Use WPA network with hotspot credentials +======================================== + +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)  [⬅️ Go back to main README](../README.md) @@ -10,23 +17,24 @@ Description  -----------  RouterOS supports an unlimited number of MAC address specific passphrases -for WPA2 encrypted wifi networks via access list. The idea of this script -is to transfer hotspot credentials to MAC address specific WPA2 passphrase. +for WPA encrypted wifi networks via access list. The idea of this script +is to transfer hotspot credentials to MAC address specific WPA passphrase.  Requirements and installation  ----------------------------- -You need a properly configured hotspot on one (open) SSID and a WP2 enabled +You need a properly configured hotspot on one (open) SSID and a WPA enabled  SSID with suffix "`-wpa`". -Then install the script. Depending on whether you use `wifiwave2` package -(`/interface/wifiwave2`) or legacy wifi with CAPsMAN (`/caps-man`) you need -to install a different script and set it as `on-login` script in hotspot. +Then install the script. +Depending on whether you use `wifi` package (`/interface/wifi`)or legacy +wifi with CAPsMAN (`/caps-man`) you need to install a different script and +set it as `on-login` script in hotspot. -For `wifiwave2`: +For `wifi`: -    $ScriptInstallUpdate hotspot-to-wpa.wifiwave2; -    /ip/hotspot/user/profile/set on-login="hotspot-to-wpa.wifiwave2" [ find ]; +    $ScriptInstallUpdate hotspot-to-wpa.wifi; +    /ip/hotspot/user/profile/set on-login="hotspot-to-wpa.wifi" [ find ];  For legacy CAPsMAN: @@ -39,10 +47,10 @@ With just `hotspot-to-wpa` installed the mac addresses will last in the  access list forever. Install the optional script for automatic cleanup  and add a scheduler. -For `wifiwave2`: +For `wifi`: -    $ScriptInstallUpdate hotspot-to-wpa-cleanup.wifiwave2,lease-script; -    /system/scheduler/add interval=1d name=hotspot-to-wpa-cleanup on-event="/system/script/run hotspot-to-wpa-cleanup.wifiwave2;" start-time=startup; +    $ScriptInstallUpdate hotspot-to-wpa-cleanup.wifi,lease-script;  +    /system/scheduler/add interval=1d name=hotspot-to-wpa-cleanup on-event="/system/script/run hotspot-to-wpa-cleanup.wifi;" start-time=startup;  For legacy CAPsMAN: @@ -78,17 +86,17 @@ Additional information is not available, including the password.  Additionally templates can be created to give more options for access list:  * `action`: set to `reject` to ignore logins on that hotspot -* `private-passphrase`: do **not** use passphrase from hotspot's user -  credentials, but given one - or unset (use default passphrase) with -  special word `ignore` +* `passphrase` or `private-passphrase`: do **not** use passphrase from +  hotspot's user credentials, but given one - or unset (use default +  passphrase) with special word `ignore`  * `ssid-regexp`: set a different SSID regular expression to match  * `vlan-id`: connect device to specific VLAN  * `vlan-mode`: set the VLAN mode for device -For a hotspot called `example` the template could look like this. For -`wifiwave2`: +For a hotspot called `example` the template could look like this. +For `wifi`: -    /interface/wifiwave2/access-list/add comment="hotspot-to-wpa template example" disabled=yes private-passphrase="ignore" ssid-regexp="^example\$" vlan-id=10; +    /interface/wifi/access-list/add comment="hotspot-to-wpa template example" disabled=yes passphrase="ignore" ssid-regexp="^example\$" vlan-id=10;  For legacy CAPsMAN: @@ -103,7 +111,7 @@ Usage and invocation  --------------------  Now let the users connect and login to the hotspot. After that the devices -(identified by MAC address) can connect to the WPA2 network, using the +(identified by MAC address) can connect to the WPA network, using the  passphrase from hotspot credentials.  See also diff --git a/doc/ip-addr-bridge.md b/doc/ip-addr-bridge.md index a759829..f9f98e3 100644 --- a/doc/ip-addr-bridge.md +++ b/doc/ip-addr-bridge.md @@ -1,6 +1,13 @@  Manage IP addresses with bridge status  ====================================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  Description diff --git a/doc/ipsec-to-dns.md b/doc/ipsec-to-dns.md index 04500a3..123656c 100644 --- a/doc/ipsec-to-dns.md +++ b/doc/ipsec-to-dns.md @@ -1,6 +1,13 @@  Create DNS records for IPSec peers  ================================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base diff --git a/doc/ipv6-update.md b/doc/ipv6-update.md index f49cfaa..1f009b1 100644 --- a/doc/ipv6-update.md +++ b/doc/ipv6-update.md @@ -1,6 +1,13 @@  Update configuration on IPv6 prefix change  ========================================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base @@ -38,13 +45,17 @@ Installing [ppp-on-up](ppp-on-up.md) may solve this.  Configuration  ------------- -An address list entry is updated with current prefix and can be used in -firewall rules, comment has to be "`ipv6-pool-`" and actual pool name: +As an address-list entry is mandatory a dynamic one is created automatically. +It is updated with current prefix and can be used in firewall rules. + +Alternatively a static address-list entry can be used, where comment has to +be "`ipv6-pool-`" and actual pool name. Use what ever list is desired, and +create it with:      /ipv6/firewall/address-list/add address=2003:cf:2f0f:de00::/56 comment=ipv6-pool-isp list=extern; -As this entry is mandatory it is created automatically if it does not exist, -with the comment also set for list. +If the dynamic entry exists already you need to remove it before creating +the static one..  Address list entries for specific interfaces can be updated as well. The  interface needs to get its address from pool `isp` and the address list entry diff --git a/doc/lease-script.md b/doc/lease-script.md index 55928fc..f83c383 100644 --- a/doc/lease-script.md +++ b/doc/lease-script.md @@ -1,6 +1,13 @@  Run other scripts on DHCP lease  =============================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base @@ -40,7 +47,7 @@ See also  * [Collect MAC addresses in wireless access list](collect-wireless-mac.md)  * [Comment DHCP leases with info from access list](dhcp-lease-comment.md)  * [Create DNS records for DHCP leases](dhcp-to-dns.md) -* [Use WPA2 network with hotspot credentials](hotspot-to-wpa.md) +* [Use WPA network with hotspot credentials](hotspot-to-wpa.md)  ---  [⬅️ Go back to main README](../README.md)   diff --git a/doc/leds-mode.md b/doc/leds-mode.md index 5710d85..a194396 100644 --- a/doc/leds-mode.md +++ b/doc/leds-mode.md @@ -1,6 +1,13 @@  Manage LEDs dark mode  ===================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  Description diff --git a/doc/log-forward.md b/doc/log-forward.md index 43ae897..f6086c8 100644 --- a/doc/log-forward.md +++ b/doc/log-forward.md @@ -1,6 +1,13 @@  Forward log messages via notification  ===================================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base @@ -15,15 +22,15 @@ server (see `/system/logging`). This has some limitation, however:  * does not work early after boot if network connectivity is not    yet established, or breaks intermittently  * lots of messages generate a flood of mails -* Matrix and Telegram are not supported +* Gotify, Matrix, Ntfy and Telegram are not supported  The script works around the limitations, for example it does:  * read from `/log`, including messages from early boot  * skip multi-repeated messages  * rate-limit itself to mitigate flooding -* forward via notification (which includes *e-mail*, *Matrix* and *Telegram* -  when installed and configured, see below) +* forward via notification (which includes *e-mail*, *Gotify*, *Matrix*, +  *Ntfy* and *Telegram* when installed and configured, see below)  It is intended to be run periodically from scheduler, then collects new  log messages and forwards them via notification. @@ -46,6 +53,12 @@ Just install the script:  Configuration  ------------- +The default configuration should provide reasonable presets, filtering +*info*, and effectively forwarding *warning* and *error*. + +> 💡️ **Hint**: Please try with defaults first, especially if you are not +> familiar with regular expressions! +  The configuration goes to `global-config-overlay`, these are the parameters:  * `LogForwardFilter`: define topics *not* to be forwarded @@ -59,7 +72,7 @@ The configuration goes to `global-config-overlay`, these are the parameters:  > your local `global-config-overlay` and modify it to your specific needs.  These patterns are matched as -[regular expressions](https://wiki.mikrotik.com/wiki/Manual:Regular_Expressions). +[regular expressions ↗️](https://wiki.mikrotik.com/wiki/Manual:Regular_Expressions).  To forward **all** (ignoring severity) log messages with topics `account`  (which includes user logins) and `dhcp` you need something like: @@ -67,7 +80,9 @@ To forward **all** (ignoring severity) log messages with topics `account`  Also notification settings are required for  [e-mail](mod/notification-email.md), -[matrix](mod/notification-matrix.md) and/or +[gotify](mod/notification-gotify.md), +[matrix](mod/notification-matrix.md), +[ntfy](mod/notification-ntfy.md) and/or  [telegram](mod/notification-telegram.md).  Tips & Tricks diff --git a/doc/mod/bridge-port-to.md b/doc/mod/bridge-port-to.md index a956de4..629c526 100644 --- a/doc/mod/bridge-port-to.md +++ b/doc/mod/bridge-port-to.md @@ -1,6 +1,13 @@  Manage ports in bridge  ====================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../../README.md)  > ℹ️️ **Info**: This module can not be used on its own but requires the base diff --git a/doc/mod/bridge-port-vlan.md b/doc/mod/bridge-port-vlan.md index 068f050..cf29199 100644 --- a/doc/mod/bridge-port-vlan.md +++ b/doc/mod/bridge-port-vlan.md @@ -1,6 +1,13 @@  Manage VLANs on bridge ports  ============================ +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../../README.md)  > ℹ️️ **Info**: This module can not be used on its own but requires the base diff --git a/doc/mod/inspectvar.md b/doc/mod/inspectvar.md index 1cc49a2..7daba15 100644 --- a/doc/mod/inspectvar.md +++ b/doc/mod/inspectvar.md @@ -1,6 +1,13 @@  Inspect variables  ================= +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../../README.md)  > ℹ️️ **Info**: This module can not be used on its own but requires the base diff --git a/doc/mod/ipcalc.md b/doc/mod/ipcalc.md index f2f1140..c07853e 100644 --- a/doc/mod/ipcalc.md +++ b/doc/mod/ipcalc.md @@ -1,6 +1,13 @@  IP address calculation  ====================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../../README.md)  > ℹ️️ **Info**: This module can not be used on its own but requires the base diff --git a/doc/mod/notification-email.md b/doc/mod/notification-email.md index 8dc2ecf..127bf96 100644 --- a/doc/mod/notification-email.md +++ b/doc/mod/notification-email.md @@ -1,6 +1,13 @@  Send notifications via e-mail  ============================= +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../../README.md)  > ℹ️️ **Info**: This module can not be used on its own but requires the base @@ -25,7 +32,7 @@ Configuration  -------------  Set up your device's -[e-mail settings](https://wiki.mikrotik.com/wiki/Manual:Tools/email). +[e-mail settings ↗️](https://wiki.mikrotik.com/wiki/Manual:Tools/email).  Also make sure the device has correct time configured, best is to set up  the ntp client. @@ -51,12 +58,12 @@ will now send it to your e-mail account.  But of course you can use the function to send notifications directly. Give  it a try: -    $SendEMail "Subject..." "Body..." +    $SendEMail "Subject..." "Body...";  Alternatively this sends a notification with all available and configured  methods: -    $SendNotification "Subject..." "Body..." +    $SendNotification "Subject..." "Body...";  To use the functions in your own scripts you have to declare them first.  Place this before you call them: @@ -72,7 +79,9 @@ function available:  See also  -------- +* [Send notifications via Gotify](notification-gotify.md)  * [Send notifications via Matrix](notification-matrix.md) +* [Send notifications via Ntfy](notification-ntfy.md)  * [Send notifications via Telegram](notification-telegram.md)  --- diff --git a/doc/mod/notification-gotify.d/appsetup.avif b/doc/mod/notification-gotify.d/appsetup.avifBinary files differ new file mode 100644 index 0000000..58f57a8 --- /dev/null +++ b/doc/mod/notification-gotify.d/appsetup.avif diff --git a/doc/mod/notification-gotify.md b/doc/mod/notification-gotify.md new file mode 100644 index 0000000..6fce629 --- /dev/null +++ b/doc/mod/notification-gotify.md @@ -0,0 +1,97 @@ +Send notifications via Gotify +=========================== + +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../../README.md) + +> ℹ️️ **Info**: This module can not be used on its own but requires the base +> installation. See [main README](../../README.md) for details. + +Description +----------- + +This module adds support for sending notifications via +[Gotify ↗️](https://gotify.net/). A queue is used to make sure +notifications are not lost on failure but sent later. + +Requirements and installation +----------------------------- + +Just install the module: + +    $ScriptInstallUpdate mod/notification-gotify; + +Also deploy the [Gotify server ↗️](https://github.com/gotify/server) and +optionally install a Gotify client on your mobile device. + +Configuration +------------- + +Follow the [Installation ↗️](https://gotify.net/docs/install) instructions +and the [First Login ↗️](https://gotify.net/docs/first-login) setup. Once +you have a user and account you can start creating apps. Each app is an +independent notification feed for a device or application. + + +  +On creation apps are assigned a *Token* for authentification, you will need +that in configuration. + +Edit `global-config-overlay`, add `GotifyServer` with your server address +(just the address, no protocol - `https://` is assumed) and `GotifyToken` +with the *Token* from your configured app on the Gotify server. Then reload +the configuration. + +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. + +For a custom service installing an additional certificate may be required. +You may want to install that certificate manually, after finding the +[certificate name from browser](../../CERTIFICATES.md). + +Usage and invocation +-------------------- + +There's nothing special to do. Every script or function sending a notification +will now send it to your Gotify application feed. + +But of course you can use the function to send notifications directly. Give +it a try: + +    $SendGotify "Subject..." "Body..."; + +Alternatively this sends a notification with all available and configured +methods: + +    $SendNotification "Subject..." "Body..."; + +To use the functions in your own scripts you have to declare them first. +Place this before you call them: + +    :global SendGotify; +    :global SendNotification; + +In case there is a situation when the queue needs to be purged there is a +function available: + +    $PurgeGotifyQueue; + +See also +-------- + +* [Certificate name from browser](../../CERTIFICATES.md) +* [Send notifications via e-mail](notification-email.md) +* [Send notifications via Matrix](notification-matrix.md) +* [Send notifications via Ntfy](notification-ntfy.md) +* [Send notifications via Telegram](notification-telegram.md) + +--- +[⬅️ Go back to main README](../../README.md)   +[⬆️ Go back to top](#top) diff --git a/doc/mod/notification-matrix.d/01-authenticate.avif b/doc/mod/notification-matrix.d/01-authenticate.avifBinary files differ new file mode 100644 index 0000000..b897943 --- /dev/null +++ b/doc/mod/notification-matrix.d/01-authenticate.avif diff --git a/doc/mod/notification-matrix.d/01-home-server.avif b/doc/mod/notification-matrix.d/01-home-server.avifBinary files differ deleted file mode 100644 index 683c7b5..0000000 --- a/doc/mod/notification-matrix.d/01-home-server.avif +++ /dev/null diff --git a/doc/mod/notification-matrix.d/02-access-token.avif b/doc/mod/notification-matrix.d/02-access-token.avifBinary files differ deleted file mode 100644 index 54109a6..0000000 --- a/doc/mod/notification-matrix.d/02-access-token.avif +++ /dev/null diff --git a/doc/mod/notification-matrix.d/02-join-room.avif b/doc/mod/notification-matrix.d/02-join-room.avifBinary files differ new file mode 100644 index 0000000..ad99ffd --- /dev/null +++ b/doc/mod/notification-matrix.d/02-join-room.avif diff --git a/doc/mod/notification-matrix.d/03-join-room.avif b/doc/mod/notification-matrix.d/03-join-room.avifBinary files differ deleted file mode 100644 index 45974b8..0000000 --- a/doc/mod/notification-matrix.d/03-join-room.avif +++ /dev/null diff --git a/doc/mod/notification-matrix.md b/doc/mod/notification-matrix.md index ab8efc9..da6d6de 100644 --- a/doc/mod/notification-matrix.md +++ b/doc/mod/notification-matrix.md @@ -1,6 +1,13 @@  Send notifications via Matrix  ============================= +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../../README.md)  > ℹ️️ **Info**: This module can not be used on its own but requires the base @@ -10,7 +17,7 @@ Description  -----------  This module adds support for sending notifications via -[Matrix](https://matrix.org/) via client server api. A queue is used to +[Matrix ↗️](https://matrix.org/) via client server api. A queue is used to  make sure notifications are not lost on failure but sent later.  Requirements and installation @@ -21,8 +28,8 @@ Just install the module:      $ScriptInstallUpdate mod/notification-matrix;  Also install a Matrix client on at least one of your mobile and/or desktop -devices. As there is no privilege separation you should create a dedicated -notification account, in addition to your general user account. +devices. Create and setup an account there, we will reference that as +"*general account*" later.  Configuration  ------------- @@ -35,58 +42,62 @@ reload the configuration.  > [`global-config`](../../global-config.rsc) (the one without `-overlay`) to  > your local `global-config-overlay` and modify it to your specific needs. -### Home server +The Matrix server is connected via encrypted https, and certificate +verification is applied. So make sure you have the certificate chain for +your server in device's certificate store. -Matrix user accounts are identified by a unique user id in the form of -`@localpart:domain`. The `domain` part is not necessarily your home server -address, you have to resolve it with the procedure described in the -[Matrix specification](https://spec.matrix.org/latest/client-server-api/#server-discovery). +The example below is for `matrix.org`, which uses a trust chain from *Google +Trust Services*. Run this to import the required certificate: + +    $CertificateAvailable "GTS Root R4"; -Your best bet is to query the server at `domain` with the -[well-known uri](https://spec.matrix.org/latest/client-server-api/#well-known-uri). -For "*matrix.org*" this query is: +Replace the CA certificate name with what ever is needed for your server. +You may want to find the +[certificate name from browser](../../CERTIFICATES.md). -    /tool/fetch "https://matrix.org/.well-known/matrix/client" output=user; +### From other device - +If you have setup your Matrix *notification account* before just reuse that. +Copy the relevant configuration to the device to be configured. -So the home server for "*matrix.org*" is "*matrix-client.matrix.org*". -Please strip the protocol ("*https://*") for `MatrixHomeServer` if given. +### Setup new account -### Access token +As there is no privilege separation you should create a dedicated account +for use with these scripts, in addition to your *general account*. +We will reference that as "*notification account*" in the following steps. -After discovering the correct home server an access token has to be created. -For this the login credentials (username and password) of the notification -account must be sent to the home server via -[client server api](https://matrix.org/docs/guides/client-server-api#login). +#### Authenticate + +Matrix user accounts are identified by a unique user id in the form of +`@localpart:domain`. Use that and your password to generate an access token +and write first part of the configuration: -We use the home server discovered above, "*matrix-client.matrix.org*". -The user is "*example*" and password is "*v3ry-s3cr3t*". +    $SetupMatrixAuthenticate "@example:matrix.org" "v3ry-s3cr3t"; -    /tool/fetch "https://matrix-client.matrix.org/_matrix/client/r0/login" http-method=post http-data="{\"type\":\"m.login.password\", \"user\":\"example\", \"password\":\"v3ry-s3cr3t\"}" output=user; + - +The configuration is written to a new configuration snippet +`global-config-overlay.d/mod/notification-matrix`. -The server replied with a JSON object containing the `access_token`, use that -for `MatrixAccessToken`. +#### Join Room -### Room +Every Matix chat is a room, so we have to create one. Do that with your +*general account*, this makes sure your *general account* is the room owner. +Then join the room and invite the *notification account* by its user id +"*@example:matrix.org*". +Look up the *room id* within the Matrix client, it should read like +"*!WUcxpSjKyxSGelouhA:matrix.org*" (starting with an exclamation mark and +ending with the domain). -Every Matix chat is a room, so we have to create one. Do so with your general -user, this makes sure your general user is the room owner. Then join the room -and invite the notification user by its user id "*@example:matrix.org*". Look -up the room id within the Matrix client, it should read like -"*!WUcxpSjKyxSGelouhA:matrix.org*". Use that for `MatrixRoom`. +Finally make the *notification account* join into the room by accepting +the invite. -Finally join the notification user to the room by accepting the invite. Again, -this can be done with  -[client server api](https://matrix.org/docs/guides/client-server-api#joining-a-room-via-an-invite). -Make sure to replace room id ("*!*" is escaped with "*%21*") and access token -with your data. +    $SetupMatrixJoinRoom "!WUcxpSjKyxSGelouhA:matrix.org"; -    /tool/fetch "https://matrix-client.matrix.org/_matrix/client/r0/rooms/%21WUcxpSjKyxSGelouhA:matrix.org/join?access_token=yt_ZXdvcm0tdGVzdA_NNqUyvKHRhBLZmnzVVSK_0xu6yN" http-method=post http-data="" output=user; + - +The configuration is appended to the configuration snippet +`global-config-overlay.d/mod/notification-matrix`.  Usage and invocation  -------------------- @@ -97,12 +108,12 @@ will now send it to your Matrix account.  But of course you can use the function to send notifications directly. Give  it a try: -    $SendMatrix "Subject..." "Body..." +    $SendMatrix "Subject..." "Body...";  Alternatively this sends a notification with all available and configured  methods: -    $SendNotification "Subject..." "Body..." +    $SendNotification "Subject..." "Body...";  To use the functions in your own scripts you have to declare them first.  Place this before you call them: @@ -118,7 +129,10 @@ function available:  See also  -------- +* [Certificate name from browser](../../CERTIFICATES.md)  * [Send notifications via e-mail](notification-email.md) +* [Send notifications via Gotify](notification-gotify.md) +* [Send notifications via Ntfy](notification-ntfy.md)  * [Send notifications via Telegram](notification-telegram.md)  --- diff --git a/doc/mod/notification-ntfy.md b/doc/mod/notification-ntfy.md new file mode 100644 index 0000000..993501d --- /dev/null +++ b/doc/mod/notification-ntfy.md @@ -0,0 +1,99 @@ +Send notifications via Ntfy +=========================== + +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) + +[⬅️ Go back to main README](../../README.md) + +> ℹ️️ **Info**: This module can not be used on its own but requires the base +> installation. See [main README](../../README.md) for details. + +Description +----------- + +This module adds support for sending notifications via +[Ntfy ↗️](https://ntfy.sh/). A queue is used to make sure +notifications are not lost on failure but sent later. + +Requirements and installation +----------------------------- + +Just install the module: + +    $ScriptInstallUpdate mod/notification-ntfy; + +Also install the Ntfy app on your mobile device or use the +[web app ↗️](https://ntfy.sh/app) in a browser of your choice. + +Configuration +------------- + +Creating an account is not required. Just choose a topic and you are good +to go. + +> ⚠️ **Warning**: If you use ntfy without sign-up, the topic is essentially +> a password, so pick something that's not easily guessable. + +Edit `global-config-overlay`, add `NtfyServer` (leave it unchanged, unless +you are self-hosting the service) and `NtfyTopic` with your choosen topic. +Then reload the configuration. + +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. + +Using a paid account or running a server on-premises allows to add additional +basic authentication. Configure `NtfyServerUser` and `NtfyServerPass` for this. +Even authentication via access token is possible, adding it as password with +a blank username. + +Also available is `NtfyServerToken` to add a bearer token for authentication. + +For a custom service installing an additional certificate may be required. +You may want to install that certificate manually, after finding the +[certificate name from browser](../../CERTIFICATES.md). + +Usage and invocation +-------------------- + +There's nothing special to do. Every script or function sending a notification +will now send it to your Ntfy topic. + +But of course you can use the function to send notifications directly. Give +it a try: + +    $SendNtfy "Subject..." "Body..."; + +Alternatively this sends a notification with all available and configured +methods: + +    $SendNotification "Subject..." "Body..."; + +To use the functions in your own scripts you have to declare them first. +Place this before you call them: + +    :global SendNtfy; +    :global SendNotification; + +In case there is a situation when the queue needs to be purged there is a +function available: + +    $PurgeNtfyQueue; + +See also +-------- + +* [Certificate name from browser](../../CERTIFICATES.md) +* [Send notifications via e-mail](notification-email.md) +* [Send notifications via Gotify](notification-gotify.md) +* [Send notifications via Matrix](notification-matrix.md) +* [Send notifications via Telegram](notification-telegram.md) + +--- +[⬅️ Go back to main README](../../README.md)   +[⬆️ Go back to top](#top) diff --git a/doc/mod/notification-telegram.d/getchatid.avif b/doc/mod/notification-telegram.d/getchatid.avifBinary files differ new file mode 100644 index 0000000..7792969 --- /dev/null +++ b/doc/mod/notification-telegram.d/getchatid.avif diff --git a/doc/mod/notification-telegram.md b/doc/mod/notification-telegram.md index 89659c8..804104f 100644 --- a/doc/mod/notification-telegram.md +++ b/doc/mod/notification-telegram.md @@ -1,6 +1,13 @@  Send notifications via Telegram  =============================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../../README.md)  > ℹ️️ **Info**: This module can not be used on its own but requires the base @@ -10,7 +17,7 @@ Description  -----------  This module adds support for sending notifications via -[Telegram](https://telegram.org/) via bot api. A queue is used to make sure +[Telegram ↗️](https://telegram.org/) via bot api. A queue is used to make sure  notifications are not lost on failure but sent later.  Requirements and installation @@ -26,19 +33,26 @@ and create an account.  Configuration  ------------- -Open Telegram, then start a chat with [BotFather](https://t.me/BotFather) and +Open Telegram, then start a chat with [BotFather ↗️](https://t.me/BotFather) and  create your own bot:   -Now open a chat with your bot and start it by clicking the `START` button. +Set that token from *BotFather* (use your own!) to `TelegramTokenId`, for +now just temporarily: + +    :set TelegramTokenId "5214364459:AAHLwf1o7ybbKDo6pY24Kd2bZ5rjCakDXTc"; + +Now open a chat with your bot and start it by clicking the `START` button, +then send your first message. Any text will do. On your device run +`$GetTelegramChatId` to retrieve the chat id: -Open just another chat with [GetIDs Bot](https://t.me/getidsbot), again start -with the `START` button. It will send you some information, including the -`id`, just below `You`. +    $GetTelegramChatId; + +  Finally edit `global-config-overlay`, add `TelegramTokenId` with the token -from *BotFather* and `TelegramChatId` with your id from *GetIDs Bot*. Then +from *BotFather* and `TelegramChatId` with your retrieved chat id. Then  reload the configuration.  > ℹ️ **Info**: Copy relevant configuration from @@ -47,9 +61,13 @@ reload the configuration.  ### Notifications to a group -Sending notifications to a group is possible as well. Add your bot and the -*GetIDs Bot* to a group, then use the group's id (which starts with a dash) -for `TelegramChatId`. Then remove *GetIDs Bot* from group. +Sending notifications to a group is possible as well. Add your bot to a group +and make it an admin (required for read access!) and send a message and run +`$GetTelegramChatId` again. Then use that chat id (which starts with a dash) +for `TelegramChatId`. + +Groups can enable the `Topics` feature. Use `TelegramThreadId` to send to a +specific topic in a group.  Usage and invocation  -------------------- @@ -60,12 +78,12 @@ will now send it to your Telegram account.  But of course you can use the function to send notifications directly. Give  it a try: -    $SendTelegram "Subject..." "Body..." +    $SendTelegram "Subject..." "Body...";  Alternatively this sends a notification with all available and configured  methods: -    $SendNotification "Subject..." "Body..." +    $SendNotification "Subject..." "Body...";  To use the functions in your own scripts you have to declare them first.  Place this before you call them: @@ -84,7 +102,7 @@ Tips & Tricks  ### Set a profile photo  You can use a profile photo for your bot to make it recognizable. Open the -chat with [BotFather](https://t.me/BotFather) and set it there. +chat with [BotFather ↗️](https://t.me/BotFather) and set it there.   @@ -97,7 +115,9 @@ See also  * [Chat with your router and send commands via Telegram bot](../telegram-chat.md)  * [Send notifications via e-mail](notification-email.md) +* [Send notifications via Gotify](notification-gotify.md)  * [Send notifications via Matrix](notification-matrix.md) +* [Send notifications via Ntfy](notification-ntfy.md)  ---  [⬅️ Go back to main README](../../README.md)   diff --git a/doc/mod/scriptrunonce.md b/doc/mod/scriptrunonce.md index 895c20c..955d12e 100644 --- a/doc/mod/scriptrunonce.md +++ b/doc/mod/scriptrunonce.md @@ -1,6 +1,13 @@  Download script and run it once  =============================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../../README.md)  > ℹ️️ **Info**: This module can not be used on its own but requires the base diff --git a/doc/mod/ssh-keys-import.md b/doc/mod/ssh-keys-import.md index cf28ee2..49276d0 100644 --- a/doc/mod/ssh-keys-import.md +++ b/doc/mod/ssh-keys-import.md @@ -1,6 +1,13 @@  Import ssh keys for public key authentication  ============================================= +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../../README.md)  > ℹ️️ **Info**: This module can not be used on its own but requires the base @@ -27,15 +34,16 @@ Usage and invocation  Call the function `$SSHKeysImport` with key and user as parameter to  import that key: -    $SSHKeysImport "ssh-rsa AAAAB3Nza...QYZk8= user" admin; - -Starting with RouterOS *7.12beta1* support for keys of type `ed25519` has -been added: -      $SSHKeysImport "ssh-ed25519 AAAAC3Nza...ZVugJT user" admin; +    $SSHKeysImport "ssh-rsa AAAAB3Nza...QYZk8= user" admin;  The third part of the key (`user` in this example) is inherited as -`key-owner` in RouterOS. +`key-owner` in RouterOS (or `info` starting with RouterOS 7.21beta2). Also +the `MD5` fingerprint is recorded, this helps to audit and verify the +available keys. + +> ℹ️️ **Info**: Use `ssh-keygen` to show a fingerprint of an existing public +> key file: `ssh-keygen -l -E md5 -f ~/.ssh/id_ed25519.pub`  ### Import several keys from file diff --git a/doc/mode-button.md b/doc/mode-button.md index 6374b83..be15bc9 100644 --- a/doc/mode-button.md +++ b/doc/mode-button.md @@ -1,6 +1,13 @@  Mode button with multiple presses  ================================= +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base @@ -52,7 +59,7 @@ Configuration  The configuration goes to `global-config-overlay`, these are the parameters:  * `ModeButton`: an array with defined actions -* `ModeButtonLED`: led to give visual feedback +* `ModeButtonLED`: led to give visual feedback, `type` must be `on` or `off`  > ℹ️ **Info**: Copy relevant configuration from  > [`global-config`](../global-config.rsc) (the one without `-overlay`) to diff --git a/doc/netwatch-dns.md b/doc/netwatch-dns.md index a208d00..0d94918 100644 --- a/doc/netwatch-dns.md +++ b/doc/netwatch-dns.md @@ -1,6 +1,13 @@  Manage DNS and DoH servers from netwatch  ======================================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base @@ -43,12 +50,25 @@ Giving a specific query url for DoH is possible:  Note that using a name in DoH url may introduce a chicken-and-egg issue! -Importing a certificate automatically is possible, at least if available in -the repository (see `certs` sub directory). +Adding a static DNS record has the same result for the url, but always +resolves to the same address. + +    /ip/dns/static/add name="cloudflare-dns.com" address=1.1.1.1; +    /tool/netwatch/add comment="doh" host=1.1.1.1; + +Be aware that you have to keep the ip address in sync with real world +manually! + +Importing a certificate automatically is possible. You may want to find the +[certificate name from browser](../CERTIFICATES.md). + +    /tool/netwatch/add comment="doh, doh-cert=DigiCert Global Root G2" host=1.1.1.1; +    /tool/netwatch/add comment="doh, doh-cert=DigiCert Global Root G3" host=9.9.9.9; +    /tool/netwatch/add comment="doh, doh-cert=GTS Root R1" host=8.8.8.8; -    /tool/netwatch/add comment="doh, doh-cert=DigiCert TLS Hybrid ECC SHA384 2020 CA1" host=1.1.1.1; -    /tool/netwatch/add comment="doh, doh-cert=DigiCert TLS Hybrid ECC SHA384 2020 CA1" host=9.9.9.9; -    /tool/netwatch/add comment="doh, doh-cert=GTS CA 1C3" host=8.8.8.8; +> ⚠️ **Warning**: Combining these techniques can cause some confusion and +> troubles! Chances are that a service uses different certificates based +> on indicated server name.  Sometimes using just one specific (possibly internal) DNS server may be  desired, with fallback in case it fails. This is possible as well: @@ -71,6 +91,7 @@ Also this allows to update host address, see option `resolve`.  See also  -------- +* [Certificate name from browser](../CERTIFICATES.md)  * [Notify on host up and down](netwatch-notify.md)  --- diff --git a/doc/netwatch-notify.md b/doc/netwatch-notify.md index 6df233b..91c568f 100644 --- a/doc/netwatch-notify.md +++ b/doc/netwatch-notify.md @@ -1,6 +1,13 @@  Notify on host up and down  ========================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base @@ -40,7 +47,9 @@ The hosts to be checked have to be added to netwatch with specific comment:  Also notification settings are required for  [e-mail](mod/notification-email.md), -[matrix](mod/notification-matrix.md) and/or +[gotify](mod/notification-gotify.md), +[matrix](mod/notification-matrix.md), +[ntfy](mod/notification-ntfy.md) and/or  [telegram](mod/notification-telegram.md).  ### Hooks @@ -58,9 +67,9 @@ notification is sent.  Getting the escaping right may be troublesome. Please consider adding a  script in `/system/script`, then running that from hook. -### Count threshould +### Count threshold -The count threshould (default is 5 checks) is configurable as well: +The count threshold (default is 5 checks) is configurable as well:      /tool/netwatch/add comment="notify, name=example.com, count=10" host=104.18.144.11; @@ -73,18 +82,23 @@ suppress notification if the parent host is down:      /tool/netwatch/add comment="notify, name=example.com, parent=gateway" host=93.184.216.34;  Note that every configured parent in a chain increases the check count -threshould by one. +threshold by one.  ### Update from DNS  The host address can be updated dynamically. Give extra parameter `resolve`  with a resolvable name: -    /tool/netwatch/add comment="notify, name=example.com, resolve=example.com"; +    /tool/netwatch/add comment="notify, name=example.com, resolve=example.com" host=0.0; + +This supports multiple A records for a name just fine, even a CNAME +to those. An update happens only if no more record with the configured host +address is found. + +The address family is preserved, so if you want AAAA records (for IPv6) +use this: -But be warned: Dynamic updates will probably cause issues if the name has -more than one record in dns - a high rate of configuration changes (and flash -writes) at least. +    /tool/netwatch/add comment="notify, name=example.com, resolve=example.com" host=::;  ### No notification on host down @@ -96,6 +110,15 @@ powered off, but accessibility is of interest.  Go and get your coffee ☕️ before sending the print job. +### No log on failed resolve + +A message is writting to log after three failed attemts to resolve a host. +However this can cause some noise for hosts that are expected to have +failures, for example when the name is dynamically added by +[`dhcp-to-dns`](dhcp-to-dns.md). This can be suppressed: + +    /tool/netwatch/add comment="notify, name=client, resolve=client.dhcp.example.com, no-resolve-fail" host=10.0.0.0; +  ### Add a note in notification  For some extra information it is possible to add a text note. This is @@ -103,6 +126,13 @@ included verbatim into the notification.      /tool/netwatch/add comment="notify, name=example, note=Do not touch!" host=10.0.0.31; +### Add a link in notification + +It is possible to add a link in notification, that is added below the +formatted notification text. + +    /tool/netwatch/add comment="notify, name=example.com, resolve=example.com, link=https://example.com/" host=0.0; +  Tips & Tricks  ------------- diff --git a/doc/ospf-to-leds.md b/doc/ospf-to-leds.md index ce7f9ff..3694d35 100644 --- a/doc/ospf-to-leds.md +++ b/doc/ospf-to-leds.md @@ -1,6 +1,13 @@  Visualize OSPF state via LEDs  ============================= +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base diff --git a/doc/packages-update.md b/doc/packages-update.md index 653d233..a0a1795 100644 --- a/doc/packages-update.md +++ b/doc/packages-update.md @@ -1,6 +1,13 @@  Manage system update  ==================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base @@ -34,6 +41,21 @@ Just install the script:  It is automatically run by [check-routeros-update](check-routeros-update.md)  if available. +Configuration +------------- + +The configuration goes to `global-config-overlay`, this is the only parameter: + +* `PackagesUpdateDeferReboot`: defer the reboot for night (between 3 AM and +  5 AM), use a numerical value in days suffixed with a `d` to defer further + +By modifying the scheduler's `start-time` you can force the reboot at +different time. + +> ℹ️ **Info**: Copy relevant configuration from +> [`global-config`](../global-config.rsc) (the one without `-overlay`) to +> your local `global-config-overlay` and modify it to your specific needs. +  Usage and invocation  -------------------- diff --git a/doc/ppp-on-up.md b/doc/ppp-on-up.md index d5d0ae5..305afc1 100644 --- a/doc/ppp-on-up.md +++ b/doc/ppp-on-up.md @@ -1,6 +1,13 @@  Run scripts on ppp connection  ============================= +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base diff --git a/doc/sms-action.md b/doc/sms-action.md index 3391902..b696c85 100644 --- a/doc/sms-action.md +++ b/doc/sms-action.md @@ -1,6 +1,13 @@  Act on received SMS  =================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base diff --git a/doc/sms-forward.md b/doc/sms-forward.md index a323157..0c1317d 100644 --- a/doc/sms-forward.md +++ b/doc/sms-forward.md @@ -1,6 +1,13 @@  Forward received SMS  ==================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base @@ -40,7 +47,8 @@ The configuration goes to `global-config-overlay`, this is the only parameter:  * `SmsForwardHooks`: an array with pre-defined hooks, where each hook consists    of `match` (which is matched against the received message), `allowed-number`    (which is matched against the sending phone number or name) and `command`. -  For `match` and `allowed-number` regular expressions are supported. +  For `match` and `allowed-number` regular expressions are supported. Actual +  phone number (`$Phone`) and message (`$Message`) are available for the hook.  > ℹ️ **Info**: Copy relevant configuration from  > [`global-config`](../global-config.rsc) (the one without `-overlay`) to @@ -48,7 +56,9 @@ The configuration goes to `global-config-overlay`, this is the only parameter:  Notification settings are required for  [e-mail](mod/notification-email.md), -[matrix](mod/notification-matrix.md) and/or +[gotify](mod/notification-gotify.md), +[matrix](mod/notification-matrix.md), +[ntfy](mod/notification-ntfy.md) and/or  [telegram](mod/notification-telegram.md).  Tips & Tricks diff --git a/doc/super-mario-theme.md b/doc/super-mario-theme.md index b3100e8..c72f220 100644 --- a/doc/super-mario-theme.md +++ b/doc/super-mario-theme.md @@ -1,6 +1,13 @@  Play Super Mario theme  ====================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  Description diff --git a/doc/telegram-chat.d/01-chat-specific.avif b/doc/telegram-chat.d/01-chat-specific.avifBinary files differ index 387dc3a..ab75f78 100644 --- a/doc/telegram-chat.d/01-chat-specific.avif +++ b/doc/telegram-chat.d/01-chat-specific.avif diff --git a/doc/telegram-chat.d/02-chat-all.avif b/doc/telegram-chat.d/02-chat-all.avifBinary files differ index 32fc181..ed1a389 100644 --- a/doc/telegram-chat.d/02-chat-all.avif +++ b/doc/telegram-chat.d/02-chat-all.avif diff --git a/doc/telegram-chat.d/03-reply.avif b/doc/telegram-chat.d/03-reply.avifBinary files differ new file mode 100644 index 0000000..515853e --- /dev/null +++ b/doc/telegram-chat.d/03-reply.avif diff --git a/doc/telegram-chat.md b/doc/telegram-chat.md index 391042d..1e6f70f 100644 --- a/doc/telegram-chat.md +++ b/doc/telegram-chat.md @@ -1,6 +1,13 @@  Chat with your router and send commands via Telegram bot  ======================================================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base @@ -46,6 +53,8 @@ parameters:  Usage and invocation  -------------------- +### Activating device(s) +  This script is capable of chatting with multiple devices. By default a  device is passive and not acting on messages. To activate it send a message  containing `! identity` (exclamation mark, optional space and system's @@ -63,6 +72,21 @@ act on your commands.  Send a single exclamation mark or non-existent identity to make all  devices passive again. +### Reply to message + +Let's assume you received a message from a device before, and want to send +a command to that device. No need to activate it, you can just reply to +that message. + + + +Associated messages are cleared on device reboot. + +### Ask for devices + +Send a message with a single question mark (`?`) to query for devices +currenty online. The answer can be used for command via reply then. +  Known limitations  ----------------- @@ -83,6 +107,14 @@ scripting capabilities. Try to print what you want to act on...      /ip/address/remove [ find where interface=eth ]; +What does work is using the persistent ids: + +    /ip/address/print show-ids; + +The output contains an id starting with asterisk that can be used: + +    /ip/address/remove *E; +  ### Mind command runtime  The command is run in background while the script waits for it - about @@ -98,9 +130,8 @@ send information on its own. Something like this should do the job:  ### Output size -RouterOS is limited in reading file content to a size of about four -kilobytes. Reading larger files does just fail, and that is also the limit -for command output. +Telegram messages have a limit of 4096 characters. If output is too large it +is truncated, and a warning is added to the message.  ### Sending commands to a group diff --git a/doc/unattended-lte-firmware-upgrade.md b/doc/unattended-lte-firmware-upgrade.md index 8bc9e71..cb96aa1 100644 --- a/doc/unattended-lte-firmware-upgrade.md +++ b/doc/unattended-lte-firmware-upgrade.md @@ -1,6 +1,13 @@  Install LTE firmware upgrade  ============================ +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  Description @@ -12,6 +19,7 @@ This script upgrades LTE firmware on compatible devices:  * R11e-LTE-US  * R11e-4G  * R11e-LTE6 +* ... and more - probably what ever Mikrotik builds into their devices  A temporary scheduler is created to be independent from terminal. Thus  starting the upgrade process over the broadband connection is supported. diff --git a/doc/update-gre-address.md b/doc/update-gre-address.md index 5bf95bd..de9f622 100644 --- a/doc/update-gre-address.md +++ b/doc/update-gre-address.md @@ -1,6 +1,13 @@  Update GRE configuration with dynamic addresses  =============================================== +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base diff --git a/doc/update-tunnelbroker.md b/doc/update-tunnelbroker.md index 4d6f1ba..ee0fe98 100644 --- a/doc/update-tunnelbroker.md +++ b/doc/update-tunnelbroker.md @@ -1,6 +1,13 @@  Update tunnelbroker configuration  ================================= +[](https://github.com/eworm-de/routeros-scripts/stargazers) +[](https://github.com/eworm-de/routeros-scripts/network) +[](https://github.com/eworm-de/routeros-scripts/watchers) +[](https://mikrotik.com/download/changelogs/) +[](https://t.me/routeros_scripts) +[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) +  [⬅️ Go back to main README](../README.md)  > ℹ️ **Info**: This script can not be used on its own but requires the base |