From 0990fa38c741f79a1f2663ab983b30178c1fa1c8 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 17 Aug 2026 00:20:02 +0300 Subject: [PATCH] Backup for MikroNUC created successfully at Aug 17 00:20:02. --- .../20260817/20260817002001-Binary.backup | Bin 0 -> 449302 bytes MikroNUC/20260817/20260817002001-Config.rsc | 5536 +++++++++++++++++ .../20260817/20260817002001-Diff-Config.rsc | 582 ++ 3 files changed, 6118 insertions(+) create mode 100644 MikroNUC/20260817/20260817002001-Binary.backup create mode 100644 MikroNUC/20260817/20260817002001-Config.rsc create mode 100644 MikroNUC/history/20260817/20260817002001-Diff-Config.rsc diff --git a/MikroNUC/20260817/20260817002001-Binary.backup b/MikroNUC/20260817/20260817002001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..307df265e08a4d74fc639663659db339f423895a GIT binary patch literal 449302 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%0DxheU(S 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 X&K}a@7x52!u$#A-N7y0ReAIKx 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 L!1h?XnkPnw9&cyQ literal 0 HcmV?d00001 diff --git a/MikroNUC/20260817/20260817002001-Config.rsc b/MikroNUC/20260817/20260817002001-Config.rsc new file mode 100644 index 0000000..050ae47 --- /dev/null +++ b/MikroNUC/20260817/20260817002001-Config.rsc @@ -0,0 +1,5536 @@ +# 2026-08-17 00:20:01 by RouterOS 7.23.3 +# system id = NmJcEM+8XAP +# +/caps-man channel +add band=2ghz-g/n extension-channel=disabled frequency=2422 name=2G-3 \ + reselect-interval=20m save-selected=yes +add band=5ghz-a/n/ac extension-channel=XXXX frequency=5660 name=5G-5660 \ + save-selected=yes +add band=5ghz-a/n/ac extension-channel=XXXXXXXX frequency=5160,5200,5280 \ + name=5G-5160-5280 reselect-interval=30m save-selected=yes +add band=5ghz-n/ac extension-channel=XXXX frequency=5180 name=5G-36 \ + reselect-interval=30m save-selected=yes +add band=5ghz-n/ac extension-channel=XXXX frequency=5200 name=5G-40 \ + reselect-interval=30m save-selected=yes +add band=5ghz-n/ac extension-channel=XXXX frequency=5220 name=5G-44 \ + reselect-interval=30m save-selected=yes +add band=5ghz-n/ac extension-channel=XXXX frequency=5240 name=5G-48 \ + reselect-interval=30m save-selected=yes +add band=2ghz-g/n extension-channel=disabled frequency=2442 name=2G-7 \ + reselect-interval=20m save-selected=yes +add band=2ghz-g/n extension-channel=disabled frequency=2462 name=2G-11 \ + reselect-interval=20m save-selected=yes +/interface bridge +add name=Bridge-LAN +/interface ethernet +set [ find default-name=ether1 ] disable-running-check=no +/caps-man security +add authentication-types=wpa2-psk encryption=aes-ccm group-encryption=aes-ccm \ + group-key-update=30m name=xs-Sec +add authentication-types=wpa2-psk encryption=aes-ccm group-encryption=aes-ccm \ + group-key-update=30m name=WPA2 +/disk +add file-path=/sata1/swap file-size=2046.9MiB slot=file-sata1-swap swap=yes \ + type=file +add slot=ram tmpfs-max-size=100000000 type=tmpfs +add slot=tmpfs tmpfs-max-size=715827882 type=tmpfs +/interface list +add include=dynamic,static name=LAN +add exclude=LAN name=WAN +add exclude=LAN include=WAN name=Internet +/caps-man datapath +add bridge=Bridge-LAN client-to-client-forwarding=yes interface-list=LAN \ + local-forwarding=yes name=xs-DataPath +add bridge=Bridge-LAN client-to-client-forwarding=yes interface-list=LAN \ + local-forwarding=yes name=DataPath +/caps-man configuration +add channel.band=2ghz-b/g/n country=no_country_set datapath=xs-DataPath mode=\ + ap name=xs-2G rx-chains=0,1,2,3 security=xs-Sec ssid=vados tx-chains=\ + 0,1,2,3 +add channel.band=5ghz-a/n/ac country=no_country_set datapath=xs-DataPath \ + installation=any mode=ap name=xs-5G rx-chains=0,1,2,3 security=xs-Sec \ + ssid=vados5g tx-chains=0,1,2,3 +add channel.band=2ghz-b/g/n .control-channel-width=20mhz .extension-channel=\ + XX .frequency=2422,2442,2462 .reselect-interval=20m country=belarus \ + datapath=DataPath datapath.client-to-client-forwarding=yes \ + .local-forwarding=yes hw-protection-mode=rts-cts installation=any name=2G \ + rx-chains=0,1,2,3 security=WPA2 ssid=vados tx-chains=0,1,2,3 +add channel.band=5ghz-a/n/ac .control-channel-width=20mhz .extension-channel=\ + XXXX .frequency=5180,5200,5220,5240,5260 .reselect-interval=20m \ + .skip-dfs-channels=yes country=belarus datapath=DataPath \ + datapath.client-to-client-forwarding=yes .local-forwarding=yes \ + hw-protection-mode=rts-cts installation=any name=5G security=WPA2 ssid=\ + vados5g +/interface wireless security-profiles +set [ find default=yes ] supplicant-identity=MikroMIC +/iot wiliot servers +set *1 address=mqtt.us-east-2.prod.wiliot.cloud name="Wiliot US East" +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=P1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +/ip pool +add name=dhcp ranges=10.30.30.150-10.30.30.200 +/system logging action +add email-start-tls=yes email-to=vados@vados.ru name=email target=email +/system script +add dont-require-permissions=no name=test owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \r\ + \n#:local ScriptName [ :jobname ];\r\ + \n:local expSrc;\r\ + \n:local FileName;\r\ + \n:local FilePath;\r\ + \n:local DirPath \"tmpfs/\";\r\ + \n:global WaitForFile;\r\ + \n:global IfThenElse;\r\ + \n\r\ + \n:foreach Script in=([ /system/script find where name~\"Amster-GlobalConf\ + *\" ]) do={\r\ + \n:local ScriptVal [ /system/script/get \$Script ];\r\ + \n\r\ + \n:local expName [ (\$ScriptVal->\"name\") ];\r\ + \n#[/system/script get \$expScript name];\r\ + \n:delay 2s;\r\ + \n\r\ + \n:set expSrc [/system/script print where name=\$expName];\r\ + \n/system/script print where name=\$expName;\r\ + \n#[:put [/system/script get \$expScript source]];\r\ + \n:put [\$expSrc];\r\ + \n:delay 2s;\r\ + \n:set FileName \$expName;\r\ + \n:set FilePath (\$DirPath . \$FileName);\r\ + \n\r\ + \n#:log warning \"\\n----------------------\\n\\\$expSrc = \$expSrc\\n____\ + ______________________________\";\r\ + \n:log info \"\\n\\\$FileName = '\$FileName'\";\r\ + \n:log info \"\\n\\\$FilePath = \$FilePath\";\r\ + \n#:log warning {/system/script/get source=[/system/script/get \$expScript\ + \_source];};\r\ + \n\r\ + \n#\$[/system script get [/system script find name=\"\$FileName\"] source]\ + \r\ + \n\r\ + \n#:local gettingScript \"\$FileName\";\r\ + \n#:execute script=\"[[:parse \\\"[:parse { :put (\"\$[/system script get \ + [/system script find name=\$FileName] source]\"); } \\\"]]\"; \\\r\ + \n\r\ + \n#:execute script={:put \"[:parse \\\"[:parse [/system/script get [/syste\ + m/script find name=\$gettingScript] source];\\\"]]\";} \\\r\ + \n# file=(\$FilePath . \".rsc\\00\");\r\ + \n:do {\r\ + \n:local fName (\$FilePath . \".rsc\");\r\ + \n#:delay 3s;\r\ + \n#/file add name=\$fName;\r\ + \n:put [:tostr [\$expSrc]];\r\ + \n/file set \$fName contents=[:put [\$expSrc]];\r\ + \n:delay 3s;\r\ + \n\$WaitForFile \$fName;\r\ + \n(\$FilePath . \".rsc\");\r\ + \n#:delay 2s;\r\ + \n\r\ + \n} on-error={\r\ + \n:log error \"\\nERROR \\\$FilePath = \$FilePath\";\r\ + \n}\r\ + \n#\$WaitForFile (\$FilePath . \".rsc\");\r\ + \n#:execute script={ :put [/system/script get [:put \$FileName] source]; }\ + ;\r\ + \n#/system/script export \$Sscript file=\$FilePath;\r\ + \n#/system/script/export [:put [/system/script/get \$expScript source]] fi\ + le=\$FilePath;\r\ + \n#:execute script={ :put [/system/script/get \$expScript source]; } \\\r\ + \n\r\ + \n#:log warning \"\\n\\\$expScript = \$expScript\";\r\ + \n# \\\r\ + \n# file=(\$FilePath . \".rsc\\00\");\r\ + \n#script={:put [/system/script/get \$FileName source];} file=(\$FilePath\ + \_. \".rsc\\00\");\r\ + \n#/system script export \$src file=(\$FilePath . \$FileName);\r\ + \n}\r\ + \n\r\ + \n:log warning \"\\nComplete!\";\r\ + \n\r\ + \n # :execute script={ :put [ /system/script/get Amster-GlobalConfig sou\ + rce ]; } \\\r\ + \n # file=(\$FilePath . \".conf\\00\");\r\ + \n # \$WaitForFile (\$FilePath . \".conf\");\r\ + \n # :onerror Err {\r\ + \n # /tool/fetch upload=yes url=(\$BackupUploadUrl . \"/\" . \$FileName\ + \_. \".conf\") \\\r\ + \n # user=\$BackupUploadUser password=\$BackupUploadPass src-path=(\ + \$FilePath . \".conf\");\r\ + \n # :set ConfigFile [ /file/get (\$FilePath . \".conf\") ];\r\ + \n # :set (\$ConfigFile->\"name\") (\$FileName . \".conf\");\r\ + \n " +add dont-require-permissions=no name=test1 owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \r\ + \n#:local runningVer [:find [/system/resource/get version] \"(\"];\r\ + \n\r\ + \n:local runningChannel;\r\ + \n:local runningVersion;\r\ + \n:local ParseCustom;\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n \r\ + \n:global runningChannel [\$ParseCustom [/system/resource/get version] \"(\ + \" \")\" 1];\r\ + \n:log warning [\$runningChannel];\r\ + \n:set runningVersion [\$ParseCustom [/system/resource/get version] \" \" \ + \")\" 2];\r\ + \n:log warning [\$runningVersion];\r\ + \n\r\ + \n\r\ + \n\r\ + \n# :if ([:len \$open] = 0) do={\r\ + \n# :log error \"\$SMP Could not extract installed OS channel from vers\ + ion string: `\$runningOsAndChannel`.\";\r\ + \n# :error \"\$SMP error, check logs\";\r\ + \n# }\r\ + \n# :local rest [:pick \$runningOsAndChannel (\$open+1) [:len \$runningOs\ + AndChannel]];\r\ + \n# :local close [:find \$rest \")\"];\r\ + \n# :local channel [:pick \$rest 0 \$close];\r\ + \n# :return \$channel;\r\ + \n#}" +add dont-require-permissions=no name=01-Amster-Init-Script owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# Amster Initial Script\r\ + \n#\r\ + \n#:global GlobalEnvRemove true; /system/script {run Amster-GlobalEnvRemov\ + e; };\r\ + \n#:delay 1s;\r\ + \n:#global ReloadGlobal true; \r\ + \n\r\ + \n:global AmScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global defOwner \"vados\";\r\ + \n:global AmFirstRun;\r\ + \n\r\ + \n:set AmFirstRun do={\r\ + \n :global AmScriptsUrl;\r\ + \n :global defOwner;\r\ + \n #:global ParseKeyValueStore;\r\ + \n #:local AmUpdCRLF true;\r\ + \n #:local IfThenElse;\r\ + \n #:set IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1\ + \_] = true) do={:return \$2}; :return \$3}\r\ + \n #/certificate/settings/set builtin-trust-store=fetch;\r\ + \n #/tool/fetch \"\$scriptsUrl/certs/Root-YE.pem\" dst-path=\"root-ye.p\ + em\";\r\ + \n #/certificate/import file-name=\"root-ye.pem\" passphrase=\"\";\r\ + \n # For basic verification we rename the certificate and print it by f\ + ingerprint. Make sure exactly this one certificate (\"Root-YE\") is shown.\ + \r\ + \n #/certificate/set name=\"Root-YE\" [ find where common-name=\"Root Y\ + E\" ];\r\ + \n #/certificate/print proplist=name,fingerprint where fingerprint=\"e1\ + 4ffcad5b0025731006caa43a121a22d8e9700f4fb9cf852f02a708aa5d5666\";\r\ + \n #:log info \"\\nAmScriptsUrl = \$AmScriptsUrl\";\r\ + \n :local Scripts {\r\ + \n \"Amster-GlobalConfig\"\r\ + \n \"Amster-GlobalFunc\";\r\ + \n# \"Amster-SFTP-backup\"\r\ + \n# \"Amster-BkpEmail-and-upd\";\r\ + \n };\r\ + \n# /system/script/set owner=(\$ScriptVal->\"name\") \\\r\ + \n# source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRLF \$S\ + ourceNew ] \$Script;\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$defOwner source=([ /too\ + l/fetch (\"\$AmScriptsUrl\" . \$Script . \".rsc\") output=user as-value ]-\ + >\"data\");\r\ + \n /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$\ + Script;\r\ + \n };\r\ + \n /system/script { run Amster-GlobalConfig; run Amster-GlobalFunc; }\r\ + \n}\r\ + \n:global AmUpdRun;\r\ + \n:set AmUpdRun do={\r\ + \n #:local UpdScript [ :tostr \$1 ];\r\ + \n #:global ParseKeyValueStore;\r\ + \n :global AmScriptsUrl;\r\ + \n :global defOwner;\r\ + \n :local Scripts {\r\ + \n# \"Amster-GlobalConfig\"\r\ + \n# \"Amster-GlobalFunc\"\r\ + \n# \"Amster-GlobalRemove\"\r\ + \n \"Amster-backup-SFTP\"\r\ + \n \"Amster-SFTP-backup\"\r\ + \n \"Amster-BkpEmail-and-upd\"\r\ + \n \"Amster-TG-Bot\"\r\ + \n \"Amster-TG-Notification\";\r\ + \n };\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :put \"updating \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$defOwner source=([ /too\ + l/fetch (\"\$AmScriptsUrl\" . \$Script . \".rsc\") output=user as-value ]-\ + >\"data\");\r\ + \n /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$\ + Script;\r\ + \n };\r\ + \n# /system/script/add name=\$Script owner=\$AmOwner source=([ /tool/fe\ + tch check-certificate=yes-without-crl (\"\$AmScriptsUrl\" . \$Script . \".\ + rsc\") output=user as-value ]->\"data\"); };\r\ + \n}\r\ + \n\r\ + \n\$AmFirstRun;\r\ + \n#\$AmUpdRun;\r\ + \n\r\ + \n#\$setUpdExist;\r\ + \n#:global setUpdExist;\r\ + \n#:global ParseKeyValueStore;\r\ + \n#:set setUpdExist do={\r\ + \n#:do {\r\ + \n#:global ParseKeyValueStore;\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\\r\?\\n#comment=*\" ] do={\r\ + \n# :local ScriptVal [ /system/script/get \$Script ];\r\ + \n# :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"#comment\"\ + ) ];\r\ + \n# :local scriptName (\$ScriptVal->\"name\");\r\ + \n#:log warning (\"\\n\\\$scriptName = \". \$scriptName);\r\ + \n#: log warning (\"\\n\\\$ScriptInfo = \". \$ScriptInfo);\r\ + \n# }\r\ + \n#} on-error={}\r\ + \n#}\r\ + \n#\$name;\$owner;\$policy;\$dont-require-permissions;\$last-started;\$run\ + -count;\$source;\$invalid;\$comment;\$.id;\$.nextid;\$.dead;\$.about;\r\ + \n#;(evl / (evl /docommand=;(evl / (evl /foreachcounter=\$Script;do=;(evl \ + / (evl /localname=\$ScriptVal;value=(evl (evl /system/script/getnumber=\$S\ + cript))) (evl /localname=\$ScriptInfo;value=(evl (<%% \$ParseKeyValueStore\ + \_(> \$ParseKeyValueStore);(-> \$ScriptVal comment)))) (evl /localname=\$s\ + criptName) (evl /setname=\$scriptName;value=(-> #\$ScriptVal name)) (evl /\ + log/errormessage=(. \r\ + \n# \$ ScriptInfo = \$ScriptInfo)));in=(evl (evl /system/script/findwhere\ + =\$name;\$owner;\$policy;\$dont-require-permissions;\$last-started;\$run-c\ + ount;\$source;\$invalid;\$comment;\$.id;\$.nextid;\$.dead;\$.about;(~ \$so\ + urce (. ^#!rsc by Vados \r\ + \n# \? \r\ + \n#));5))));on-error=;(evl /)))\r\ + \n" +add dont-require-permissions=no name="Download cAP's Packages" owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# +------------------------------+\r\ + \n# | |\r\ + \n# | Mikrotik RouterOS Scripts |\r\ + \n# | _Download cAP's Packages_ |\r\ + \n# | |\r\ + \n# +------------------------------+\r\ + \n# https://github.com/sebastian13/mikrotik-routeros-scripts\r\ + \n#\r\ + \n\r\ + \n# Set a directory path providing the required space\r\ + \n# Add a microSD card https://wiki.mikrotik.com/wiki/Manual:System/Disks\ + \r\ + \n# or setup a RAM-Disk via '/disk/add type=tmpfs tmpfs-max-size=20M slot=\ + ram'\r\ + \n:local dir \"/tmpfs/capsman-packages\";\r\ + \n\r\ + \n\r\ + \n# Set Package Path if required, set policy to none if using 'upgrade-cap\ + s' script\r\ + \n/interface/wifi/capsman/set package-path=\$dir upgrade-policy=none;\r\ + \n/caps-man/manager/set package-path=\$dir upgrade-policy=none;\r\ + \n#require-same-version;\r\ + \n\r\ + \n:local installed [/system package get value-name=version [find where nam\ + e=\"routeros\"]]\r\ + \n\r\ + \n# Delete old downloads\r\ + \n# /file/remove [ find type=package name~\"capsman*\" ]\r\ + \n\r\ + \n# Starting from RouterOS version 7.13, drivers for older wireless and 60\ + GHz interfaces are\r\ + \n# part of the separate \"wireless\" package. The existing \"wifiwave2\" \ + package has been divided\r\ + \n# into distinct packages: \"wifi-qcom\" and \"wifi-qcom-ac\".\r\ + \n# RouterOS >=7.12 is required to upgrade to 7.13.\r\ + \n# https://forum.mikrotik.com/viewtopic.php\?t=202423\r\ + \n\r\ + \n:foreach architecture in={ \"arm\";\r\ + \n# \"arm64\";\r\ + \n \"x86_64\";\r\ + \n \"mipsbe\"} do={\r\ + \n :foreach package in={ \"routeros\";\r\ + \n# \"wifi-qcom-ac\";\r\ + \n# \"wifi-qcom\";\r\ + \n \"container\";\r\ + \n \"wireless\"} do={ :do {\r\ + \n :put \"\"\r\ + \n :put \"Download \$package \$installed for \$architecture\"\r\ + \n /tool fetch mode=https \\\r\ + \n url=\"https://download.mikrotik.com/routeros/\$installed/\$packa\ + ge-\$installed-\$architecture.npk\" \\\r\ + \n dst-path=\"\$dir/\$package-\$installed-\$architecture.npk\"\r\ + \n } on-error={ :put \"Error downloading the file. On a 404, note t\ + hat the package may not exist for the specified architecture!\" }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Script for setup routeros script system" \ + dont-require-permissions=no name=AM-setup owner=AM-setup policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-setup\r\ + \n# Script comment: Script for setup routeros script system\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# :local ScriptName [ :jobname ];\r\ + \n# Additional commands:\r\ + \n#\r\ + \n# For scripts:\r\ + \n#:global NewScript \"script_name\"; \r\ + \n#:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n#/system/script/add name=\$NewScript owner=\$NewScript source=([/tool/fe\ + tch check-certificate=yes-without-crl (\$GlobalScriptsUrl . \$ScriptAdd . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n#:global NewScript (a);\r\ + \n#:global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n#\r\ + \n# For run from terminal:\r\ + \n#/system/script/add name=AM-setup owner=AM-Setup source=([/tool/fetch ch\ + eck-certificate=yes-without-crl \"https://ros.vados.ru/AM-setup.rsc\" outp\ + ut=user as-value ]->\"data\");\r\ + \n#\r\ + \n\r\ + \n:global ScriptUpdatesCRLF \"LF\";\r\ + \n#:if (\$ScriptUpdatesCRLF != false) do={\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\" ] do={\r\ + \n# if (\$ScriptUpdatesCRLF = true) do={\r\ + \n# /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$S\ + cript;\r\ + \n# } else={\r\ + \n# /system/script/set source=[ :tolf [ get \$Script source ] ] \$Scr\ + ipt;\r\ + \n# }\r\ + \n# }\r\ + \n#}\r\ + \n\r\ + \n# /import verbose=no \$ScriptName\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global SetupScript [ :jobname ];\r\ + \n:global RemoveMe true;\r\ + \n:global RunOnce (a);\r\ + \n:global InitSetup true;\r\ + \n:global tmpfs false;\r\ + \n\r\ + \n{\r\ + \n :local RmMe [:tobool \$1];\r\ + \n\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SetupScript;\r\ + \n :global RemoveMe;\r\ + \n :global InitSetup;\r\ + \n :global tmpfs;\r\ + \n\r\ + \n :local UrlSuffix \$Identity;\r\ + \n :local UrlDir \"certs/\";\r\ + \n :local CertUrl (\$GlobalScriptsUrl . \$UrlDir . \$UrlSuffix .\"/\"); \ + \r\ + \n :local CertCommonName \"Root YE\";\r\ + \n :local CertFileName \"Root-YE.pem\";\r\ + \n :local CertFingerprint \"e14ffcad5b0025731006caa43a121a22d8e9700f4fb9c\ + f852f02a708aa5d5666\";\r\ + \n\r\ + \n :if (\$SetupScript = false) do={\r\ + \n :global SetupScript \"AM-setup\";\r\ + \n }\r\ + \n :if (\$RemoveMe != false) do={\r\ + \n :set RemoveMe true;\r\ + \n }\r\ + \n\r\ + \n :log warning (\"\\n\\\$GlobalScriptsUrl = \" . \$GlobalScriptsUrl);\r\ + \n \r\ + \n\r\ + \n :if (!(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" ||\ + \_\\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CertComm\ + onName ] ] > 0)) do={\r\ + \n :put \"Importing certificate...\";\r\ + \n /tool/fetch (\$CertUrl . \$CertFileName) dst-path=\$CertFileName\ + \_as-value;\r\ + \n :delay 1s;\r\ + \n /certificate/import file-name=\$CertFileName passphrase=\"\";\r\ + \n /certificate/set name=\"Root-YE\" [ find where common-name=\"Roo\ + t YE\" ];\r\ + \n :delay 1s;\r\ + \n };\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] != 1) do={\r\ + \n :error \"Something is wrong with your certificates!\";\r\ + \n };\r\ + \n\r\ + \n:local MkTmpfs do={\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\"Try to removing directory 'tmpfs'.\");\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/remove tmpfs;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n# \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource/g\ + et total-memory ] / 3);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get tmpfs;\r\ + \n :return true;\r\ + \n } delay=222ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\"Creating disk of type tmpfs failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n}\r\ + \n:if (\$tmpfs = true) do={\r\ + \n :put \"Tmpfs variable is true. Checking for tmpfs/scripts directory...\ + \";\r\ + \n :if ([/file find name=\"tmpfs/scripts\"] != \"\") do={\r\ + \n :log info (\$0 . \"Directory tmpfs/scripts exsist.\");\r\ + \n :return \$true;\r\ + \n } else={\r\ + \n :log warning (\$0 . \"Directory tmpfs/scripts does't exsist.\");\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :log error (\$0 . \"Directory tmpfs is not created!\");\r\ + \n :return false;\r\ + \n } else={\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=/tmpfs/scripts;\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get /tmpfs/scripts;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\$0 . \"Making directory 'scripts' failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n# [ /file/get \$FileName ]\r\ + \n }\r\ + \n# :log error (\$0 . \"Directory tmpfs/scripts does not exsist. Remove\ + \_global variable tmpfs!\");\r\ + \n# :global tmpfs (a);\r\ + \n# return false;\r\ + \n }\r\ + \n}\r\ + \n :put \"Renaming AM-GlobalConfig, if exists...\";\r\ + \n :local ConfOldName (\"AM-GlobalConfig-\" . [ /system/clock/get date ] \ + . [ /system/clock/get time ] . \".rsc\");\r\ + \n /system/script/set name=\$ConfOldName [ find where name=\"AM-GlobalCon\ + fig\" ];\r\ + \n :foreach Script in={ \"AM-GlobalConfig\"; \"AM-GlobalFunc\" } do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$Script source=([ /tool/fetc\ + h check-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n \r\ + \n /system/script run \$Script;\r\ + \n :delay 2s;\r\ + \n };\r\ + \n\r\ + \n :local Script \"mod/AM-Certs-By-Ident\";\r\ + \n \r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$Script source=([ /tool/fetch \ + check-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".\ + rsc\") output=user as-value ]->\"data\");\r\ + \n /system/script run \$Script;\r\ + \n :global tmpAddCerts;\r\ + \n :while ([ \$tmpAddCerts ] = true) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n :delay 1s;\r\ + \n :put \"Removing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] > 0) do={\r\ + \n :put \"Renaming certificate by its common-name...\";\r\ + \n :global CertificateNameByCN;\r\ + \n \$CertificateNameByCN \$CertFingerprint;\r\ + \n };\r\ + \n\r\ + \n :if (\$RemoveMe = true) do={\r\ + \n :put \"Add Scheduler for remove this script...\";\r\ + \n :local OnEvent (\":delay 30s;\\n\" . \"/system/script/remove [ find \ + where name=\\\"\$SetupScript\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \"/system/scheduler/remove [ find where name=\\\ + \"_RemoveSetup\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \":global RemoveMe (a);\\n\");\r\ + \n :local Comment \"_RemoveSetup tmp scheduler for remove setup script.\ + \";\r\ + \n /system/scheduler/add name=\"_RemoveSetup\" comment=\$Comment start-\ + time=startup interval=30s on-event=\$OnEvent;\r\ + \n :log warning (\$0 . \"\\nI've done everything, and now I'm tired..\ + . I'm leaving.\\nThere will be an error below, this is normal.\");\r\ + \n }\r\ + \n :delay 1;\r\ + \n :put \"Loading configuration and functions...\";\r\ + \n :do { \r\ + \n :global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n :put \"Normal removing temporary global environment variables.\";\ + \r\ + \n :global SetupScript (a);\r\ + \n :global InitSetup (a);\r\ + \n :global RemoveMe (a);\r\ + \n } on-error={\r\ + \n :local ErrorMsg \"Loading configuration and functions error!\";\r\ + \n :log error (\$0 . \$ErrorMsg . :error);\r\ + \n :error \$ErrorMsg;\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/729/f42d43ae\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 00:05:03 01.07.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\ + \n\r\ + \n\r\ + \n#:local Script AM-GlobalConfig;\r\ + \n\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\ + \n\r\ + \n#/usb1/mikro_bak_rsa.pub\r\ + \n\r\ + \n\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/tmp/\";\r\ + \n\ + \n:global MkDir;\ + \n\r\ + \n\ + \n:local FetchFile Manager@id_rsa.pub\ + \n:local localDir \"/\";\r\ + \n\r\ + \n\ + \n\ + \n\$MkDir \$localDir;\ + \n\ + \n\r\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\ + \n" +add dont-require-permissions=yes name=MkTmpfs owner=vados policy=\ + ftp,read,write,policy,test,sniff,sensitive source=\ + ":global MkDir;\r\ + \n\r\ + \n\$MkDir /usb1/tmpfs;" +add dont-require-permissions=no name=CreateContainer owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local contIF \"veth1\";\r\ + \n:local contIP \"10.10.10.10/24\";\r\ + \n:local contGW \"10.10.10.1\";\r\ + \n#/interface/veth/add name=\$contIF address=\$contIP gateway=\$contGW;\r\ + \n:local contBridgeIF \"Bridge-DOC\";\r\ + \n:local contBridgeIP \"10.10.10.1/24\";\r\ + \n/interface/bridge/add name=\$contBridgeIF;\r\ + \n/ip/address/add address=\$contBridgeIP interface=\$contBridgeIF;\r\ + \n/interface/bridge/port/add bridge=\$contBridgeIF interface=\$contIF;\r\ + \n/container/config/set ram-high=768M registry-url=https://registry-1.dock\ + er.io tmpdir=sata1/tmp\r\ + \n" +add dont-require-permissions=no name=carkeeperbot owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\ + container/mounts/add list=carkeeper_configs/.profile src=sata1/carkeeper/c\ + onfigs/.profile dst=/root/.ashrc;\r\ + \n/container/mounts/add list=carkeeper_configs/php.ini src=sata1/carkeeper\ + /configs/php.ini dst=/etc/php82/php.ini;\r\ + \n#/container/mounts/add list=carkeeper_configs src=sata1/carkeeper/config\ + s dst=/configs;\r\ + \n/container/mounts/add list=carkeeper_app src=sata1/carkeeper/app dst=/ap\ + p;\r\ + \n/container/mounts/add list=carkeeper_scripts src=sata1/carkeeper/scripts\ + \_dst=/scripts;\r\ + \n/container/mounts/add list=carkeeper_configs/sshd_config src=sata1/carke\ + eper/configs/sshd_config dst=/etc/ssh/sshd_config;\r\ + \n\r\ + \n/container/mounts/add list=carkeeper_tmp src=sata1/carkeeper/tmp dst=/va\ + r/tmp;\r\ + \n/container/mounts/add list=carkeeper_sync src=sata1/carkeeper/sync dst=/\ + var/sync;\r\ + \n" +add comment="Enable or disable ip addresses based on bridge port state" \ + dont-require-permissions=no name=mod/AM-IPbridge owner=mod/AM-IPbridge \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-IPbridge\r\ + \n# Script comment: Enable or disable ip addresses based on bridge port st\ + ate\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n# Add this Script scheduler\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n:log warning (\"SystemScheduler for script: \" . \$ScriptName . \" is NO\ + T SET! Fix It Now!\");\r\ + \n:local OnEvent \"/system/script/run \$ScriptName;\";\r\ + \n:local Comment \"Every Day Check For Fake Bridges\";\r\ + \n/system/scheduler/add name=\$ScriptName comment=\$Comment start-time=sta\ + rtup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:foreach Bridge in=[ /interface/bridge/find ] do={\r\ + \n :local BrName [ /interface/bridge/get \$Bridge name ];\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName ] ] > \ + 0) do={\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName and \ + inactive=no ] ] = 0) do={\r\ + \n /ip/address/disable [ find where !dynamic interface=\$BrName ];\r\ + \n } else={\r\ + \n /ip/address/enable [ find where !dynamic interface=\$BrName ];\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Use Telegram to chat with your Router and send commands" \ + dont-require-permissions=no name=mod/AM-TG-Bot owner=mod/AM-TG-Bot \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-TG-Bot\r\ + \n# Script comment: Use Telegram to chat with your Router and send command\ + s\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global Identity;\r\ + \n :global TelegramChatActive;\r\ + \n :global TelegramChatGroups;\r\ + \n :global TelegramChatId;\r\ + \n :global TelegramChatIdsTrusted;\r\ + \n :global TelegramChatOffset;\r\ + \n :global TelegramChatRunTime;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global TelegramRandomDelay;\r\ + \n :global TelegramTokenId;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EitherOr;\r\ + \n :global EscapeForRegEx;\r\ + \n :global FileExists;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global LogPrintVerbose;\r\ + \n :global MAX;\r\ + \n :global MIN;\r\ + \n :global MkDir;\r\ + \n :global RandomDelay;\r\ + \n :global RmDir;\r\ + \n :global ScriptLock;\r\ + \n :global SendTelegram2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global WaitForFile;\r\ + \n :global WaitFullyConnected;\r\ + \n\r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n \$WaitFullyConnected;\r\ + \n\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) \ + do={\r\ + \n /system/scheduler/add start-time=startup interval=30s name=\$ScriptN\ + ame on-event=\"/system/script/run \$ScriptName;\" comment=\"Telegram Chat \ + Bot\";\r\ + \n }\r\ + \n :if ([ :typeof \$TelegramChatOffset ] != \"array\") do={\r\ + \n :set TelegramChatOffset { 0; 0; 0 };\r\ + \n }\r\ + \n :if ([ :typeof \$TelegramRandomDelay ] != \"num\") do={\r\ + \n :set TelegramRandomDelay 0;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Downloading required certificate \ + failed.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n \$RandomDelay \$TelegramRandomDelay;\r\ + \n\r\ + \n :local Data false;\r\ + \n :for I from=1 to=4 do={\r\ + \n :if (\$Data = false) do={\r\ + \n :onerror Err {\r\ + \n :set Data ([ /tool/fetch check-certificate=yes-without-crl outpu\ + t=user \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TelegramTokenId . \"/get\ + Updates\?offset=\" . \\\r\ + \n \$TelegramChatOffset->0 . \"&allowed_updates=%5B%22message%22%\ + 5D\") as-value ]->\"data\");\r\ + \n :set TelegramRandomDelay [ \$MAX 0 (\$TelegramRandomDelay - 1) ]\ + ;\r\ + \n } do={\r\ + \n :if (\$I < 4) do={\r\ + \n \$LogPrint debug \$ScriptName (\"Fetch failed, \" . \$I . \". \ + try: \" . \$Err);\r\ + \n :set TelegramRandomDelay [ \$MIN 15 (\$TelegramRandomDelay + 5\ + ) ];\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if (\$Data = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Failed getting updates.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local JSON [ :deserialize from=json value=\$Data ];\r\ + \n :local UpdateID 0;\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :foreach Update in=(\$JSON->\"result\") do={\r\ + \n :set UpdateID (\$Update->\"update_id\");\r\ + \n \$LogPrintVerbose debug \$ScriptName (\"Update \" . \$UpdateID . \":\ + \_\" . [ :serialize to=json \$Update ]);\r\ + \n\r\ + \n :local Message (\$Update->\"message\");\r\ + \n :local IsAnyReply ([ :typeof (\$Message->\"reply_to_message\") ] = \ + \"array\");\r\ + \n :local IsMyReply (\$TelegramMessageIDs->[ :tostr (\$Message->\"reply\ + _to_message\"->\"message_id\") ]);\r\ + \n :if ((\$IsMyReply = 1 || \$TelegramChatOffset->0 > 0 || \$Uptime > 5\ + m) && \$UpdateID >= \$TelegramChatOffset->2) do={\r\ + \n :local Trusted false;\r\ + \n :local Chat (\$Message->\"chat\");\r\ + \n :local From (\$Message->\"from\");\r\ + \n :local Command (\$Message->\"text\");\r\ + \n :local ThreadId [ \$IfThenElse (\$Message->\"is_topic_message\") (\ + \$Message->\"message_thread_id\") \"\" ];\r\ + \n\r\ + \n :foreach IdsTrusted in=(\$TelegramChatId, \$TelegramChatIdsTrusted\ + ) do={\r\ + \n :if (\$From->\"id\" = \$IdsTrusted || \\\r\ + \n \$From->\"username\" = \$IdsTrusted || \\\r\ + \n \$Chat->\"id\" = \$IdsTrusted) do={\r\ + \n :set Trusted true;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if (\$Trusted = true) do={\r\ + \n :local Done false;\r\ + \n :if (\$Command = \"\?\") do={\r\ + \n \$LogPrint info \$ScriptName (\"Sending notice for update \" .\ + \_\$UpdateID . \".\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=([ \$IfThenElse ([ :len (\$From->\"first_name\") ] >\ + \_0) (\"Hello \" . (\$From->\"first_name\") . \"!\\n\\n\") ] . \\\r\ + \n \"Online\" . [ \$IfThenElse \$TelegramChatActive \" (and a\ + ctive!)\" ] . \", awaiting your commands!\") });\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && [ :pick \$Command 0 1 ] = \"!\") do={\r\ + \n :if (\$Command ~ (\"^! *(\" . [ \$EscapeForRegEx \$Identity ] \ + . \"|@\" . \$TelegramChatGroups . \")\\\$\")) do={\r\ + \n :set TelegramChatActive true;\r\ + \n } else={\r\ + \n :set TelegramChatActive false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Now \" . [ \$IfThenElse \$Tele\ + gramChatActive \"active\" \"passive\" ] . \\\r\ + \n \" from update \" . \$UpdateID . \"!\");\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && (\$IsMyReply = 1 || (\$IsAnyReply = false\ + \_&& \\\r\ + \n \$TelegramChatActive = true)) && [ :len \$Command ] > 0) do\ + ={\r\ + \n :if ([ \$ValidateSyntax \$Command ] = true) do={\r\ + \n :local State \"\";\r\ + \n :local File (\"tmpfs/telegram-chat/\" . [ \$GetRandom20CharA\ + lNum 6 ]);\r\ + \n :if ([ \$MkDir \"tmpfs/telegram-chat\" ] = false) do={\r\ + \n \$LogPrint error \$ScriptName (\"Failed creating directory\ + !\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Running command from update \ + \" . \$UpdateID . \": \" . \$Command);\r\ + \n :execute script=(\":do {\\n\" . \$Command . \"\\n} on-error=\ + { /file/add name=\\\"\" . \$File . \".failed\\\" };\" . \\\r\ + \n \"/file/add name=\\\"\" . \$File . \".done\\\"\") file=(\$\ + File . \"\\00\");\r\ + \n :if ([ \$WaitForFile (\$File . \".done\") [ \$EitherOr \$Tel\ + egramChatRunTime 20s ] ] = false) do={\r\ + \n :set State ([ \$SymbolForNotification \"warning-sign\" ] .\ + \_\"The command did not finish, still running in background.\\n\\n\");\r\ + \n }\r\ + \n :if ([ \$FileExists (\$File . \".failed\") ] = true) do={\r\ + \n :set State ([ \$SymbolForNotification \"cross-mark\" ] . \ + \"The command failed with an error!\\n\\n\");\r\ + \n }\r\ + \n :local Content ([ /file/read chunk-size=32768 file=\$File as\ + -value ]->\"data\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n \$State . [ \$IfThenElse ([ :len \$Content ] > 0) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"Output:\\n\" .\ + \_\$Content) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"No output.\") \ + ]) });\r\ + \n \$RmDir \"tmpfs/telegram-chat\";\r\ + \n } else={\r\ + \n \$LogPrint info \$ScriptName (\"The command from update \" .\ + \_\$UpdateID . \" failed syntax validation!\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n [ \$SymbolForNotification \"cross-mark\" ] . \"The comma\ + nd failed syntax validation!\") });\r\ + \n }\r\ + \n }\r\ + \n } else={\r\ + \n :local MessageText (\"Received a message from untrusted contact \ + \" . \\\r\ + \n [ \$IfThenElse ([ :len (\$From->\"username\") ] = 0) \"without\ + \_username\" (\"'\" . \$From->\"username\" . \"'\") ] . \\\r\ + \n \" (ID \" . \$From->\"id\" . \") in update \" . \$UpdateID . \ + \"!\");\r\ + \n :if (\$Command ~ (\"^! *\" . [ \$EscapeForRegEx \$Identity ] . \ + \"\\\$\")) do={\r\ + \n \$LogPrint warning \$ScriptName \$MessageText;\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=(\"You are not trusted.\") });\r\ + \n } else={\r\ + \n \$LogPrint info \$ScriptName \$MessageText;\r\ + \n }\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint debug \$ScriptName (\"Already handled update \" . \$Upd\ + ateID . \".\");\r\ + \n }\r\ + \n }\r\ + \n :set TelegramChatOffset ([ :pick \$TelegramChatOffset 1 3 ], \\\r\ + \n [ \$IfThenElse (\$UpdateID >= \$TelegramChatOffset->2) (\$UpdateID +\ + \_1) (\$TelegramChatOffset->2) ]);\r\ + \n} do={\r\ + \n :global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err;\r\ + \n}\r\ + \n" +add comment="Script send Notifications in Telegram" dont-require-permissions=\ + no name=mod/AM-TG-Notifications owner=mod/AM-TG-Notifications policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: mod/AM-TG-Notifications\r\ + \n# Script comment: Script send Notifications in Telegram\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:global FlushTelegramQueue;\r\ + \n:global GetTelegramChatId;\r\ + \n:global NotificationFunctions;\r\ + \n:global PurgeTelegramQueue;\r\ + \n:global SendTelegram;\r\ + \n:global SendTelegram2;\r\ + \n# flush telegram queue\r\ + \n:set FlushTelegramQueue do={ :onerror Err {\r\ + \n :global TelegramQueue;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global CertificateAvailable;\r\ + \n :global IsFullyConnected;\r\ + \n :global LogPrint;\r\ + \n :if ([ \$IsFullyConnected ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"System is not fully connected, not flushing.\ + \");\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n :local AllDone true;\r\ + \n :local QueueLen [ :len \$TelegramQueue ];\r\ + \n :if ([ :len [ /system/scheduler/find where name=\"_FlushTelegramQueue\ + \" ] ] > 0 && \$QueueLen = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Flushing Telegram messages from scheduler,\ + \_but queue is empty.\");\r\ + \n }\r\ + \n :foreach Id,Message in=\$TelegramQueue do={\r\ + \n :if ([ :typeof \$Message ] = \"array\" ) do={\r\ + \n :onerror Err {\r\ + \n :local Data ([ /tool/fetch check-certificate=yes-without-crl out\ + put=user http-method=post \\\r\ + \n (\"https://api.telegram.org/bot\" . (\$Message->\"tokenid\") .\ + \_\"/sendMessage\") \\\r\ + \n http-data=(\$Message->\"http-data\") as-value ]->\"data\");\r\ + \n :set (\$TelegramQueue->\$Id);\r\ + \n :set (\$TelegramMessageIDs->[ :tostr ([ :deserialize from=json v\ + alue=\$Data ]->\"result\"->\"message_id\") ]) 1;\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Sending queued Telegram message failed: \ + \" . \$Err);\r\ + \n :set AllDone false;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :if (\$AllDone = true && \$QueueLen = [ :len \$TelegramQueue ]) do={\r\ + \n /system/scheduler/remove [ find where name=\"_FlushTelegramQueue\" ]\ + ;\r\ + \n :set TelegramQueue;\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n# get the chat id\r\ + \n:set GetTelegramChatId do={ :onerror Err {\r\ + \n :global TelegramTokenId;\r\ + \n :global CertificateAvailable;\r\ + \n :global LogPrint;\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n :local Data;\r\ + \n :onerror Err {\r\ + \n :set Data ([ /tool/fetch check-certificate=yes-without-crl output=us\ + er \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TelegramTokenId . \"/getUpd\ + ates\?offset=0\" . \\\r\ + \n \"&allowed_updates=%5B%22message%22%5D\") as-value ]->\"data\");\ + \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Fetching data failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :local JSON [ :deserialize from=json value=\$Data ];\r\ + \n :local Count [ :len (\$JSON->\"result\") ];\r\ + \n :if (\$Count = 0) do={\r\ + \n \$LogPrint info \$0 (\"No message received.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local Message (\$JSON->\"result\"->(\$Count - 1)->\"message\");\r\ + \n \$LogPrint info \$0 (\"The chat id is: \" . (\$Message->\"chat\"->\"id\ + \"));\r\ + \n :if ((\$Message->\"is_topic_message\") = true) do={\r\ + \n \$LogPrint info \$0 (\"The thread id is: \" . (\$Message->\"message_\ + thread_id\"));\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n# send notification via telegram - expects one array argument\r\ + \n:set (\$NotificationFunctions->\"telegram\") do={\r\ + \n :local Notification \$1;\r\ + \n :global Identity;\r\ + \n :global IdentityExtra;\r\ + \n :global TelegramChatId;\r\ + \n :global TelegramChatIdOverride;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global TelegramQueue;\r\ + \n :global TelegramThreadId;\r\ + \n :global TelegramThreadIdOverride;\r\ + \n :global TelegramTokenId;\r\ + \n :global TelegramTokenIdOverride;\r\ + \n :global CertificateAvailable;\r\ + \n :global CharacterReplace;\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ProtocolStrip;\r\ + \n :global SymbolForNotification;\r\ + \n :global UrlEncode;\r\ + \n :local EscapeMD do={\r\ + \n :local Text [ :tostr \$1 ];\r\ + \n :local Mode [ :tostr \$2 ];\r\ + \n :local Excl [ :tostr \$3 ];\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :local Chars {\r\ + \n \"body\"={ \"\\\\\"; \"`\" };\r\ + \n \"plain\"={ \"_\"; \"*\"; \"[\"; \"]\"; \"(\"; \")\"; \"~\"; \"`\"\ + ; \">\";\r\ + \n \"#\"; \"+\"; \"-\"; \"=\"; \"|\"; \"{\"; \"}\"; \".\"; \ + \"!\" };\r\ + \n }\r\ + \n :foreach Char in=(\$Chars->\$Mode) do={\r\ + \n :if ([ :typeof [ :find \$Excl \$Char ] ] = \"nil\") do={\r\ + \n :set Text [ \$CharacterReplace \$Text \$Char (\"\\\\\" . \$Char)\ + \_];\r\ + \n }\r\ + \n }\r\ + \n :if (\$Mode = \"body\") do={:return (\"```\\n\" . \$Text . \"\\n```\ + \")}\r\ + \n :return \$Text;\r\ + \n }\r\ + \n :local ChatId [ \$EitherOr (\$Notification->\"chatid\") \\\r\ + \n [ \$EitherOr (\$TelegramChatIdOverride->(\$Notification->\"origin\")\ + ) \$TelegramChatId ] ];\r\ + \n :local ThreadId [ \$EitherOr (\$Notification->\"threadid\") \\\r\ + \n [ \$EitherOr (\$TelegramThreadIdOverride->(\$Notification->\"origin\ + \")) \\\r\ + \n [ \$IfThenElse ([ :len (\$TelegramChatIdOverride->(\$Notification->\ + \"origin\")) ] = 0) \$TelegramThreadId ] ] ];\r\ + \n :local TokenId [ \$EitherOr (\$TelegramTokenIdOverride->(\$Notificatio\ + n->\"origin\")) \$TelegramTokenId ];\r\ + \n :if ([ :len \$TokenId ] = 0 || [ :len \$ChatId ] = 0) do={:return fals\ + e}\r\ + \n :if ([ :typeof \$TelegramMessageIDs ] = \"nothing\") do={:set Telegram\ + MessageIDs ({})}\r\ + \n :local Truncated false;\r\ + \n :local Text (\"*__\" . [ \$EscapeMD (\"[\" . \$IdentityExtra . \$Ident\ + ity . \"] \" . \\\r\ + \n (\$Notification->\"subject\")) \"plain\" ] . \"__*\\n\\n\");\r\ + \n :local LenSubject [ :len \$Text ];\r\ + \n :local LenMessage [ :len (\$Notification->\"message\") ];\r\ + \n :local LenLink ([ :len (\$Notification->\"link\") ] * 2);\r\ + \n :local LenSum (\$LenSubject + \$LenMessage + \$LenLink);\r\ + \n :if (\$LenSum > 3968) do={\r\ + \n :set Text (\$Text . [ \$EscapeMD ([ :pick (\$Notification->\"message\ + \") 0 (3840 - \$LenSubject - \$LenLink) ] . \"...\") \"body\" ]);\r\ + \n :set Truncated true;\r\ + \n } else={:set Text (\$Text . [ \$EscapeMD (\$Notification->\"message\")\ + \_\"body\" ])}\r\ + \n :if (\$LenLink > 0) do={\r\ + \n :set Text (\$Text . \"\\n\" . [ \$SymbolForNotification \"link\" ] .\ + \_\\\r\ + \n \"[\" . [ \$EscapeMD [ \$ProtocolStrip (\$Notification->\"link\") \ + ] \"plain\" ] . \"]\" . \\\r\ + \n \"(\" . [ \$EscapeMD (\$Notification->\"link\") \"plain\" ] . \")\ + \");\r\ + \n }\r\ + \n :if (\$Truncated = true) do={\r\ + \n :set Text (\$Text . \"\\n\" . [ \$SymbolForNotification \"scissors\"\ + \_] . \\\r\ + \n [ \$EscapeMD (\"The message was too long and has been truncated, c\ + ut off _\" . \\\r\ + \n ((\$LenSum - [ :len \$Text ]) * 100 / \$LenSum) . \"%_!\") \"plain\ + \" \"_\" ]);\r\ + \n }\r\ + \n :local HTTPData (\"chat_id=\" . \$ChatId . \"&disable_notification=\" \ + . (\$Notification->\"silent\") . \\\r\ + \n \"&reply_to_message_id=\" . (\$Notification->\"replyto\") . \"&mes\ + sage_thread_id=\" . \$ThreadId . \\\r\ + \n \"&disable_web_page_preview=true&parse_mode=MarkdownV2\");\r\ + \n :onerror Err {\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority \ + - G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\ + \");\r\ + \n :error false;\r\ + \n }\r\ + \n :local Data ([ /tool/fetch check-certificate=yes-without-crl output=\ + user http-method=post \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TokenId . \"/sendMessage\") \ + \\\r\ + \n http-data=(\$HTTPData . \"&text=\" . [ \$UrlEncode \$Text ]) as-va\ + lue ]->\"data\");\r\ + \n :set (\$TelegramMessageIDs->[ :tostr ([ :deserialize from=json value\ + =\$Data ]->\"result\"->\"message_id\") ]) 1;\r\ + \n } do={\r\ + \n \$LogPrint info \$0 (\"Failed sending Telegram notification: \" . \$\ + Err . \" - Queuing...\");\r\ + \n :if ([ :typeof \$TelegramQueue ] = \"nothing\") do={:set TelegramQue\ + ue ({})}\r\ + \n :set Text (\$Text . \"\\n\" . [ \$SymbolForNotification \"alarm-cloc\ + k\" ] . \\\r\ + \n [ \$EscapeMD (\"This message was queued since _\" . [ /system/cloc\ + k/get date ] . \\\r\ + \n \" \" . [ /system/clock/get time ] . \"_ and may be obsolete.\") \ + \"plain\" \"_\" ]);\r\ + \n :set (\$TelegramQueue->[ :len \$TelegramQueue ]) { tokenid=\$TokenId\ + ;\r\ + \n http-data=(\$HTTPData . \"&text=\" . [ \$UrlEncode \$Text ]) };\r\ + \n :if ([ :len [ /system/scheduler/find where name=\"_FlushTelegramQueu\ + e\" ] ] = 0) do={\r\ + \n /system/scheduler/add name=\"_FlushTelegramQueue\" interval=1m sta\ + rt-time=startup \\\r\ + \n on-event=(\":global FlushTelegramQueue; \\\$FlushTelegramQueue;\ + \");\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n# purge the Telegram queue\r\ + \n:set PurgeTelegramQueue do={\r\ + \n :global TelegramQueue;\r\ + \n /system/scheduler/remove [ find where name=\"_FlushTelegramQueue\" ];\ + \r\ + \n :set TelegramQueue;\r\ + \n}\r\ + \n# send notification via telegram - expects at least two string arguments\ + \r\ + \n:set SendTelegram do={ :onerror Err {\r\ + \n :global SendTelegram2;\r\ + \n \$SendTelegram2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3; sil\ + ent=\$4 });\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n# send notification via telegram - expects one array argument\r\ + \n:set SendTelegram2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n (\$NotificationFunctions->\"telegram\") (\"\\\$NotificationFunctions->\ + \\\"telegram\\\"\") \$Notification;\r\ + \n}\r\ + \n" +add dont-require-permissions=no name=testIfThenElseAndEitherOr owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source=":local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local ExitError;\r\ + \n#:local IfThenElse;\r\ + \n#:local EitherOr;\r\ + \n\r\ + \n:local one 11;\r\ + \n:local two 8;\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n:local Test; # [ :totime \"22s\" ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n\r\ + \n:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set Test [ \$EitherOr \$Test \"\" ];\r\ + \n:log warning (\"\\\$ Test = \" . \$Test);\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :local IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set ExitOK true;\r\ + \n\$ExitError \$ExitOK \$ScriptName \"Err test custom\";" +add comment="Update and Backup send notification to EMail" \ + dont-require-permissions=no name=AM-Backup-UpdateEmail owner=\ + AM-Backup-UpdateEmail policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-Backup-UpdateEmail\r\ + \n# Script comment: Update and Backup send notification to EMail\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version>=6.43.7\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Updated: 15/04/2025\r\ + \n# Website: https://github.com/beeyev\r\ + \n# Notification e-mail (Make sure you have configured Email settings in T\ + ools -> Email)\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n:local ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :if (\$ExitOK = \"false\") do={:log error (\$Name [ \$IfThenElse ([ :p\ + ick \$Name 0 1 ] = \"\\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);}\r\ + \n}\r\ + \n\r\ + \n:global LogPrint;\r\ + \n:global EditSchedulers;\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n:local SchedInterval \"7d\";\r\ + \n:local SchedStartTime \"03:41:27\";\r\ + \n:local SchedComment \"Every 7 Day Check For Update and Backup send notif\ + ication to EMail.\";\r\ + \n\r\ + \n# Function to add or edit schedulers for scripts, to ensure they are set\ + \_up correctly\r\ + \n# How to use:\r\ + \n# Call this function with the following parameters:\r\ + \n# 1. \$1 - Scheduler name (usually same as script name) [*]\r\ + \n# 2. \$2 - Interval (e.g. \"1d\" (default is \"1d\")) [**]\r\ + \n# 3. \$3 - Start Time (e.g. \"00:00:00\", default is current time) [**]\ + \r\ + \n# 4. \$4 - Comment (optional, default: \"Scheduler for script: \")\ + \_[**]\r\ + \n# 5. \$5 - On Event command (e.g. \"/system/script { run ; }\" (de\ + fault is \"/system/script { run \$SchedName; }\")) [**]\r\ + \n# 6. \$6 - Policy (e.g. \"ftp,reboot,read,write,policy,test,password,sni\ + ff,sensitive,romon\" (default is the same)) [**]\r\ + \n# 7. \$7 - Start Date (e.g. \"jan/01/1970\", default is current date) [*\ + *]\r\ + \n# Notes:\r\ + \n# * - Scheduler name is required, and is used to identify the scheduler\ + \_to create or edit. It is usually the same as the script name (\$ScriptNa\ + me).\r\ + \n# ** - If optional parameters are not provided, default values will be u\ + sed.\r\ + \n# This allows for quick setup with minimal parameters, while still \ + providing flexibility for customization.\r\ + \n# Example usage:\r\ + \n# :if ([ \$EditSchedulers \"my-script\" ] = false) do={:set ExitOK false\ + ; :error true;}\r\ + \n# :if ([ \$EditSchedulers \"my-script\" \"1d\" \"03:41:27\" \"My custom \ + scheduler comment\" false false \"jan/01/1970\" ] = false) do={:set ExitOK\ + \_false; :error true;}\r\ + \n\r\ + \n:set EditSchedulers do={\r\ + \n :local SchedName [ :tostr \$1 ];\r\ + \n :if ([ :len \$SchedName ] = 0) do={ :return false; }\r\ + \n :local Interval [ :tostr \$2 ];\r\ + \n :if ([ :len \$Interval ] = 0) do={ :set Interval \"1d\"; }\r\ + \n :local StartTime [ :tostr \$3 ];\r\ + \n :if ([ :len \$StartTime ] = 0) do={ :set StartTime [/system/clock/get \ + time]; }\r\ + \n :local Comment [ :tostr \$4 ];\r\ + \n :if ([ :len \$Comment ] = 0) do={ :set Comment \"Scheduler for script:\ + \_\$SchedName\"; }\r\ + \n :local OnEvent [ :tostr \$5 ];\r\ + \n :if ([ :len \$OnEvent ] = 0) do={ :set OnEvent \"/system/script { run \ + \$SchedName; }\"; }\r\ + \n :local Policy [ :tostr \$6 ];\r\ + \n :if ([ :len \$Policy ] = 0) do={ :set Policy \"ftp,reboot,read,write,p\ + olicy,test,password,sniff,sensitive,romon\"; }\r\ + \n :local StartDate [ :tostr \$7 ];\r\ + \n :if ([ :len \$StartDate ] = 0) do={ :set StartDate [/system/clock/get \ + date]; }\r\ + \n\r\ + \n :onerror Err {\r\ + \n # Check if scheduler exists, if not - create it\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$SchedName ] ] = 0)\ + \_do={\r\ + \n :log warning (\$SchedName . \"System Scheduler for script: \" . \$\ + SchedName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add comment=\$Comment interval=\$Interval name=\ + \$SchedName on-event=\$OnEvent policy=\$Policy start-date=\$StartDate star\ + t-time=\$StartTime;\r\ + \n }\r\ + \n # Check if scheduler parameters are correct, if not - fix them\r\ + \n :if ([ /system/scheduler/get \$SchedName comment ] != \$Comment) do=\ + {\r\ + \n /system/scheduler/set \$SchedName comment=\$Comment;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName interval ] != \$Interval) d\ + o={\r\ + \n /system/scheduler/set \$SchedName interval=\$Interval;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName on-event ] != \$OnEvent) do\ + ={\r\ + \n /system/scheduler/set \$SchedName on-event=\$OnEvent;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName policy ] != \$Policy) do={\ + \r\ + \n /system/scheduler/set \$SchedName policy=\$Policy;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-date ] != \$StartDate\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-date=\$StartDate;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-time ] != \$StartTime\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-time=\$StartTime;\r\ + \n }\r\ + \n } do={:log error (\$SchedName . \"Failed to add/modify scheduler for '\ + \" . \$SchedName . \"' failed: \" . \$Err); :return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:if ([ \$EditSchedulers \$ScriptName \$SchedInterval \$SchedStartTime \$\ + SchedComment ] = false) do={\r\ + \n :log error (\$ScriptName . \"Failed to add/modify scheduler for \" . \ + \$ScriptName . \"!\");\r\ + \n :set ExitOK true;\r\ + \n :error true;\r\ + \n}\r\ + \n\r\ + \n# Local Function CheckOSUpdateMode\r\ + \n:local CheckOSUpdateMode;\r\ + \n:set CheckOSUpdateMode do={\r\ + \n :local NewMode [ :tostr \$1 ];\r\ + \n :if ([ :len \$NewMode ] = 0) do={\r\ + \n :log error (\$0 . \"/nFunction /\$CheckOSUpdateMode received empty v\ + alue!\");\r\ + \n :return false;\r\ + \n :error true;\r\ + \n }\r\ + \n\r\ + \n :global BackupAndUpdateMode;\r\ + \n :global OldMode [ :tostr \$BackupAndUpdateMode ];\r\ + \n :if (\$NewMode != \$BackupAndUpdateMode && \$NewMode = \"updateOnce\")\ + \_do={\r\ + \n :set BackupAndUpdateMode [ :tostr \$NewMode ];\r\ + \n :log info (\$0 . \"/nOk. /\$BackupAndUpdateMode set to: '\" . \$NewM\ + ode . \"'.\\nYou're a good boy! ))\\nI'm launching the update in 5 seconds\ + .\");\r\ + \n :delay 5;\r\ + \n /system/script { run \$ScriptName; };\r\ + \n } else={\r\ + \n :log warning (\$0 . \"/nFunction /\$CheckOSUpdateMode received value: \ + '\" . \$NewMode . \"', but is may be only \\\"updateOnce\\\"!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n :error false;\r\ + \n}\r\ + \n\r\ + \n# :if ([ :len [ /system/scheduler/find where name=\"running-from-backup\ + -partition\" ] ] > 0) do={\r\ + \n# \$LogPrint warning \$ScriptName (\"Running from backup partition, r\ + efusing to act.\");\r\ + \n# :set ExitOK true;\r\ + \n# :error false;\r\ + \n# }\r\ + \n\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n:global forceBackup;\r\ + \n:global BackupPassword;\r\ + \n:global BackupSens;\r\ + \n:global updateChannel;\r\ + \n\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n# Installs patch updates only (BackupAndUpdateMode = \"osupdate\").\r\ + \n# Works for `stable` and `long-term` channels.\r\ + \n# Updates only if MAJOR.MINOR match (e.g. 6.43.2 > 6.43.6 allowed, 6.44.\ + 1 skipped).\r\ + \n# Sends info if a newer (non-patch) version is found.\r\ + \n:local installOnlyPatchUpdates false;\r\ + \n:local scriptVersion \"26.04.30\";\r\ + \n:local copyrightUrl \"https://www.github.com/vados-dev/\";\r\ + \n#Script messages prefix\r\ + \n:local SMP \"BkpAndUpdate:\";\r\ + \n\r\ + \n:local exitErrorMessage \"\$SMP script stopped due to an error. Please c\ + heck logs for more details.\";\r\ + \n:log info \"\\n\\n\$SMP Script \\\"Mikrotik RouterOS automatic backup & \ + update\\\" v.\$scriptVersion started.\";\r\ + \n:log info \"\$SMP Script Mode: `\$BackupAndUpdateMode`, Update channel: \ + `\$updateChannel`, Force backup: `\$forceBackup`, Install only patch updat\ + es: `\$installOnlyPatchUpdates`\";\r\ + \n\r\ + \n## vv FUNCTIONS vv ##\r\ + \n:global WaitCheckUpdates; \$WaitCheckUpdates;\r\ + \n:global MiniDateTimeStamp;\r\ + \n:local MDTSFix [\$MiniDateTimeStamp];\r\ + \n:global Identity;\r\ + \n:global IdentityShort;\r\ + \n:global devBoardName;\r\ + \n:global runningVersion;\r\ + \n:global runningChannel;\r\ + \n:global devModel;\r\ + \n:global devRbSerialNumber;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n\r\ + \n# Checks if two RouterOS version strings differ only by the patch versio\ + n\r\ + \n# :put [\$FuncIsPatchUpdateOnly \"6.2.1\" \"6.2.4\"] # Output: true\r\ + \n# :put [\$FuncIsPatchUpdateOnly \"6.2.1\" \"6.3.1\"] # Output: false\r\ + \n:local FuncIsPatchUpdateOnly do={\r\ + \n :local ver1 \$1;\r\ + \n :local ver2 \$2;\r\ + \n # Extract the major and minor components from a version\r\ + \n :local extractMajorMinor do={\r\ + \n :local ver \$1;\r\ + \n :local dot1 [:find \$ver \".\"];\r\ + \n :if (\$dot1 = -1) do={:return \$ver}\r\ + \n :local major [:pick \$ver 0 \$dot1];\r\ + \n :local rest [:pick \$ver (\$dot1 + 1) [:len \$ver]];\r\ + \n :local dot2 [:find \$rest \".\"];\r\ + \n :local minor \$rest;\r\ + \n :if (\$dot2 >= 0) do={:set minor [:pick \$rest 0 \$dot2]}\r\ + \n :return (\$major . \".\" . \$minor);\r\ + \n }\r\ + \n\r\ + \n# Compare the major and minor components of both version strings\r\ + \n:if ([\$extractMajorMinor \$ver1] = [\$extractMajorMinor \$ver2]) do={:r\ + eturn true}\r\ + \n :return false;\r\ + \n}\r\ + \n# Creates backups and returns array of names\r\ + \n# Possible arguments:\r\ + \n# \$1 - file name, without extension\r\ + \n# \$2 - password (optional)\r\ + \n# \$3 - sensitive data in config (optional, default: false)\r\ + \n# Example:\r\ + \n#:put [\$FuncCreateBackups \$backupName]\r\ + \n:local FuncCreateBackups do={\r\ + \n :local backupName [ :tostr \$1 ];\r\ + \n :local BackPass \$2;\r\ + \n :local BackSens \$3;\r\ + \n\r\ + \n #Script messages prefix\r\ + \n :local SMP \"BkpAndUpdate:\";\r\ + \n :local exitErrorMessage \"\$SMP script stopped due to an error. Please\ + \_check logs for more details.\";\r\ + \n :log info (\"\$SMP global function `FuncCreateBackups` started, input:\ + \_`\$backupName`\");\r\ + \n\r\ + \n # validate required parameter: backupName\r\ + \n :if ([:typeof \$backupName] != \"str\" or [:len \$backupName] = 0) do=\ + {\r\ + \n :log error \"\$SMP parameter 'backupName' is required and must be a \ + non-empty string\";\r\ + \n# :log warning \"\$SMP parameter '\\\$backupName' is required and mus\ + t be a non-empty string.\\nI set '\\\$backupName' to 'default-backup'\";\r\ + \n# :set \$backupName \"default-backup\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n\r\ + \n :local backupFileSys \"\$backupName.backup\";\r\ + \n :local backupFileConfig \"\$backupName.rsc\";\r\ + \n :local backupNames {\$backupFileSys;\$backupFileConfig};\r\ + \n\r\ + \n ## Perform system backup\r\ + \n :if ([:len \$BackPass] = 0) do={\r\ + \n :log info (\"\$SMP starting backup without password, backup name: `\ + \$backupName`\");\r\ + \n /system backup save dont-encrypt=yes name=\$backupName;\r\ + \n } else={\r\ + \n :log info (\"\$SMP starting backup with password, backup name: `\$ba\ + ckupName`\");\r\ + \n /system backup save password=\$BackPass name=\$backupName;\r\ + \n }\r\ + \n :log info (\"\$SMP system backup created: `\$backupFileSys`\");\r\ + \n ## Export config file\r\ + \n :if (\$BackSens = true) do={\r\ + \n :log info (\"\$SMP starting export config with sensitive data, backu\ + p name: `\$backupName`\");\r\ + \n # Since RouterOS v7 it needs to be explicitly set that we want to ex\ + port sensitive data\r\ + \n :if ([:pick [/system resource get version] 0 1] < 7) do={\r\ + \n :execute \"/export compact terse file=\$backupName\";\r\ + \n } else={\r\ + \n :execute \"/export compact show-sensitive terse file=\$backupName\ + \";\r\ + \n }\r\ + \n } else={\r\ + \n :log info (\"\$SMP starting export config without sensitive data, ba\ + ckup name: `\$backupName`\");\r\ + \n /export compact hide-sensitive terse file=\$backupName;\r\ + \n }\r\ + \n :log info (\"\$SMP Config export complete: `\$backupFileConfig`\");\r\ + \n :log info (\"\$SMP Waiting a little to ensure backup files are written\ + \");\r\ + \n :delay 20;\r\ + \n :if ([:len [/file find name=\$backupFileSys]] > 0) do={\r\ + \n :log info (\"\$SMP system backup file successfully saved to the file\ + \_system: `\$backupFileSys`\");\r\ + \n } else={\r\ + \n :log error (\"\$SMP system backup was not created, file does not exi\ + st: `\$backupFileSys`\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :if ([:len [/file find name=\$backupFileConfig]] > 0) do={\r\ + \n :log info (\"\$SMP config backup file successfully saved to the file\ + \_system: `\$backupFileConfig`\");\r\ + \n } else={\r\ + \n :log error (\"\$SMP config backup was not created, file does not exi\ + st: `\$backupFileConfig`\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :log info (\"\$SMP global function `FuncCreateBackups` finished. Creat\ + ed backups, system: `\$backupFileSys`, config: `\$backupFileConfig`\")\r\ + \n :return \$backupNames;\r\ + \n}\r\ + \n# Sends an email\r\ + \n# Parameters:\r\ + \n# \$1 - to (email address)\r\ + \n# \$2 - subject\r\ + \n# \$3 - body\r\ + \n# \$4 - file attachments (optional; pass \"\" if not needed)\r\ + \n#\r\ + \n# Example:\r\ + \n# \$FuncSendEmailSafe \"admin@domain.com\" \"Backup Done\" \"Backup comp\ + lete.\" \"backup1.backup\"\r\ + \n:local FuncSendEmailSafe do={\r\ + \n :global EmailGeneralTo;\r\ + \n :local emailSubject \$2;\r\ + \n :local emailBody \$3;\r\ + \n :local emailAttachments \$4;\r\ + \n :local SMP \"Bkp&Upd:\";\r\ + \n :local exitErrorMessage \"\$SMP script stopped due to an error. Please\ + \_check logs for more details.\";\r\ + \n :log info \"\$SMP Attempting to send email to `\$EmailGeneralTo`\";\r\ + \n # SAFETY: wait for any previously queued email to finish\r\ + \n :local waitTimeoutPre 60;\r\ + \n :local waitCounterPre 0;\r\ + \n :while (([/tool e-mail get last-status] = \"resolving-dns\" or [/tool \ + e-mail get last-status] = \"in-progress\")) do={\r\ + \n :if (\$waitCounterPre >= \$waitTimeoutPre) do={\r\ + \n :log error \"\$SMP Email send aborted: previous send did not compl\ + ete after \$waitTimeoutPre seconds\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :log info \"\$SMP Waiting for previous email to finish (status: \$[/\ + tool e-mail get last-status])...\";\r\ + \n :delay 1; \r\ + \n :set waitCounterPre (\$waitCounterPre + 1);\r\ + \n }\r\ + \n # Send the email\r\ + \n :do {\r\ + \n /tool e-mail send to=\$EmailGeneralTo subject=\$emailSubject body=\$\ + emailBody file=\$emailAttachments;\r\ + \n } on-error={\r\ + \n :log error \"\$SMP Email send command failed to execute. Check logs \ + and verify email settings.\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n # Wait for send status to change from \"in-progress\" / \"resolving-dn\ + s\"\r\ + \n :local waitTimeout 60;\r\ + \n :local waitCounter 0;\r\ + \n :local emailStatus \"\";\r\ + \n :log info \"\$SMP Waiting for email to be sent, timeout in `\$waitTime\ + out` seconds...\";\r\ + \n :while (\$waitCounter < \$waitTimeout) do={\r\ + \n :set emailStatus [/tool e-mail get last-status];\r\ + \n :if (\$emailStatus != \"in-progress\" and \$emailStatus != \"resolvi\ + ng-dns\") do={\r\ + \n :log info \"\$SMP Email send status received: \$emailStatus\";\r\ + \n # exit loop\r\ + \n :set waitCounter \$waitTimeout;\r\ + \n } else={:delay 1; :set waitCounter (\$waitCounter + 1)}\r\ + \n }\r\ + \n # Final decision based on last status\r\ + \n :if (\$emailStatus = \"succeeded\") do={\r\ + \n :log info \"\$SMP Email successfully sent to `\$EmailGeneralTo`\";\ + \r\ + \n } else={\r\ + \n :log error \"\$SMP Email failed to send. Status: `\$emailStatus`. Ch\ + eck logs for more details and verify email settings.\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n}\r\ + \n# Global variable to track current update step\r\ + \n# They need to be initialized here first to be available in the script\r\ + \n:global buGlobalVarTargetOsVersion;\r\ + \n:global buGlobalVarScriptStep;\r\ + \n:local scriptStep \$buGlobalVarScriptStep;\r\ + \n:do {\r\ + \n /system/script/environment remove buGlobalVarScriptStep;\r\ + \n} on-error={}\r\ + \n:if ([:len \$scriptStep] = 0) do={\r\ + \n :set scriptStep 1;\r\ + \n}\r\ + \n## ^^ FUNCTIONS ^^ ##\r\ + \n#\r\ + \n# Initial validation\r\ + \n## Check email settings\r\ + \n:if ([:len \$EmailGeneralTo] < 3) do={\r\ + \n :log error (\"\$SMP Parameter `\\\$EmailGeneralTo` is not set, or cont\ + ains invalid value. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Values will be defined later in the script\r\ + \n:local emailServer \"\";\r\ + \n:local emailFromAddress [/tool e-mail get from];\r\ + \n:log info \"\$SMP Validating email settings...\";\r\ + \n:do {\r\ + \n :set emailServer [/tool e-mail get server];\r\ + \n} on-error={\r\ + \n # This is a workaround for the RouterOS v7.12 and older versions\r\ + \n :set emailServer [/tool e-mail get address];\r\ + \n}\r\ + \n:if (\$emailServer = \"0.0.0.0\") do={\r\ + \n :log error (\"\$SMP Email server address is not correct: `\$emailServe\ + r`, check `Tools -> Email`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n:if ([:len \$emailFromAddress] < 3) do={\r\ + \n :log error (\"\$SMP Email configuration FROM address is not correct: `\ + \$emailFromAddress`, check `Tools -> Email`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Script mode validation\r\ + \n:if (\$BackupAndUpdateMode != \"backup\" and \$BackupAndUpdateMode != \"\ + osupdate\" and \$BackupAndUpdateMode != \"updateOnce\" and \$BackupAndUpda\ + teMode != \"osnotify\") do={\r\ + \n :log error (\"\$SMP Script parameter `\\\$BackupAndUpdateMode` is not \ + set, or contains invalid value: `\$BackupAndUpdateMode`. Script stopped.\"\ + );\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Update channel validation\r\ + \n:if (\$updateChannel != \"stable\" and \$updateChannel != \"long-term\" \ + and \$updateChannel != \"testing\" and \$updateChannel != \"development\")\ + \_do={\r\ + \n :log error (\"\$SMP Script parameter `\\\$updateChannel` is not set, o\ + r contains invalid value: `\$updateChannel`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Verify if script is set to install patch updates and if the update cha\ + nnel is valid\r\ + \n:if ((\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \"\ + updateOnce\") and \$installOnlyPatchUpdates = true) do={\r\ + \n :if (\$updateChannel != \"stable\" and \$updateChannel != \"long-term\ + \") do={\r\ + \n :log error (\"\$SMP Patch-only updates enabled, but update channel `\ + \$updateChannel` is invalid. Only `stable` and `long-term` are supported. \ + Script stopped\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n \r\ + \n :if (\$runningChannel != \"stable\" and \$runningChannel != \"long-ter\ + m\") do={\r\ + \n :log error (\"\$SMP Script is set to install only patch updates, but\ + \_the installed RouterOS version is not from `stable` or `long-term` chann\ + el: `\$runningChannel`. Script stopped\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n}\r\ + \n#\r\ + \n\r\ + \n:local rawTime [/system clock get time];\r\ + \n:local rawDate [/system clock get date];\r\ + \n\r\ + \n:local deviceOsVerAndChannelRunning [/system/resource/get version];\r\ + \n\r\ + \n:local backupNameTemplate (\"backup_v\" . \$runningVersion . \"_\" .\ + \_\$runningChannel . \"_\" . \$MDTSFix);\r\ + \n:local backupNameBeforeUpdate (\$backupNameTemplate . \"_before_update\"\ + );\r\ + \n:local backupNameAfterUpdate (\$backupNameTemplate . \"_after_update\")\ + ;\r\ + \n\r\ + \n## Email body template\r\ + \n:local mailSubjectPrefix \"\$SMP Device - `\$IdentityShort`\";\r\ + \n:local mailBodyCopyright \"Mikrotik RouterOS automatic backup & update \ + (ver. \$scriptVersion) \\n\$copyrightUrl\";\r\ + \n:local changelogUrl \"Check RouterOS changelog: https://mikrotik.com\ + /download/changelogs/\";\r\ + \n:local mailBodyDeviceInfo \"\";\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"Device information:\")\ + ;\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\n-------------------\ + --\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nName: \$Identity\")\ + ;\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nModel: \$devModel\"\ + );\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nBoard: \$devBoardNa\ + me\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nSerial number: \$de\ + vRbSerialNumber\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nRouterOS version: v\ + \$deviceOsVerAndChannelRunning\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nBuild time: \$[/sys\ + tem/resource/get build-time]\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nRouterboard FW Avai\ + lable: \$ROsVerAvail\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nDevice date-time: \ + \$rawDate \$rawTime (\$[/system/clock/get time-zone-name ])\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nUptime: \$[/system/\ + resource/get uptime]\");\r\ + \n## IP address detection\r\ + \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local PublicIpAddress [ \$GetPubIp ];\r\ + \n :set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nPublic IP address\ + : \" . \$PublicIpAddress . \".\");\r\ + \n :log info \"\$SMP Public IP address detected: \$PublicIpAddress\";\r\ + \n} \r\ + \n\r\ + \n:local mailAttachments [:toarray \"\"];\r\ + \n:if (\$scriptStep = 1 or \$scriptStep = 3) do={\r\ + \n :if (\$scriptStep = 3) do={\r\ + \n :log info (\"\$SMP Waiting for one minute before continuing to the f\ + inal step.\");\r\ + \n :delay 1m;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n## STEP 1: Create backups, check for new RouterOS, and send email\r\ + \n## Steps 2\C3\A23 run only if auto-update is enabled and a new version i\ + s available\r\ + \n:if (\$scriptStep = 1) do={\r\ + \n :global BackupPassword;\r\ + \n :global BackupSens;\r\ + \n :local isNewOsUpdateAvailable false;\r\ + \n :local isLatestOsAlreadyInstalled true;\r\ + \n :local isOsNeedsToBeUpdated false;\r\ + \n :local isUpdateCheckSucceeded false;\r\ + \n :local isEmailNeedsToBeSent false;\r\ + \n :local mailSubjectPartAction \"\";\r\ + \n :local mailPtBodyAction \"\";\r\ + \n :local mailPtSubjectBackup \"\";\r\ + \n :local mailPtBodyBackup \"\";\r\ + \n # Checking for new version\r\ + \n :if (\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \ + \"osnotify\" or \$BackupAndUpdateMode = \"updateOnce\") do={\r\ + \n :log info (\"\$SMP Setting update channel to `\$updateChannel`\");\r\ + \n /system/package/update/set channel=\$updateChannel;\r\ + \n :log info (\"\$SMP Checking for new RouterOS version. Current instal\ + led version is: `\$runningVersion`\");\r\ + \n \$LogPrint debug \$ScriptName (\"Checking for updates...\");\r\ + \n \r\ + \n# /system/package/update/check-for-updates without-paging as-value;\ + \r\ + \n# /system/package/update check-for-updates;\r\ + \n :delay 5s;\r\ + \n :set PkgUpdStatus [ /system/package/update/get status ];\r\ + \n :if (\$PkgUpdStatus = \"New version is available\") do={\r\ + \n :set ROsVerAvail [/system/package/update/get latest-version];\r\ + \n }\r\ + \n\r\ + \n :if (\$PkgUpdStatus = \"New version is available\") do={\r\ + \n :log info (\"\$SMP New RouterOS version is available: `\$ROsVerAva\ + il`\");\r\ + \n :set isNewOsUpdateAvailable true;\r\ + \n :set isLatestOsAlreadyInstalled false;\r\ + \n :set isUpdateCheckSucceeded true;\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :set mailSubjectPartAction \"New RouterOS available\";\r\ + \n :set mailPtBodyAction \"New RouterOS version is available, curren\ + t version: v\$runningVersion, new version: v\$ROsVerAvail. \\n\$changelogU\ + rl\";\r\ + \n } else={\r\ + \n :if (\$PkgUpdStatus = \"System is already up to date\") do={\r\ + \n :log info (\"\$SMP No new RouterOS version is available, the lat\ + est version is already installed: `v\$runningVersion`\");\r\ + \n :set isUpdateCheckSucceeded true;\r\ + \n :set mailSubjectPartAction \"No os update available\";\r\ + \n :set mailPtBodyAction \"No new RouterOS version is available, t\ + he latest version is already installed: `v\$runningVersion`\";\r\ + \n } else={\r\ + \n :log error (\"\$SMP Failed to check for new RouterOS version. Pa\ + ckage check status: `\$PkgUpdStatus`\");\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :set mailSubjectPartAction \"Error unable to check new os versio\ + n\";\r\ + \n :set mailPtBodyAction \"An error occurred while checking for a \ + new RouterOS version.\\nStatus returned: `\$PkgUpdStatus`\\n\\nPlease revi\ + ew the logs on the device for more details and verify internet connectivit\ + y.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n # Checking if the script needs to install new os version\r\ + \n :if ((\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \ + \"updateOnce\") and \$isNewOsUpdateAvailable = true) do={\r\ + \n :if (\$installOnlyPatchUpdates = true) do={\r\ + \n :if ([\$FuncIsPatchUpdateOnly \$runningVersion \$ROsVerAvail] = tr\ + ue) do={\r\ + \n :log info \"\$SMP New RouterOS version is available, and it is a\ + \_patch update. Current version: v\$runningVersion, new version: v\$ROsVer\ + Avail\";\r\ + \n :set isOsNeedsToBeUpdated true;\r\ + \n } else={\r\ + \n :log info \"\$SMP The script will not install this update, becau\ + se it is not a patch update. Current version: v\$runningVersion, new versi\ + on: v\$ROsVerAvail\";\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nThis update wil\ + l not be installed, because the script is set to install only patch update\ + s.\");\r\ + \n }\r\ + \n } else={\r\ + \n :set isOsNeedsToBeUpdated true;\r\ + \n }\r\ + \n }\r\ + \n # Checking If the script needs to create a backup\r\ + \n :if (\$forceBackup = true or \$BackupAndUpdateMode = \"backup\" or \$i\ + sOsNeedsToBeUpdated = true) do={\r\ + \n :log info (\"\$SMP Starting backup process.\");\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :local backupName \$backupNameTemplate;\r\ + \n # This means it's the first step where we create a backup before the\ + \_update process\r\ + \n :if (\$isOsNeedsToBeUpdated = true) do={\r\ + \n :set backupName \$backupNameBeforeUpdate;\r\ + \n #Email body if the purpose of the script is to update the device\r\ + \n :set mailSubjectPartAction \"Update preparation\";\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nThe update proces\ + s for device '\$Identity' is scheduled to upgrade RouterOS from version v.\ + \$runningVersion to version v.\$ROsVerAvail (Update channel: \$updateChann\ + el)\");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nPlease note: The \ + update will proceed only after a successful backup.\");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nA final report wi\ + th detailed information will be sent once the update process is completed.\ + \");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nIf you do not rec\ + eive a second email within the next 10 minutes, there may be an issue. Ple\ + ase check your device logs for further information.\");\r\ + \n }\r\ + \n :do {\r\ + \n :set mailAttachments [\$FuncCreateBackups \$backupName \$BackupPas\ + sword \$BackupSens];\r\ + \n :set mailPtSubjectBackup \"Backup created\";\r\ + \n :set mailPtBodyBackup \"System backups have been successfully crea\ + ted and attached to this email.\";\r\ + \n } on-error={\r\ + \n :set isOsNeedsToBeUpdated false;\r\ + \n :set mailPtSubjectBackup \"Backup failed\";\r\ + \n :set mailPtBodyBackup \"The script failed to create backups. Pleas\ + e check device logs for more details.\";\r\ + \n :log warning \"\$SMP Backup creation failed. Update process will b\ + e canceled if automatic update is enabled\";\r\ + \n }\r\ + \n }\r\ + \n :if (\$isEmailNeedsToBeSent = true) do={\r\ + \n :log info \"\$SMP Preparing to send email...\";\r\ + \n :local mailStep1Subject \$mailSubjectPrefix;\r\ + \n :local mailStep1Body \"\";\r\ + \n # subject\r\ + \n :if (\$mailSubjectPartAction != \"\") do={:set mailStep1Subject (\$\ + mailStep1Subject . \" - \" . \$mailSubjectPartAction)}\r\ + \n :if (\$mailPtSubjectBackup != \"\") do={:set mailStep1Subject (\$ma\ + ilStep1Subject . \" - \" . \$mailPtSubjectBackup)}\r\ + \n # body\r\ + \n :if (\$mailPtBodyAction != \"\") do={:set mailStep1Body (\$mailStep1\ + Body . \$mailPtBodyAction . \"\\n\\n\")}\r\ + \n :if (\$mailPtBodyBackup != \"\") do={:set mailStep1Body (\$mailStep1\ + Body . \$mailPtBodyBackup . \"\\n\\n\")}\r\ + \n :set mailStep1Body (\$mailStep1Body . \$mailBodyDeviceInfo . \"\\n__\ + ________\\n\" . \$mailBodyCopyright);\r\ + \n :set mailStep1Body (\$mailStep1Body . \"\\n[*** TEST START ***]\\n\\\ + \$DeviceInfo: \" . [ \$DeviceInfo ] . \"\\n[*** TEST END ***]\\n\");\r\ + \n # Send email with backups\r\ + \n :do {\$FuncSendEmailSafe \$EmailGeneralTo \$mailStep1Subject \$mailS\ + tep1Body \$mailAttachments} on-error={\r\ + \n :set isOsNeedsToBeUpdated false;\r\ + \n :log error \"\$SMP The script will not proceed with the update pro\ + cess, because the email was not sent.\";\r\ + \n }\r\ + \n }\r\ + \n :if ([:len \$mailAttachments] > 0) do={\r\ + \n :log info \"\$SMP Cleaning up backup files from the file system...\"\ + ;\r\ + \n /file remove \$mailAttachments;\r\ + \n :delay 2s;\r\ + \n }\r\ + \n :if (\$isOsNeedsToBeUpdated = true) do={\r\ + \n :global OldMode;\r\ + \n :log info \"\$SMP everything is ready to install new RouterOS, going\ + \_to start the update process and reboot the device.\";\r\ + \n :do {\r\ + \n :local nextStep 2;\r\ + \n :if (\$isCloudHostedRouter = true) do={\r\ + \n :log info \"\$SMP The device is a cloud hosted router, the secon\ + d step updating the Routerboard firmware will be skipped.\";\r\ + \n :set nextStep 3;\r\ + \n }\r\ + \n :local scheduledCommand (\":delay 5s; /system/scheduler remove BKP\ + UPD-NEXT-BOOT-TASK; \\\r\ + \n :global buGlobalVarScriptStep \$nextStep; :global buGlobalVarTarg\ + etOsVersion \\\"\$ROsVerAvail\\\"; \\\r\ + \n :delay 10s; /system/script { run \$ScriptName; }\");\r\ + \n /system/scheduler add name=BKPUPD-NEXT-BOOT-TASK on-event=\$schedu\ + ledCommand start-time=startup interval=0;\r\ + \n /system/package/update install;\r\ + \n } on-error={\r\ + \n # Failed to install new os version, remove the task and variables\ + \r\ + \n :do {\r\ + \n /system/scheduler remove BKPUPD-NEXT-BOOT-TASK;\r\ + \n :set BackupAndUpdateMode \$OldMode;\r\ + \n :delay 2;\r\ + \n :do {\r\ + \n :global buGlobalVarTargetOsVersion (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \"ERROR Remove\ + \_global variable \\\$buGlobalVarTargetOsVersion failed!\");\r\ + \n }\r\ + \n# :if ([ :len \$OldMode ] > 0) do={\r\ + \n# :do {\r\ + \n# :global OldMode (a);\r\ + \n# } on-error={\r\ + \n# :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Re\ + move global variable \\\$OldMode failed!\");\r\ + \n# }\r\ + \n# }\r\ + \n } on-error={\r\ + \n :log error \"\$SMP Failed to install new RouterOS version. Pleas\ + e check device logs for more details. \\\r\ + \n \\nAnd Failed to remove task and variables! Check it!\";\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Remove \ + task and global variables!\");\r\ + \n }\r\ + \n :log error \"\$SMP Failed to install new RouterOS version. Please \ + check device logs for more details.\";\r\ + \n :local mailUpdateErrorSubject (\$mailSubjectPrefix . \" - Update f\ + ailed\");\r\ + \n :local mailUpdateErrorBody \"The script was unable to install new \ + RouterOS version. Please check device logs for more details.\";\r\ + \n # Send email with error\r\ + \n \$FuncSendEmailSafe \$EmailGeneralTo \$mailUpdateErrorSubject \$ma\ + ilUpdateErrorBody \"\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n## STEP 2: (Post-reboot) Upgrade RouterBOARD firmware\r\ + \n## Runs only if auto-update is enabled and a new RouterOS version was fo\ + und\r\ + \n:if (\$scriptStep = 2) do={\r\ + \n :log info \"\$SMP The script is in the second step, updating Routerboa\ + rd firmware.\";\r\ + \n :log info \"\$SMP Upgrading routerboard firmware from v.\$deviceRbCurr\ + entFw to v.\$deviceRbUpgradeFw\";\r\ + \n /system routerboard upgrade;\r\ + \n :delay 2;\r\ + \n :log info \"\$SMP routerboard upgrade process was completed, going to \ + reboot in a moment!\";\r\ + \n ## Set task to send final report on the next boot\r\ + \n /system scheduler add name=BKPUPD-NEXT-BOOT-TASK on-event=\":delay 2; \ + :global buGlobalVarScriptStep 3; \\\r\ + \n :global buGlobalVarTargetOsVersion \\\"\$buGlobalVarTargetOsVersion\\\ + \"; :delay 10s; /system/script { run \$ScriptName; }; \\ \r\ + \n :delay 5s; /system/scheduler remove BKPUPD-NEXT-BOOT-TASK;\" start-ti\ + me=startup interval=0;\r\ + \n :delay 2;\r\ + \n /system reboot;\r\ + \n}\r\ + \n\r\ + \n## STEP 3: Final report (after second reboot, with delay).\r\ + \n## Runs only if auto-update is enabled and a new RouterOS version was fo\ + und.\r\ + \n:if (\$scriptStep = 3) do={\r\ + \n :log info (\"\$SMP The script is in the third step, sending final repo\ + rt.\");\r\ + \n :local targetOsVersion \$buGlobalVarTargetOsVersion;\r\ + \n :do {\r\ + \n# /system/script/environment remove [find name=\"buGlobalVarTargetOsV\ + ersion\"];\r\ + \n :global buGlobalVarTargetOsVersion (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Remove glob\ + al variable \\\$buGlobalVarTargetOsVersion failed!\");\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$OldMode ] != 0) do={\r\ + \n :do {\r\ + \n# /system/script/environment remove [find name=\"OldMode\"];\r\ + \n :global OldMode (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR! Remove\ + \_global variable \\\$OldMode failed!\");\r\ + \n }\r\ + \n }\r\ + \n :if ([:len \$targetOsVersion] = 0) do={\r\ + \n :log warning \"\$SMP Something is wrong, the script was unable to ge\ + t the target updated OS version from the global variable.\";\r\ + \n }\r\ + \n :local mailStep3Subject \$mailSubjectPrefix;\r\ + \n :local mailStep3Body \"\";\r\ + \n :if (\$targetOsVersion = \$runningVersion) do={\r\ + \n :log info \"\$SMP Successfully verified new RouterOS version: target\ + : `\$targetOsVersion`, current: `\$runningVersion`\";\r\ + \n :set mailStep3Subject (\$mailStep3Subject . \" - Update completed - \ + Backup created\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"RouterOS and routerboard upg\ + rade process was completed\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"\\nNew RouterOS version: v.\ + \$targetOsVersion, routerboard firmware: v.\$deviceRbCurrentFw\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"\\n\$changelogUrl\\nBackups \ + of the upgraded system are in the attachment of this email.\\n\\n\$mailBod\ + yDeviceInfo\\n\\n\$mailBodyCopyright\");\r\ + \n :set mailAttachments [\$FuncCreateBackups \$backupNameAfterUpdate \$\ + BackupPassword \$BackupSens];\r\ + \n } else={\r\ + \n :log error \"\$SMP Failed to verify new RouterOS version: target: `\ + \$targetOsVersion`, current: `\$runningVersion`\";\r\ + \n :set mailStep3Subject (\$mailStep3Subject . \" - Update failed\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"The script was unable to ver\ + ify that the new RouterOS version was installed, target version: `\$target\ + OsVersion`, current version: `\$runningVersion`\\nCheck device logs for mo\ + re details.\\n\\n\$mailBodyDeviceInfo\\n\\n\$mailBodyCopyright\");\r\ + \n }\r\ + \n \$FuncSendEmailSafe \$EmailGeneralTo \$mailStep3Subject \$mailStep3Bod\ + y \$mailAttachments;\r\ + \n :if ([:len \$mailAttachments] > 0) do={\r\ + \n :log info \"\$SMP Cleaning up backup files from the file system...\"\ + ;\r\ + \n /file remove \$mailAttachments;\r\ + \n :delay 2;\r\ + \n }\r\ + \n :log info (\"\$SMP Final report email sent successfully, and the scrip\ + t has finished.\");\r\ + \n}\r\ + \n:log info (\"\$SMP the script has finished, script step: `\$scriptStep` \ + \\n\\n\");\r\ + \n\r\ + \n} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n" +add dont-require-permissions=no name=testGetPubIP owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global DevInfoIncludeIP;\r\ + \n:global CharacterReplace;\r\ + \n:global EscapeForRegEx;\r\ + \n:global UrlEncode;\r\ + \n\r\ + \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local Char (\"\\n\\r\");\r\ + \n :local PublicIpAddress [\$GetPubIp];\r\ + \n# :if ([ :pick \$PublicIpAddress ([ :len \$PublicIpAddress ] - 2) ] = \ + \"\\n\") do={:error true}; :set error falseon-error={:set PublicIpAddress \ + (\$PublicIpAddress . Char)};\r\ + \n#:if ([ :pick \$PublicIpAddress ([ :len \$PublicIpAddress ] - 1) ] = \"/\ + n\") do={\r\ + \n#:log warning \"N is = //n\"; \r\ + \n# :set PublicIpAddress [ \$CharacterReplace \$PublicIpAddress \$Char \"\ + \" ];\r\ + \n#}\r\ + \n# :set PublicIpAddress [ \$UrlEncode \$PublicIpAddress ];\r\ + \n#:local IpLen ([ :len \$PublicIpAddress ] -1);\r\ + \n#:set PublicIpAddress [:pick \$PublicIpAddress 0 \$IpLen];\r\ + \n :log warning \"Public IP address detected: \$PublicIpAddress , len = \ + \$IpLen\";\r\ + \n}\r\ + \n" +add comment="download, import and update firewall address-lists" \ + dont-require-permissions=no name=AM-FwAddrLists owner=AM-FwAddrLists \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-FwAddrLists\r\ + \n# Script comment: download, import and update firewall address-lists\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# https://ros.vados.ru/doc/fw-addr-lists.md\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global GlobalScriptsUrl;\r\ + \n :local ListsDirName (\"fw-addr-lists.d/\" . [ /system identity get nam\ + e ] . \"/\");\r\ + \n :local ListsUrl (\$GlobalScriptsUrl . \$ListsDirName);\r\ + \n :local ListsIndex \"index.lst\";\r\ + \n :local AddrListsTimeOut 1d;\r\ + \n :local CheckCerts false;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EitherOr;\r\ + \n :global FetchHugeFiles;\r\ + \n :global HumanReadableNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global NetMask4;\r\ + \n :global NetMask6;\r\ + \n :global ScriptLock;\r\ + \n \r\ + \n :local FindDelim do={\r\ + \n :local ValidChars \"0123456789.:/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi\ + jklmnopqrstuvwxyz-\";\r\ + \n :for I from=0 to=[ :len \$1 ] do={\r\ + \n :if ([ :typeof [ :find \$ValidChars [ :pick (\$1 . \" \") \$I ] ] \ + ] != \"num\") do={\r\ + \n :return \$I;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local GetBranch do={\r\ + \n :global EitherOr;\r\ + \n :return [ :pick [ :convert transform=md5 to=hex [ :pick \$1 0 [ \$Ei\ + therOr [ :find \$1 \"/\" ] [ :len \$1 ] ] ] ] 0 2 ];\r\ + \n }\r\ + \n \r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local ListComment (\"managed by \" . \$ScriptName);\r\ + \n :local Url (\$ListsUrl . \$ListsIndex);\r\ + \n :local tmpIndex false;\r\ + \n\r\ + \n :for I from=1 to=5 do={\r\ + \n :if (\$tmpIndex = false) do={\r\ + \n :set tmpIndex [ :tolf [ \$FetchHugeFiles \$ScriptName \$Url \$Chec\ + kCerts ] ];\r\ + \n :if (\$tmpIndex = false && \$I < 5) do={\r\ + \n :log warning (\$ScriptName . \" Failed downloading address-list \ + index, \" . \$I . \". try from: \" . \$Url);\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :if (\$tmpIndex = false) do={\r\ + \n :log warning (\$ScriptName . \" Failed downloading address-list inde\ + x from: \" . \$Url);\r\ + \n :set tmpIndex \"\";\r\ + \n }\r\ + \n\r\ + \n :foreach List in=[ :deserialize \$tmpIndex delimiter=\"\\n\" from=dsv \ + options=dsv.plain ] do={\r\ + \n# :set List (\$List->0);\r\ + \n :local ListName;\r\ + \n :local Delim [ \$FindDelim \$List ];\r\ + \n :if (\$Delim = 0) do={ :set List \"\"; };\r\ + \n :log warning (\$ScriptName . \" Parsing address-list index entry: \"\ + \_. \$List);\r\ + \n :if ([ :len \$List ] = 0) do={\r\ + \n :log error (\$ScriptName . \" Failed parsing address-list index en\ + try: \" . \$List);\r\ + \n } else={\r\ + \n :set ListName [ :pick \$List 0 \$Delim ];\r\ + \n }\r\ + \n :log warning (\$ScriptName . \" Parsing address-list index entry: \"\ + \_. \$ListName . \" - Ok.\");\r\ + \n :local ListUrl (\$ListsUrl . \$ListName);\r\ + \n :local CntAdd 0;\r\ + \n :local CntRenew 0;\r\ + \n :local CntRemove 0;\r\ + \n :local IPv4Addresses ({});\r\ + \n :local IPv6Addresses ({});\r\ + \n :local Failure false;\r\ + \n :local Data false;\r\ + \n :local TimeOut \$AddrListTimeOut;\r\ + \n\r\ + \n :for I from=1 to=5 do={\r\ + \n :if (\$Data = false) do={\r\ + \n :set Data [ :tolf [ \$FetchHugeFiles \$ScriptName \$ListUrl \$Ch\ + eckCerts ] ];\r\ + \n :if (\$Data = false && \$I < 5) do={\r\ + \n :log warning (\$ScriptName . \" Failed downloading for list '\ + \" . \$ListName . \"', \" . \$I . \". try from: \" . \$ListUrl);\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if (\$Data = false) do={\r\ + \n :set Data \"\";\r\ + \n :set Failure true;\r\ + \n :log warning (\$ScriptName . \" Failed downloading for list '\" . \ + \$ListName . \"' from: \" . \$ListUrl);\r\ + \n } else={\r\ + \n :log warning (\$ScriptName . \" Downloaded \" . [ \$HumanReadableN\ + um [ :len \$Data ] 1024 ] . \"B for list '\" . \$ListName . \"' from: \" .\ + \_\$ListUrl);\r\ + \n }\r\ + \n\r\ + \n :foreach Line in=[ :deserialize \$Data delimiter=\"\\n\" from=dsv op\ + tions=dsv.plain ] do={\r\ + \n :set Line (\$Line->0);\r\ + \n :local Address;\r\ + \n :if ([ :pick \$Line 0 1 ] = \"{\" && [ :pick \$Line ([ :len \$Line\ + \_] - 1) ] = \"}\") do={\r\ + \n :do {\r\ + \n :set Address [ :tostr ([ :deserialize from=json \$Line ]->\"ci\ + dr\") ];\r\ + \n } on-error={ }\r\ + \n } else={\r\ + \n :set Address ([ :pick \$Line 0 [ \$FindDelim \$Line ] ] . (\$L\ + ist->\"cidr\"));\r\ + \n }\r\ + \n :do {\r\ + \n :local Branch;\r\ + \n :if (\$Address ~ \"^[0-9]{1,3}\\\\.[0-9]{1,3}\\\\.[0-9]{1,3}\\\\\ + .[0-9]{1,3}(/[0-9]{1,2})\?\\\$\") do={\r\ + \n :local Net \$Address;\r\ + \n :local CIDR 32;\r\ + \n :local Slash [ :find \$Address \"/\" ];\r\ + \n :if ([ :typeof \$Slash ] = \"num\") do={\r\ + \n :set Net [ :toip [ :pick \$Address 0 \$Slash ] ]\r\ + \n :set CIDR [ :pick \$Address (\$Slash + 1) [ :len \$Address ]\ + \_];\r\ + \n :set Address [ :tostr (([ :toip \$Net ] & [ \$NetMask4 \$CID\ + R ]) . [ \$IfThenElse (\$CIDR < 32) (\"/\" . \$CIDR) ]) ];\r\ + \n }\r\ + \n :set Branch [ \$GetBranch \$Address ];\r\ + \n :set (\$IPv4Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n }\r\ + \n :if (\$Address ~ \"^[0-9a-zA-Z]*:[0-9a-zA-Z:\\\\.]+(/[0-9]{1,3})\ + \?\\\$\") do={\r\ + \n :local Net \$Address;\r\ + \n :local CIDR 128;\r\ + \n :local Slash [ :find \$Address \"/\" ];\r\ + \n :if ([ :typeof \$Slash ] = \"num\") do={\r\ + \n :set Net [ :toip6 [ :pick \$Address 0 \$Slash ] ]\r\ + \n :set CIDR [ :pick \$Address (\$Slash + 1) [ :len \$Address ]\ + \_];\r\ + \n }\r\ + \n :set Address (([ :toip6 \$Net ] & [ \$NetMask6 \$CIDR ]) . \"/\ + \" . \$CIDR);\r\ + \n :set Branch [ \$GetBranch \$Address ];\r\ + \n :set (\$IPv6Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n }\r\ + \n :if (\$Address ~ \"^[\\\\.a-zA-Z0-9-]+\\\\.[a-zA-Z]{2,}\\\$\") d\ + o={\r\ + \n :set Branch [ \$GetBranch \$Address ];\r\ + \n :set (\$IPv4Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n :set (\$IPv6Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n \r\ + \n\r\ + \n :foreach Entry in=[ /ip/firewall/address-list/find where \\\r\ + \n list=\$ListName comment=\$ListComment ] do={\r\ + \n :local Address [ /ip/firewall/address-list/get \$Entry address ];\ + \r\ + \n :local Branch [ \$GetBranch \$Address ];\r\ + \n :local TimeOut (\$IPv4Addresses->\$Branch->\$Address);\r\ + \n :if ([ :typeof \$TimeOut ] = \"time\") do={\r\ + \n :log warning (\$ScriptName . \" Renewing IPv4 address \" . \$Add\ + ress . \\\r\ + \n \" in list '\" . \$ListName . \"' with \" . \$TimeOut . \".\ + \");\r\ + \n /ip/firewall/address-list/set \$Entry timeout=\$TimeOut;\r\ + \n :set (\$IPv4Addresses->\$Branch->\$Address);\r\ + \n :set CntRenew (\$CntRenew + 1);\r\ + \n } else={\r\ + \n :if (\$Failure = false) do={\r\ + \n :log warning (\$ScriptName . \" Removing IPv4 address \" . \$A\ + ddress . \\\r\ + \n \" from list '\" . \$ListName . \".\");\r\ + \n /ip/firewall/address-list/remove \$Entry;\r\ + \n :set CntRemove (\$CntRemove + 1);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach Entry in=[ /ipv6/firewall/address-list/find where \\\r\ + \n list=\$ListName comment=\$ListComment ] do={\r\ + \n :local Address [ /ipv6/firewall/address-list/get \$Entry address ]\ + ;\r\ + \n :local Branch [ \$GetBranch \$Address ];\r\ + \n :local TimeOut (\$IPv6Addresses->\$Branch->\$Address);\r\ + \n :if ([ :typeof \$TimeOut ] = \"time\") do={\r\ + \n :log warning (\$ScriptName . \" Renewing IPv6 address \" . \$Add\ + ress . \\\r\ + \n \" in list '\" . \$ListName . \"' with \" . \$TimeOut . \".\ + \");\r\ + \n /ipv6/firewall/address-list/set \$Entry timeout=\$TimeOut;\r\ + \n :set (\$IPv6Addresses->\$Branch->\$Address);\r\ + \n :set CntRenew (\$CntRenew + 1);\r\ + \n } else={\r\ + \n :if (\$Failure = false) do={\r\ + \n :log warning (\$ScriptName . \" Removing IPv6 address \" . \$A\ + ddress . \\\r\ + \n \" from list '\" . \$ListName . \".\");\r\ + \n /ipv6/firewall/address-list/remove \$Entry;\r\ + \n :set CntRemove (\$CntRemove + 1);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach BranchName,Branch in=\$IPv4Addresses do={\r\ + \n :log warning (\$ScriptName . \" Handling branch: \" . \$BranchName\ + );\r\ + \n :foreach Address,Timeout in=\$Branch do={\r\ + \n :log warning (\$ScriptName . \" Adding IPv4 address \" . \$Addre\ + ss . \\\r\ + \n \" to list '\" . \$ListName . \"' with \" . \$Timeout . \".\ + \");\r\ + \n :onerror Err {\r\ + \n /ip/firewall/address-list/add list=\$ListName comment=\$ListCo\ + mment \\\r\ + \n address=\$Address timeout=\$Timeout;\r\ + \n :set CntAdd (\$CntAdd + 1);\r\ + \n } do={\r\ + \n :log warning (\$ScriptName . \" Failed to add IPv4 address \" \ + . \$Address . \\\r\ + \n \" to list '\" . \$ListName . \"': \" . \$Err);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach BranchName,Branch in=\$IPv6Addresses do={\r\ + \n :log warning (\$ScriptName . \" Handling branch: \" . \$BranchName\ + );\r\ + \n :foreach Address,Timeout in=\$Branch do={\r\ + \n :log warning (\$ScriptName . \" Adding IPv6 address \" . \$Addre\ + ss . \\\r\ + \n \" to list '\" . \$ListName . \"' with \" . \$Timeout . \".\ + \");\r\ + \n :onerror Err {\r\ + \n /ipv6/firewall/address-list/add list=\$ListName comment=\$List\ + Comment \\\r\ + \n address=\$Address timeout=\$Timeout;\r\ + \n :set CntAdd (\$CntAdd + 1);\r\ + \n } do={\r\ + \n :log warning (\$ScriptName . \" Failed to add IPv6 address \" \ + . \$Address . \\\r\ + \n \" to list '\" . \$ListName . \"': \" . \$Err);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :log info (\$ScriptName . \" list: \" . \$ListName . \\\r\ + \n \" (\" . [ \$HumanReadableNum (\$CntAdd + \$CntRenew) 1000 ] . \ + \")\" . \\\r\ + \n \" -- added: \" . [ \$HumanReadableNum \$CntAdd 1000 ] . \\\r\ + \n \" - renewed: \" . [ \$HumanReadableNum \$CntRenew 1000 ] . \\\r\ + \n \" - removed: \" . [ \$HumanReadableNum \$CntRemove 1000 ]);\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err;\r\ + \n}\r\ + \n" +add dont-require-permissions=no name=awg-env owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\ + container/envs/add list=awg-proxy-env key=AWG_LISTEN value=\":55055\"\ + \n/container/envs/add list=awg-proxy-env key=AWG_REMOTE value=\"109.107.17\ + 7.79:55055\"\ + \n/container/envs/add list=awg-proxy-env key=AWG_JC value=\"9\"\ + \n/container/envs/add list=awg-proxy-env key=AWG_JMIN value=\"105\"\ + \n/container/envs/add list=awg-proxy-env key=AWG_JMAX value=\"920\"\ + \n/container/envs/add list=awg-proxy-env key=AWG_S1 value=\"90\"\ + \n/container/envs/add list=awg-proxy-env key=AWG_S2 value=\"136\"\ + \n/container/envs/add list=awg-proxy-env key=AWG_S3 value=\"45\"\ + \n/container/envs/add list=awg-proxy-env key=AWG_S4 value=\"27\"\ + \n/container/envs/add list=awg-proxy-env key=AWG_H1 value=\"472437748-4724\ + 38637\"\ + \n/container/envs/add list=awg-proxy-env key=AWG_H2 value=\"707808381-7078\ + 09250\"\ + \n/container/envs/add list=awg-proxy-env key=AWG_H3 value=\"1609078552-160\ + 9079495\"\ + \n/container/envs/add list=awg-proxy-env key=AWG_H4 value=\"1012329484-101\ + 2329741\"\ + \n/container/envs/add list=awg-proxy-env key=AWG_I1 value=\"\"\ + \n/container/envs/add list=awg-proxy-env key=AWG_I2 value=\"\"\ + \n/container/envs/add list=awg-proxy-env key=AWG_I3 value=\"\ + \"\ + \n/container/envs/add list=awg-proxy-env key=AWG_I4 value=\"\"\ + \n/container/envs/add list=awg-proxy-env key=AWG_I5 value=\"\"\ + \n/container/envs/add list=awg-proxy-env key=AWG_SERVER_PUB value=\"o5IgCl\ + 1/G6xbl6j7sPaP4ZNYREeYOmqZjKbm+v0b9jU=\"\ + \n/container/envs/add list=awg-proxy-env key=AWG_CLIENT_PUB value=[/interf\ + ace/wireguard/get [find name=wg-awg-proxy] public-key]" +add dont-require-permissions=no name=awg-container-add owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\ + container/add file=sata1/tmp/awg-proxy-amd64.tar.gz interface=veth-awg-pro\ + xy envlist=awg-proxy-env \\\ + \n hostname=awg-proxy root-dir=sata1/awg-proxy logging=yes shm-size=4M \ + start-on-boot=yes\ + \n/container/start [find where tag~\"awg-proxy\"]" +add dont-require-permissions=yes name=awg2-webui owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + put \"Download image, and save him to usb1/tmp\"\ + \n/tool/fetch url=\"https://ros.vados.ru/docker/awg2-webui-chr.tar\" dst-p\ + ath=sata1/tmp/awg2-webui.tar\ + \n\ + \n:put \"1. Create veth interface\"\ + \n/interface veth add name=veth-awg address=10.9.9.2/24 gateway=10.9.9.1\ + \n\ + \n:put \"2. Create bridge and add veth\"\ + \n/interface bridge add name=br-awg\ + \n/interface bridge port add bridge=br-awg interface=veth-awg\ + \n\ + \n:put \"3. Assign IP to bridge\"\ + \n/ip address add address=10.9.9.1/24 interface=br-awg\ + \n\ + \n:put \"4. NAT: masquerade container traffic\"\ + \n/ip firewall nat add chain=srcnat src-address=10.9.9.0/24 action=masquer\ + ade\ + \n\ + \n:put \"5. Port forward: UDP 443 \? container (AmneziaWG QUIC mimicry)\"\ + \n/ip firewall nat add chain=dstnat protocol=udp dst-port=443 action=dst-n\ + at to-addresses=10.9.9.2 to-ports=55055 in-interface=ether1\ + \n\ + \n:put \"6. Port forward: HTTPS 9443 \? container Web UI\"\ + \n/ip firewall nat add chain=dstnat protocol=tcp dst-port=9443 action=dst-\ + nat to-addresses=10.9.9.2 to-ports=443 in-interface=ether1\ + \n\ + \n:put \"Create environment list..\"\ + \n/container envs add list=awgui-env key=WEB_USER value=vados\ + \n/container envs add list=awgui-env key=WEB_PASS value=zoomzoomrulezz\ + \n/container envs add list=awgui-env key=SECRET_KEY value=RanDomSecret32Sy\ + mboLs2325272931q\ + \n/container envs add list=awgui-env key=AWG_ENDPOINT value=10.30.30.10:44\ + 3\ + \n\ + \n:put \"Load and start container...\"\ + \n/container add file=sata1/tmp/awg2-webui.tar interface=veth-awg hostname\ + =awg2-webui \\\ + \nroot-dir=sata1/awg2-webui layer-dir=sata1/docker/awg2-webu/ envlist=awgu\ + i-env start-on-boot=yes logging=yes shm-size=4M\ + \n\ + \n:put \"Start...\"\ + \n/container start 0\ + \n\ + \n:put \"Verify...\"\ + \n/container print\ + \n\ + \n:put \"Should show: status=running\"\ + \n\ + \n/log print where topics~\"container\"\ + \n\ + \n:put \"Should show: AWG started, nginx running\"\ + \n" +add dont-require-permissions=no name=awg-proxy-go-Client owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \n:put \"[::::::::::::::: START :::::::::::::::]\"\ + \n:put \"\"\ + \n:put \"Add ram disk tmpfs\"\ + \n#/disk add type=tmpfs tmpfs-max-size=100M slot=ram\ + \n\ + \n:put \"veth and network:\"\ + \n /interface/bridge add name=docker port-cost-mode=short\ + \n /ip/address/add address=192.168.100.1/24 interface=docker\ + \n\ + \n /interface/veth add address=192.168.100.3/24 gateway=192.168.100.1 name\ + =awg-proxy-go-client\ + \n /interface/bridge/port add bridge=docker interface=awg-proxy-go-client\ + \n\ + \n:put \"add config-client.json\"\ + \n/file/add name=sata1/mounts/awg-proxy-go/config-client.json\ + \n/container/mounts/add src=sata1/mounts/awg-proxy-go/config-client.json d\ + st=/app/config.json list=awgcfg-client\ + \n\ + \n#:put \"Download image, and save him to sata1/tmp/awgproxy-0.0.1-0034-am\ + d64.tar.gz\"\ + \n#/tool/fetch url=\"https://ros.vados.ru/amneziawg/img/awgproxy-0.0.1-003\ + 4-amd64.tar.gz\" dst-#path=\"tmp/awgproxy-0.0.1-0034-amd64.tar.gz\"\ + \n\ + \n:put \"Add container\"\ + \n/container/add file=\"usb1/dst/awgproxy-0.0.1-0036-amd64.tar\" interface\ + =awg-proxy-go-client hostname=awg-proxy-go-client root-dir=sata1/awg-proxy\ + -client logging=yes start-on-boot=yes workdir=sata1/docker/ name=\"awg-pro\ + xy-go-client\" mountlists=awgcfg-client\ + \n\ + \n:put \"Start container\"\ + \n#/container/start awg-proxy-go-client\ + \n\ + \n:put \"Add user:\"\ + \n /user/add address=192.168.100.2 group=write name=awg-proxy-go password=\ + peskar55\ + \n\ + \n:put \"Add forwarding port web-ui\"\ + \n /ip firewall nat add action=dst-nat chain=dstnat dst-port=8089 in-inter\ + face=ether1 protocol=tcp to-addresses=192.168.100.3 to-port=8088\ + \n\ + \n:put \"Add native WireGuard-server wg-awg, add address.\"\ + \n /interface/wireguard/add name=wg-awg-client\ + \n /ip/address/add address=172.17.0.1/24 interface=wg-awg-client\ + \n\ + \n:put \"\"\ + \n:put \"[::::::::::::::: END :::::::::::::::]\"\ + \n" +add comment=awg2wg dont-require-permissions=no name=awg2wg-uninstall owner=\ + Manager policy=ftp,read,write,policy source="\r\ + \n :put \"Uninstalling AmneziaWG...\"\r\ + \n :log info \"Uninstalling AmneziaWG...\"\r\ + \n /ip/route/remove [find where comment=awg2wg-tunnel]\r\ + \n :do { /tool/netwatch/remove [find where comment=Monitor-AWG2WG] } on-e\ + rror={}\r\ + \n :do { /ip/route/remove [find where comment=Monitor-AWG2WG] } on-error=\ + {}\r\ + \n /container/stop [find where interface=veth-awg2wg]\r\ + \n :delay 7s\r\ + \n /interface/list/member/remove [find where interface=wg-awg2wg]\r\ + \n /container/remove [find where interface=veth-awg2wg]\r\ + \n /container/envs/remove [find where list=\"awg2wg-env\"]\r\ + \n /ip/firewall/nat/remove [find where out-interface=\"wg-awg2wg\"]\r\ + \n /ip/address/remove [find where address=\"172.20.0.1/30\"]\r\ + \n /interface/veth/remove [find where name=\"veth-awg2wg\"]\r\ + \n /interface/wireguard/peers/remove [find where interface=\"wg-awg2wg\"]\ + \r\ + \n /ip/address/remove [find where interface=\"wg-awg2wg\"]\r\ + \n /interface/wireguard/remove [find where name=\"wg-awg2wg\"]\r\ + \n :do { /file/remove [find where name~\"awg2wg.+tar\"] } on-error={}\r\ + \n :do { /file/remove [find where name=\"disk1/awg2wg\"] } on-error={}\r\ + \n :put \"Uninstall AmneziaWG Proxy complete!\"\r\ + \n :log info \"Uninstall AmneziaWG Proxy complete!\"\r\ + \n /system/script/remove [find where name=awg2wg-uninstall]\r\ + \n" +add dont-require-permissions=no name=amneziawg-mikrotik-c owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\ + \n:global imagesPath \"amneziawg/img/\";\ + \n:local Image \"awg-proxy-amd64-7.20-Docker.tar.gz\";\ + \n\ + \n:global DstDir \"sata1/dst/\";\ + \n\ + \n:local Url=(\$GlobalScriptsUrl . \$ImagesPath . \$Image);\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n" +add comment=Generator dont-require-permissions=no name=awg-VDSina owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# ============================================================\ + \n# AWG Proxy -- MikroTik RouterOS (protocol: v2)\ + \n# 2026-06-30 22:08:12\ + \n# ============================================================\ + \n\ + \n# 0. Check prerequisites\ + \n:if ([:len [/system/package/find where name=\"container\" disabled=no]] \ + = 0) do={\ + \n :put \"Container package is not installed or disabled. Install it and \ + reboot.\"\ + \n :error \"Usage: /system/device-mode/update container=yes\"\ + \n}\ + \n\ + \n# Auto-detect storage\ + \n:global awgDisk \"disk1\"\ + \n{\ + \n :local usbFree 0\ + \n :do { :set usbFree [/disk/get [find where mount-point=\"usb1\"] free] \ + } on-error={}\ + \n :if (\$usbFree > 0) do={\ + \n :set awgDisk \"usb1\"\ + \n :put (\"Using USB: usb1 (\" . (\$usbFree / 1048576) . \" MB free)\")\ + \n } else={\ + \n :if ([:len [/disk/find where slot=\"usb1\"]] > 0) do={\ + \n :put \"USB found but not mounted. Format as ext4\?\"\ + \n :put \"Press 'y' to confirm:\"\ + \n :local key [/terminal/inkey timeout=30]\ + \n :if (\$key = 121 || \$key = 89) do={\ + \n /disk/format-drive usb1 file-system=ext4 label=usb1\ + \n :delay 3s\ + \n :do { :set usbFree [/disk/get [find where mount-point=\"usb1\"] \ + free] } on-error={}\ + \n :if (\$usbFree > 0) do={\ + \n :set awgDisk \"usb1\"\ + \n } else={ :put \"Format failed, using disk1\" }\ + \n } else={ :put \"Using disk1\" }\ + \n } else={ :put \"No USB, using disk1\" }\ + \n }\ + \n}\ + \n\ + \n# 1. Uninstall script\ + \n/system/script/add name=awg-VDSina-uninstall comment=awg-VDSina source={\ + \n :put \"Uninstallimg AmneziaWG...\"\ + \n :log info \"Uninstallimg AmneziaWG...\"\ + \n :local prevDNS \"\"\ + \n :do { :set prevDNS [/container/envs/get [find where list=\"awg-VDSina-\ + env\" key=\"AWG_PREV_DNS\"] value] } on-error={}\ + \n :local storageDisk \"disk1\"\ + \n :do { :set storageDisk [/container/envs/get [find where list=\"awg-VDS\ + ina-env\" key=\"AWG_STORAGE\"] value] } on-error={}\ + \n :local prevTmpdir \"\"\ + \n :if (\$storageDisk != \"disk1\") do={\ + \n :do { :set prevTmpdir [/container/envs/get [find where list=\"awg-VD\ + Sina-env\" key=\"AWG_PREV_TMPDIR\"] value] } on-error={}\ + \n }\ + \n /ip/route/remove [find where comment=awg-VDSina-tunnel]\ + \n /ip/route/remove [find where comment=awg-VDSina-dns]\ + \n /container/stop [find where interface=veth-awg-VDSina]\ + \n :delay 7s\ + \n /container/remove [find where interface=veth-awg-VDSina]\ + \n /container/envs/remove [find where list=\"awg-VDSina-env\"]\ + \n :if (\$prevDNS != \"\") do={\ + \n :do { /ip/dns/set servers=\"\$prevDNS\" } on-error={}\ + \n :put (\"DNS restored to: \$prevDNS\")\ + \n }\ + \n :if (\$storageDisk != \"disk1\") do={\ + \n /container/config set tmpdir=\$prevTmpdir\ + \n :put (\"Container tmpdir restored to: \$prevTmpdir\")\ + \n }\ + \n /ip/firewall/nat/remove [find where out-interface=\"wg-awg-VDSina\"]\ + \n /ip/firewall/nat/remove [find where src-address=\"172.19.75.208/30\"]\ + \n /ip/address/remove [find where address=\"172.19.75.209/30\"]\ + \n /interface/veth/remove [find where name=\"veth-awg-VDSina\"]\ + \n /interface/wireguard/peers/remove [find where interface=\"wg-awg-VDSin\ + a\"]\ + \n /ip/address/remove [find where interface=\"wg-awg-VDSina\"]\ + \n /interface/wireguard/remove [find where name=\"wg-awg-VDSina\"]\ + \n :do { /file/remove [find where name~\"awg-VDSina.+tar\"] } on-error={}\ + \n :do { /file/remove [find where name=(\$storageDisk . \"/awg-VDSina\")]\ + \_} on-error={}\ + \n :do { /file/remove [find where name=(\$storageDisk . \"/ru_ranges_time\ + out.rsc\")] } on-error={}\ + \n :if (\$storageDisk != \"disk1\") do={\ + \n :do { /file/remove [find where name~(\$storageDisk . \"/pull\")] } o\ + n-error={}\ + \n }\ + \n :put \"Uninstall AmneziaWG Proxy complete!\"\ + \n :log info \"Uninstall AmneziaWG Proxy complete!\"\ + \n /system/script/remove [find where name=awg-VDSina-uninstall]\ + \n}\ + \n\ + \n# 2. Network infrastructure\ + \n/interface/veth/add name=veth-awg-VDSina address=172.19.75.210/30 gatewa\ + y=172.19.75.209\ + \n/ip/address/add address=172.19.75.209/30 interface=veth-awg-VDSina\ + \n/ip/firewall/nat/add chain=srcnat action=masquerade src-address=172.19.7\ + 5.208/30\ + \n\ + \n# 3. WireGuard interface (MikroTik derives the public key automatically)\ + \n/interface/wireguard/add name=wg-awg-VDSina private-key=\"4CHyNhbOs923/E\ + yNDguMXJXdghL2I3UyzXPwrANVgHs=\" listen-port=14710 disabled=yes\ + \n/interface/wireguard/peers/add interface=wg-awg-VDSina public-key=\"o5Ig\ + Cl1/G6xbl6j7sPaP4ZNYREeYOmqZjKbm+v0b9jU=\" preshared-key=\"RNvF7T1cg5tyXcY\ + QnD9N5BEp6e20vVJQTv0GMjyvHU0=\" endpoint-address=172.19.75.210 endpoint-po\ + rt=51820 allowed-address=0.0.0.0/0 persistent-keepalive=10\ + \n/ip/address/add address=10.9.0.3/32 interface=wg-awg-VDSina\ + \n\ + \n# 4. Container environment variables\ + \n/container/envs/add list=awg-VDSina-env key=AWG_LISTEN value=\":51820\"\ + \n/container/envs/add list=awg-VDSina-env key=AWG_REMOTE value=\"109.107.1\ + 77.79:55055\"\ + \n/container/envs/add list=awg-VDSina-env key=AWG_JC value=\"9\"\ + \n/container/envs/add list=awg-VDSina-env key=AWG_JMIN value=\"105\"\ + \n/container/envs/add list=awg-VDSina-env key=AWG_JMAX value=\"920\"\ + \n/container/envs/add list=awg-VDSina-env key=AWG_S1 value=\"90\"\ + \n/container/envs/add list=awg-VDSina-env key=AWG_S2 value=\"136\"\ + \n/container/envs/add list=awg-VDSina-env key=AWG_H1 value=\"472437748-472\ + 438637\"\ + \n/container/envs/add list=awg-VDSina-env key=AWG_H2 value=\"707808381-707\ + 809250\"\ + \n/container/envs/add list=awg-VDSina-env key=AWG_H3 value=\"1609078552-16\ + 09079495\"\ + \n/container/envs/add list=awg-VDSina-env key=AWG_H4 value=\"1012329484-10\ + 12329741\"\ + \n/container/envs/add list=awg-VDSina-env key=AWG_SERVER_PUB value=\"o5IgC\ + l1/G6xbl6j7sPaP4ZNYREeYOmqZjKbm+v0b9jU=\"\ + \n/container/envs/add list=awg-VDSina-env key=AWG_CLIENT_PUB value=[/inter\ + face/wireguard/get [find name=wg-awg-VDSina] public-key]\ + \n/container/envs/add list=awg-VDSina-env key=AWG_S3 value=\"45\"\ + \n/container/envs/add list=awg-VDSina-env key=AWG_S4 value=\"27\"\ + \n/container/envs/add list=awg-VDSina-env key=AWG_I1 value=\"\"\ + \n/container/envs/add list=awg-VDSina-env key=AWG_I2 value=\"\"\ + \n/container/envs/add list=awg-VDSina-env key=AWG_I3 value=\"\ + \"\ + \n/container/envs/add list=awg-VDSina-env key=AWG_I4 value=\"\"\ + \n/container/envs/add list=awg-VDSina-env key=AWG_I5 value=\"\"\ + \n\ + \n# 5. DNS\ + \n{ :local rawDNS [/ip/dns/get servers]; :local prevDNS \"\"; :foreach s i\ + n=[:toarray \$rawDNS] do={ :if ([:len \$prevDNS] > 0) do={ :set prevDNS \"\ + \$prevDNS,\$s\" } else={ :set prevDNS \$s } }; /container/envs/add list=aw\ + g-VDSina-env key=AWG_PREV_DNS value=\"\$prevDNS\" }\ + \n# NOTE: replaces existing DNS configuration\ + \n/ip/dns/set servers=109.107.177.79\ + \n/ip/route/add dst-address=109.107.177.79/32 gateway=wg-awg-VDSina distan\ + ce=1 comment=awg-VDSina-dns\ + \n\ + \n# 6. Download, create and start container\ + \n/container/envs/add list=awg-VDSina-env key=AWG_STORAGE value=\$awgDisk\ + \n:if (\$awgDisk != \"disk1\") do={\ + \n :local tmpPath (\$awgDisk . \"/pull\")\ + \n /container/envs/add list=awg-VDSina-env key=AWG_PREV_TMPDIR value=[/co\ + ntainer/config/get tmpdir]\ + \n /container/config set tmpdir=\$tmpPath memory-high=200M\ + \n}\ + \n{\ + \n :local arch [/system/resource/get architecture-name]\ + \n :local ver [/system/resource/get version]\ + \n :local dotPos [:find \$ver \".\"]\ + \n :local rest [:pick \$ver (\$dotPos + 1) [:len \$ver]]\ + \n :local endPos [:find \$rest \".\"]\ + \n :if ([:typeof \$endPos] = \"nil\") do={ :set endPos [:find \$rest \" \ + \"] }\ + \n :local minor [:tonum [:pick \$rest 0 \$endPos]]\ + \n :local suffix \"\"\ + \n :if (\$minor <= 20) do={ :set suffix \"-7.20-Docker\" }\ + \n :local file \"\"\ + \n :if (\$arch = \"arm64\") do={ :set file (\"awg-proxy-arm64\" . \$suffi\ + x . \".tar.gz\") }\ + \n :if (\$arch = \"arm\") do={ :set file (\"awg-proxy-arm\" . \$suffix . \ + \".tar.gz\") }\ + \n :if (\$arch ~ \"x86\") do={ :set file (\"awg-proxy-amd64\" . \$suffix \ + . \".tar.gz\") }\ + \n :if (\$file = \"\") do={ :error \"Unsupported architecture: \$arch\" }\ + \n :local url \"https://github.com/timbrs/amneziawg-mikrotik-c/releases/l\ + atest/download/\$file\"\ + \n :local filePath \$file\ + \n :if (\$awgDisk != \"disk1\") do={\ + \n :set filePath (\$awgDisk . \"/pull/\" . \$file)\ + \n :do { /file/make-directory (\$awgDisk . \"/pull\") } on-error={}\ + \n }\ + \n :if ([:len [/file/find where name=\$filePath]] = 0) do={\ + \n :local freeStorage 0\ + \n :if (\$awgDisk = \"disk1\") do={\ + \n :set freeStorage [/system/resource/get free-hdd-space]\ + \n } else={\ + \n :do { :set freeStorage [/disk/get [find where mount-point=\$awgDis\ + k] free] } on-error={}\ + \n }\ + \n :if (\$freeStorage < 262144) do={\ + \n :put (\"WARNING: Low disk space (\" . (\$freeStorage / 1024) . \"K\ + B free). Need at least 256KB.\")\ + \n :put \"See: https://github.com/timbrs/amneziawg-mikrotik-c#insuffi\ + cient-disk-space\"\ + \n :error \"Insufficient disk space\"\ + \n }\ + \n :put (\"Fetching: \$url -> \" . \$filePath)\ + \n /tool/fetch url=\$url dst-path=\$filePath http-max-redirect-count=10\ + \n } else={\ + \n :put (\"File already exists: \" . \$filePath)\ + \n }\ + \n :local rootDir (\$awgDisk . \"/awg-VDSina\")\ + \n /container/add file=\$filePath interface=veth-awg-VDSina envlist=awg-V\ + DSina-env hostname=awg-VDSina root-dir=\$rootDir logging=no start-on-boot=\ + yes comment=awg-VDSina\ + \n :if (\$minor > 20) do={ [:parse \"/container/set [find where interface\ + =veth-awg-VDSina] shm-size=4M\"] }\ + \n /file/remove \$filePath\ + \n :local freeMem [/system/resource/get free-memory]\ + \n :if (\$freeMem < 16777216) do={\ + \n :put (\"WARNING: Low memory (\" . (\$freeMem / 1048576) . \"MB free)\ + . 16MB+ recommended.\")\ + \n }\ + \n /container/start [find where interface=veth-awg-VDSina]\ + \n :do { /file/remove [find where name=\"console-dump.txt\"] } on-error={\ + }\ + \n :put \"Waiting for container to start...\"\ + \n :delay 5s\ + \n /interface/wireguard/enable wg-awg-VDSina\ + \n :put \"WireGuard interface enabled\"\ + \n :put \"Installation complete!\"\ + \n :put \"Ping test: 109.107.177.79 via AmneziaWG tunnel. repeat 10 times\ + \"\ + \n /ping 109.107.177.79 count=10 interval=1\ + \n :put \"\"\ + \n :put \"======= NEXT STEPS =======\"\ + \n :put \"\"\ + \n :put \"Route specific traffic through the AmneziaWG tunnel:\"\ + \n :put \"\"\ + \n :put \" Route a single host:\"\ + \n :put \" /ip/route/add dst-address=8.8.8.8/32 gateway=wg-awg-VDSina \ + comment=awg-VDSina-tunnel\"\ + \n :put \"\"\ + \n :put \" Route a subnet:\"\ + \n :put \" /ip/route/add dst-address=100.0.0.0/8 gateway=wg-awg-VDSina\ + \_comment=awg-VDSina-tunnel\"\ + \n :put \"\"\ + \n :put \" Remove a route:\"\ + \n :put \" /ip/route/remove [find where comment=awg-VDSina-tunnel dst-\ + address=8.8.8.8/32]\"\ + \n :put \"\"\ + \n :put \" Show all tunnel routes:\"\ + \n :put \" /ip/route/print where comment=awg-VDSina-tunnel\"\ + \n :put \"\"\ + \n :put \" Uninstall:\"\ + \n :put \" /system/script/run awg-VDSina-uninstall\"\ + \n :put \"=========================\"\ + \n}\ + \n\ + \n# 7. Verification\ + \n# /container/print\ + \n# /interface/wireguard/print\ + \n# /interface/wireguard/peers/print\ + \n" +add comment="wg2awg GH repo in client mode" dont-require-permissions=no name=\ + "wg2awg client" owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \n:local Arch \"amd64\";\ + \n:local Version \"v0.0.1\";\ + \n:local Name wg2awg;\ + \n:local WorkDisk \"sata1\";\ + \n:local WorkDir (\$WorkDisk . \"/\" . \$Name);\ + \n:local Bridge (\"Bridge-\" . \$Name);\ + \n:local VetchMTU \"1280\";\ + \n:local Vetch (\"vetch-\" . \$Name);\ + \n:local VetchNet \"10.9.0.0\";\ + \n:local VetchGate \"10.9.0.1\";\ + \n:local VetchAddr \"10.9.0.3/32\";\ + \n:local Env (\$Name . \"-env\");\ + \n:local ConfDir (\"/etc/\" . \$Name . \"/\");\ + \n:local ConfFile (\$Name . \".conf\");\ + \n:local Mounts (\$WorkDisk . \"/mounts/\" . \$Name . \"/\");\ + \n:local RootDir (\$WorkDisk . \"/\" . \$Name);\ + \n:local Registry \"https://registry-1.docker.io\";\ + \n:local FetchFile (\$Name . \"-\" . \$Arch . \"-oci.tar\");\ + \n:local FetchUrl (\"https://github.com/vados-dev/wg2awg/releases/download\ + /\" . \$Version . \"/\" . \$FetchFile);\ + \n:local FetchDir (\$WorkDisk . \"/dst/\");\ + \n:local AwgListen \":44044\";\ + \n:local AwgRemote \"109.107.177.79\";\ + \n\ + \n#:put \"\"\ + \n#put \"Add ram disk tmpfs\"\ + \n#/disk add type=tmpfs tmpfs-max-size=100M slot=ram\ + \n\ + \n\ + \n:log warning \"[::::::::::::::: START :::::::::::::::]\"\ + \n:log warning \"Add veth and nat...\";\ + \n\ + \n/interface/veth/add name=\$Vetch address=\$VetchAddr gateway=\$VetchGate\ + ;\ + \n\ + \n:do {\ + \n:log warning (\"Remove interface: name=\" . \$Vetch . \", address=\" . \ + \$VetchAddr . \", gateway=\" . \$VetchGate);\ + \n/interface/veth/remove [find name=\$Vetch];\ + \n:log warning (\"Add interface: name=\" . \$Vetch . \", address=\" . \$Ve\ + tchAddr . \", gateway=\" . \$VetchGate);\ + \n/interface/veth/add name=\$Vetch address=\$VetchAddr gateway=\$VetchGate\ + ;\ + \n:log warning (\"Remove ip address: address=\" . \$VetchGate . \", interf\ + ace=\" . \$Vetch);\ + \n/ip/address/remove [find address=\$VetchGate interface=\$Vetch];\ + \n:log warning (\"Add ip address: address=\" . \$VetchGate . \", interface\ + =\" . \$Vetch);\ + \n/ip/address/add address=\$VetchGate interface=\$Vetch;\ + \n:log warning (\"Remove firewall nat rule: chain=srcnat action=masquerade\ + \_src-address=\" . \$VetchNet . \"/24\");\ + \n/ip/firewall/nat/remove [find chain=srcnat action=masquerade src-address\ + =(\$VetchNet . \"/24\")];\ + \n:log warning (\"Add firewall nat rule: chain=srcnat action=masquerade sr\ + c-address=\" . \$VetchNet . \"/24\");\ + \n/ip/firewall/nat/add chain=srcnat action=masquerade src-address=(\$VethN\ + et . \"/24\");\ + \n} on-error={}\ + \n\ + \n#:do {\ + \n#/file add type=directory name=\$Mounts\ + \n#} on-error={}\ + \n\ + \n\ + \n:do {\ + \n:log warning (\"Remove WorkDir: \" . \$WorkDir . \"...\");\ + \n/file remove [find name=\$WorkDir];\ + \n:log warning (\"Add WorkDir: \" . \$WorkDir . \"...\");\ + \n/file add type=directory name=\$WorkDir;\ + \n:log warning (\"Remove config file \" . \$Mounts . \$ConfFile . \"...\")\ + ;\ + \n/file remove [find name=(\$Mounts . \$ConfFile)];\ + \n:log warning (\"Add config file \" . \$Mounts . \$ConfFile . \"...\");\ + \n/file add type=file name=(\$Mounts . \$ConfFile) contents=\"[Interface]\ + \nPrivateKey = 4CHyNhbOs923/EyNDguMXJXdghL2I3UyzXPwrANVgHs=\ + \nAddress = \$VetchAddr\ + \nMTU = \$VetchMTU\ + \nDNS = 109.107.177.79\ + \nPreUp = ip route add 109.107.177.79/32 via \$VetchGate dev \$Vetch\ + \nPostDown = ip route del 109.107.177.79/32 via \$VetchGate dev \$Vetch\ + \nJc = 9\ + \nJmin = 105\ + \nJmax = 920\ + \nS1 = 90\ + \nS2 = 136\ + \nS3 = 45\ + \nS4 = 27\ + \nH1 = 472437748-472438637\ + \nH2 = 707808381-707809250\ + \nH3 = 1609078552-1609079495\ + \nH4 = 1012329484-1012329741\ + \nI1 = <\ + r 4>\ + \nI2 = \ + \nI3 = \ + \nI4 = \ + \nI5 = \ + \n\ + \n[Peer]\ + \nPublicKey = o5IgCl1/G6xbl6j7sPaP4ZNYREeYOmqZjKbm+v0b9jU=\ + \nAllowedIPs = 0.0.0.0/0\ + \nEndpoint = \$AwgRemote\ + \nPersistentKeepalive = 10\ + \nPresharedKey = RNvF7T1cg5tyXcYQnD9N5BEp6e20vVJQTv0GMjyvHU0=\";\ + \n} on-error={}\ + \n\ + \n\ + \n:do {\ + \n:log warning (\"Remove mounts list \$Env...\");\ + \n/container/mounts/remove [find list=\$Env];\ + \n:log warning (\"Add mounts list \$Env...\");\ + \n/container/mounts/add src=(\$Mounts . \$ConfFile) dst=(\$ConfDir . \$Con\ + fFile) list=\$Env mode=ro;\ + \n:log warning (\"Remove Environment keys.\");\ + \n/container/envs/remove [find list=\$Env];\ + \n:log warning (\"Add Environment keys.\");\ + \n/container/envs/add list=\$Env key=AWG_CONFIG value=(\$ConfDir . \$ConfF\ + ile);\ + \n/container/envs/add list=\$Env key=AWG_LISTEN value=\$AwgListen\ + \n/container/envs/add list=\$Env key=AWG_REMOTE value=\$AwgRemote\ + \n/container/envs/add list=\$Env key=AWG_MODE value=client\ + \n} on-error={}\ + \n\ + \n:do {\ + \n:log warning (\"Remove \" . \$WorkDisk . \"/tmp\");\ + \n/file remove [find name=(\$WorkDisk . \"/tmp\")];\ + \n:log warning (\"Add \" . \$WorkDisk . \"/tmp\");\ + \n/file add type=directory name=(\$WorkDisk . \"/tmp\");\ + \n:log warning (\"Container add tmpdir \" . \$WorkDisk . \"/tmp\");\ + \n/container config set tmpdir=(\$WorkDisk . \"/tmp\");\ + \n} on-error={}\ + \n\ + \n:do {\ + \n:log warning (\"Remove \" . \$FetchDir . \$FetchFile . \".\");\ + \n/file remove [find name=(\$FetchDir . \$FetchFile)];\ + \n:log warning (\"Download image from \" . \$FetchUrl . \" and save him to\ + \_\" . \$FetchDir . \$FetchFile . \".\");\ + \n/tool/fetch url=\$FetchUrl dst-path=(\$FetchDir . \$FetchFile);\ + \n} on-error={}\ + \n\ + \n#:log warning (\"Container set registry \" . \$Registry . \" tmpdir= \" \ + . \$WorkDisk . \"/tmp\");\ + \n#/container/config/set registry-url=\$Registry tmpdir=(\$WorkDisk . \"/t\ + mp\");\ + \n\ + \n#:do {\ + \n:log warning (\"Container add width: file=\" . \$FetchDir . \$FetchFile \ + . \", interface=\" . \$Vetch . \", hostname=\" . \$Name . \", mountlists=\ + \" . \$Env . \", envlist=\" . \$Env . \", root-dir=\" . \$RootDir . \", wo\ + rkdir=\" . \$WorkDir . \", name=\" . \$Name . \", logging=yes, start-on-bo\ + ot=yes\");\ + \n/container/add file=(\$FetchDir . \$FetchFile) interface=\$Vetch hostnam\ + e=\$Name mountlists=\$Env envlist=\$Env root-dir=\$RootDir workdir=\$WorkD\ + ir name=\$Name logging=yes start-on-boot=yes;\ + \n#} on-error={}\ + \n\ + \n\ + \n#/container/start [find where interface=\$Vetch];\ + \n\ + \n#/interface/bridge add name=\$Bridge port-cost-mode=short;\ + \n#/ip/address/add address=192.168.100.1/24 interface=\$Bridge;\ + \n\ + \n#/interface/veth add address=192.168.100.3/24 gateway=192.168.100.1 name\ + =awg-proxy-go-client\ + \n#/interface/bridge/port add bridge=docker interface=awg-proxy-go-client\ + \n\ + \n#:put \"add config-client.json\"\ + \n#/file/add name=sata1/mounts/awg-proxy-go/config-client.json\ + \n#/container/mounts/add src=sata1/mounts/awg-proxy-go/config-client.json \ + dst=/app/config.json list=awgcfg-client\ + \n\ + \n#:put \"Download image, and save him to sata1/tmp/awgproxy-0.0.1-0034-am\ + d64.tar.gz\"\ + \n#/tool/fetch url=\"https://ros.vados.ru/amneziawg/img/awgproxy-0.0.1-003\ + 4-amd64.tar.gz\" dst-#path=\"tmp/awgproxy-0.0.1-0034-amd64.tar.gz\"\ + \n\ + \n#:put \"Add container\"\ + \n#/container/add file=\"usb1/dst/awgproxy-0.0.1-0036-amd64.tar\" interfac\ + e=awg-proxy-go-client hostname=awg-proxy-go-client root-dir=sata1/awg-prox\ + y-client logging=yes start-on-boot=yes workdir=sata1/docker/ name=\"awg-pr\ + oxy-go-client\" mountlists=awgcfg-client\ + \n\ + \n#:put \"Start container\"\ + \n#/container/start awg-proxy-go-client\ + \n\ + \n#:put \"Add user:\"\ + \n#/user/add address=192.168.100.2 group=write name=awg-proxy-go password=\ + peskar55\ + \n\ + \n#:put \"Add forwarding port web-ui\"\ + \n#/ip firewall nat add action=dst-nat chain=dstnat dst-port=8089 in-inter\ + face=ether1 protocol=tcp to-addresses=192.168.100.3 to-port=8088\ + \n\ + \n#:put \"Add native WireGuard-server wg-awg, add address.\"\ + \n#/interface/wireguard/add name=wg-awg-client\ + \n#/ip/address/add address=172.17.0.1/24 interface=wg-awg-client\ + \n\ + \n:put \"\"\ + \n:put \"[::::::::::::::: END :::::::::::::::]\"\ + \n" +add dont-require-permissions=no name=tmp_print owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\ + interface/wireguard/add name=wg-VDSina private-key=\"4CHyNhbOs923/EyNDguMX\ + JXdghL2I3UyzXPwrANVgHs=\" listen-port=21641 \ + \n :put \"======= AWG PROXY SETUP =======\"\ + \n :put \"\"\ + \n :put \"Run awg-proxy on your external device (10.30.30.33).\"\ + \n :put \"\"\ + \n :put \"1. Download the binary for your platform:\"\ + \n :put \" Linux arm64: https://github.com/timbrs/amneziawg-mikrotik-c/\ + releases/latest/download/awg-proxy-linux-arm64\"\ + \n :put \" Linux arm: https://github.com/timbrs/amneziawg-mikrotik-c/\ + releases/latest/download/awg-proxy-linux-arm\"\ + \n :put \" Linux amd64: https://github.com/timbrs/amneziawg-mikrotik-c/\ + releases/latest/download/awg-proxy-linux-amd64\"\ + \n :put \"\"\ + \n :put \"2. Set environment variables and run:\"\ + \n :put \"export AWG_LISTEN=\\\":51820\\\"\"\ + \n :put \"export AWG_REMOTE=\\\"109.107.177.79:55055\\\"\"\ + \n :put \"export AWG_JC=\\\"9\\\"\"\ + \n :put \"export AWG_JMIN=\\\"105\\\"\"\ + \n :put \"export AWG_JMAX=\\\"920\\\"\"\ + \n :put \"export AWG_S1=\\\"90\\\"\"\ + \n :put \"export AWG_S2=\\\"136\\\"\"\ + \n :put \"export AWG_H1=\\\"472437748-472438637\\\"\"\ + \n :put \"export AWG_H2=\\\"707808381-707809250\\\"\"\ + \n :put \"export AWG_H3=\\\"1609078552-1609079495\\\"\"\ + \n :put \"export AWG_H4=\\\"1012329484-1012329741\\\"\"\ + \n :put \"export AWG_SERVER_PUB=\\\"o5IgCl1/G6xbl6j7sPaP4ZNYREeYOmqZjKbm+\ + v0b9jU=\\\"\"\ + \n :put (\"export AWG_CLIENT_PUB=\\\"\" . [/interface/wireguard/get [find\ + \_name=wg-VDSina] public-key] . \"\\\"\")\ + \n :put \"export AWG_S3=\\\"45\\\"\"\ + \n :put \"export AWG_S4=\\\"27\\\"\"\ + \n :put \"export AWG_I1=\\\"\\\"\"\ + \n :put \"export AWG_I2=\\\"\\\"\"\ + \n :put \"export AWG_I3=\\\"\\\"\"\ + \n :put \"export AWG_I4=\\\"\\\"\"\ + \n :put \"export AWG_I5=\\\"\\\"\"\ + \n :put \"\"\ + \n :put \"chmod +x awg-proxy-linux-* && ./awg-proxy-linux-\"\ + \n :put \"\"\ + \n :put \"3. (Optional) Create a systemd service for auto-start.\"\ + \n :put \"\"\ + \n :put \"Route specific traffic through the AmneziaWG tunnel:\"\ + \n :put \"\"\ + \n :put \" Route a single host:\"\ + \n :put \" /ip/route/add dst-address=8.8.8.8/32 gateway=wg-VDSina comm\ + ent=VDSina-tunnel\"\ + \n :put \"\"\ + \n :put \" Route a subnet:\"\ + \n :put \" /ip/route/add dst-address=100.0.0.0/8 gateway=wg-VDSina com\ + ment=VDSina-tunnel\"\ + \n :put \"\"\ + \n :put \" Remove a route:\"\ + \n :put \" /ip/route/remove [find where comment=VDSina-tunnel dst-addr\ + ess=8.8.8.8/32]\"\ + \n :put \"\"\ + \n :put \" Show all tunnel routes:\"\ + \n :put \" /ip/route/print where comment=VDSina-tunnel\"\ + \n :put \"\"\ + \n :put \" Uninstall:\"\ + \n :put \" /system/script/run VDSina-uninstall\"\ + \n :put \"================================\"" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +add name=manager policy="local,ssh,ftp,read,write,policy,api,rest-api,!telnet,\ + !reboot,!test,!winbox,!password,!web,!sniff,!sensitive,!romon" +/app +set cinny firewall-redirects=8094:80:tcp:web +set goaway container-command-lines=goaway:none:docker.io/pommee/goaway:latest +set home-assistant container-command-lines=\ + home-assistant:none:lscr.io/linuxserver/homeassistant +set n8n firewall-redirects=5678:5678:tcp:web +set nextcloud container-command-lines="db:none:docker.io/postgres:17,redis:non\ + e:docker.io/valkey/valkey:/bin/sh -c 'valkey-server --port 6379 --appendon\ + ly yes --requirepass \$VALKEY_PASSWORD',server:none:docker.io/nextcloud:ap\ + ache" +set pihole environment="pihole:FTLCONF_dns_listeningMode=all,pihole:FTLCONF_we\ + bserver_api_password=password" +set redlib firewall-redirects=8087:8080:tcp:web +set solr container-command-lines=solr:none:docker.io/solr:latest +set uptime-kuma container-command-lines=\ + uptime-kuma:none:docker.io/louislam/uptime-kuma:1 +/app settings +set disk=*7 lan-bridge=Bridge-LAN registry-mirrors="https://reg.vados.ru/:http\ + s://reg.vados.ru/,https://registry-1.docker.io:https://registry-1.docker.i\ + o,https://ghcr.io:https://ghcr.io" show-in-webfig=no +/caps-man aaa +set interim-update=20m20s mac-caching=16m40s +/caps-man access-list +add action=reject allow-signal-out-of-range=10s disabled=no interface=all \ + signal-range=-120..-80 ssid-regexp="" +add action=accept allow-signal-out-of-range=10s disabled=no interface=all \ + signal-range=-79..120 ssid-regexp="" +/caps-man manager +set ca-certificate=WiFi-CAPsMAN-CA-6D4D5AB6A085 certificate=\ + WiFi-CAPsMAN-6D4D5AB6A085 enabled=yes package-path=\ + /tmpfs/capsman-packages require-peer-certificate=yes upgrade-policy=\ + require-same-version +/caps-man manager interface +set [ find default=yes ] forbid=yes +add disabled=no interface=Bridge-LAN +/caps-man provisioning +add action=create-dynamic-enabled hw-supported-modes=g,gn,b \ + master-configuration=2G name-format=prefix-identity name-prefix=2G +add action=create-dynamic-enabled hw-supported-modes=an,ac,a \ + master-configuration=5G name-format=prefix-identity name-prefix=5G +add action=create-dynamic-enabled disabled=yes hw-supported-modes=ac,an,a \ + master-configuration=2G name-format=prefix-identity name-prefix=5ghz-ac +add action=create-dynamic-enabled disabled=yes hw-supported-modes=an \ + master-configuration=5G name-format=prefix-identity name-prefix=5ghz-an +/certificate settings +set builtin-trust-store=all +/container config +set layer-dir=/sata1/docker/layers memory-high=200.0MiB memory-max=4096.0MiB \ + registry-url=https://registry-1.docker.io tmpdir=/sata1/tmp username=\ + amsternl +/container envs +add key=AWG_CONFIG list=wg2awg-env value=/etc/wg2awg/wg2awg.conf +add key=AWG_LISTEN list=wg2awg-env value=:44044 +add key=AWG_MODE list=wg2awg-env value=client +add key=AWG_REMOTE list=wg2awg-env value=109.107.177.79 +/container mounts +add dst=/etc/wg2awg/wg2awg.conf list=wg2awg-env mode=ro src=\ + /sata1/mounts/wg2awg/wg2awg.conf +/ip smb +set enabled=no +/interface bridge port +add bridge=Bridge-LAN interface=LAN +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=Internet \ + lan-interface-list=LAN wan-interface-list=WAN +/interface list member +add interface=ether1 list=WAN +add interface=Bridge-LAN list=LAN +/interface wifi cap +set discovery-interfaces=*DF +/interface wifi capsman +set ca-certificate=auto certificate=auto interfaces=Bridge-LAN package-path=\ + /tmpfs/capsman-packages require-peer-certificate=no upgrade-policy=none +/ip address +add address=10.30.30.10/24 interface=Bridge-LAN network=10.30.30.0 +/ip dhcp-client +add disabled=yes interface=ether1 name=client1 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set disabled=yes interface=*3 lease-script=\ + lease-script lease-time=10m name=nucDHCP server-address=10.30.30.10 +/ip dns +set allow-remote-requests=yes doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=10.30.30.33,109.107.177.79 \ + verify-doh-cert=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip route +add check-gateway=none disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\ + 10.30.30.81 routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set reverse-proxy disabled=yes +set ssh port=2222 +set www-ssl port=4443 +set api-ssl disabled=yes +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-secure=no scep-plain=no webfig-plain=no \ + webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=*3 type=external +add interface=*B5 type=internal +/ipv6 firewall address-list +add address=2400:cb00::/32 list=CLOUDFLARE-IP-Address +add address=2606:4700::/32 list=CLOUDFLARE-IP-Address +add address=2803:f800::/32 list=CLOUDFLARE-IP-Address +add address=2405:b500::/32 list=CLOUDFLARE-IP-Address +add address=2405:8100::/32 list=CLOUDFLARE-IP-Address +add address=2a06:98c0::/29 list=CLOUDFLARE-IP-Address +add address=2c0f:f248::/32 list=CLOUDFLARE-IP-Address +/special-login +add port=serial0 +/system clock +set time-zone-name=Europe/Moscow +/system identity +set name=MikroNUC +/system note +set show-at-login=no +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes +/system ntp client servers +add address=10.30.30.81 +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +/system package update +set check-certificate=yes-without-crl ip-version=ipv4 +/system scheduler +add comment="Every Day Set Global Environment Variables" disabled=yes name=\ + AM-SetGlobalEnv on-event=\ + "/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" disabled=yes interval=1d \ + name=AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Fake Bridges" disabled=yes interval=1d name=\ + mod/AM-IPbridge on-event="/system/script/run mod/AM-IPbridge;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Telegram Chat Bot" disabled=yes interval=30s name=mod/AM-TG-Bot \ + on-event="/system/script/run mod/AM-TG-Bot;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment=\ + "Every 7 Day Check For Update and Backup send notification to EMail." \ + disabled=yes interval=1w name=AM-Backup-UpdateEmail on-event=\ + "/system/script { run AM-Backup-UpdateEmail; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2026-06-25 start-time=03:41:27 +/tool e-mail +set certificate-verification=no from=MikroNUC port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/user aaa +set accounting=no diff --git a/MikroNUC/history/20260817/20260817002001-Diff-Config.rsc b/MikroNUC/history/20260817/20260817002001-Diff-Config.rsc new file mode 100644 index 0000000..3dc58c5 --- /dev/null +++ b/MikroNUC/history/20260817/20260817002001-Diff-Config.rsc @@ -0,0 +1,582 @@ +24a25 +> add name=internal protocol-mode=none +26a28,309 +> /interface veth +> add address="" container-mac-address=24:21:2C:26:EA:2F dhcp=yes gateway="" \ +> gateway6="" mac-address=24:21:2C:26:EA:2E name=veth-app-HA-otbr-matter +> add address=172.18.0.86/24 container-mac-address=32:18:2B:C3:9B:3C dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=32:18:2B:C3:9B:3B name=\ +> veth-app-adventurelog +> add address=172.18.0.87/24 container-mac-address=2A:04:D2:E3:35:2A dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=2A:04:D2:E3:35:29 name=\ +> veth-app-babybuddy +> add address=172.18.0.88/24 container-mac-address=20:C4:8E:BC:AE:EF dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=20:C4:8E:BC:AE:EE name=\ +> veth-app-backrest +> add address=172.18.0.89/24 container-mac-address=54:12:68:AB:5B:26 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=54:12:68:AB:5B:25 name=\ +> veth-app-birdnet-go +> add address="" container-mac-address=4E:75:8A:1C:DE:61 dhcp=yes gateway="" \ +> gateway6="" mac-address=4E:75:8A:1C:DE:60 name=veth-app-caddy +> add address=172.18.0.90/24 container-mac-address=62:1C:85:A6:26:74 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=62:1C:85:A6:26:73 name=\ +> veth-app-calibre-web +> add address="" container-mac-address=40:14:50:A7:E9:C4 dhcp=yes gateway="" \ +> gateway6="" mac-address=40:14:50:A7:E9:C3 name=veth-app-chr +> add address=172.18.0.91/24 container-mac-address=54:CB:C8:FC:9C:6F dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=54:CB:C8:FC:9C:6E name=\ +> veth-app-cinny +> add address=172.18.0.92/24 container-mac-address=32:3C:0A:F0:FF:88 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=32:3C:0A:F0:FF:87 name=\ +> veth-app-cloudflared +> add address=172.18.0.93/24 container-mac-address=58:C2:AD:23:FF:E7 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=58:C2:AD:23:FF:E6 name=\ +> veth-app-code-server +> add address=172.18.0.94/24 container-mac-address=14:48:58:EE:E4:8B dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=14:48:58:EE:E4:8A name=\ +> veth-app-conduit +> add address=172.18.0.95/24 container-mac-address=3A:99:FA:FF:15:95 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=3A:99:FA:FF:15:94 name=\ +> veth-app-convertx +> add address=172.18.0.96/24 container-mac-address=62:92:21:8E:8E:03 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=62:92:21:8E:8E:02 name=\ +> veth-app-copyparty +> add address=172.18.0.97/24 container-mac-address=2A:89:3C:4D:E5:1E dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=2A:89:3C:4D:E5:1D name=\ +> veth-app-cryptpad +> add address=172.18.0.98/24 container-mac-address=70:56:46:13:D6:4F dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=70:56:46:13:D6:4E name=\ +> veth-app-diagrams-net +> add address="" container-mac-address=2E:D7:EB:FC:51:2C dhcp=yes gateway="" \ +> gateway6="" mac-address=2E:D7:EB:FC:51:2B name=\ +> veth-app-docker-with-dockge +> add address="" container-mac-address=28:C0:33:81:C4:4C dhcp=yes gateway="" \ +> gateway6="" mac-address=28:C0:33:81:C4:4B name=\ +> veth-app-docker-with-komodo +> add address="" container-mac-address=4E:72:F4:F2:52:B4 dhcp=yes gateway="" \ +> gateway6="" mac-address=4E:72:F4:F2:52:B3 name=\ +> veth-app-docker-with-portainer +> add address=172.18.0.99/24 container-mac-address=70:99:0A:31:E2:F3 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=70:99:0A:31:E2:F2 name=\ +> veth-app-docmost +> add address=172.18.0.100/24 container-mac-address=22:D4:32:5A:AB:E0 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=22:D4:32:5A:AB:DF name=\ +> veth-app-elasticsearch +> add address=172.18.0.101/24 container-mac-address=4E:72:06:FE:0F:28 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=4E:72:06:FE:0F:27 name=\ +> veth-app-element +> add address=172.18.0.102/24 container-mac-address=0A:01:AC:C9:52:D0 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=0A:01:AC:C9:52:CF name=\ +> veth-app-excalidraw +> add address=172.18.0.103/24 container-mac-address=7E:3A:4A:57:F5:D8 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=7E:3A:4A:57:F5:D7 name=\ +> veth-app-filegator +> add address=172.18.0.104/24 container-mac-address=7C:41:9F:5F:C9:C9 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=7C:41:9F:5F:C9:C8 name=\ +> veth-app-firefox +> add address=172.18.0.105/24 container-mac-address=64:60:0E:54:3E:C4 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=64:60:0E:54:3E:C3 name=\ +> veth-app-forgejo +> add address=172.18.0.106/24 container-mac-address=28:37:D4:22:97:F8 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=28:37:D4:22:97:F7 name=\ +> veth-app-fossil +> add address=172.18.0.107/24 container-mac-address=00:BE:C5:23:83:99 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=00:BE:C5:23:83:98 name=\ +> veth-app-frigate +> add address=172.18.0.108/24 container-mac-address=00:BB:5E:9E:F7:FF dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=00:BB:5E:9E:F7:FE name=\ +> veth-app-gitea +> add address=172.18.0.109/24 container-mac-address=1A:F3:AB:12:62:80 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=1A:F3:AB:12:62:7F name=\ +> veth-app-gitlab +> add address=172.18.0.110/24 container-mac-address=46:05:FE:7A:8A:7E dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=46:05:FE:7A:8A:7D name=\ +> veth-app-grafana +> add address=172.18.0.111/24 container-mac-address=6E:37:1F:80:A4:A5 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=6E:37:1F:80:A4:A4 name=\ +> veth-app-hedgedoc +> add address="" container-mac-address=5E:EE:57:7D:C7:DF dhcp=yes gateway="" \ +> gateway6="" mac-address=5E:EE:57:7D:C7:DE name=veth-app-home-assistant +> add address=172.18.0.112/24 container-mac-address=3A:54:03:A1:C3:BA dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=3A:54:03:A1:C3:B9 name=\ +> veth-app-immich +> add address=172.18.0.113/24 container-mac-address=26:1B:92:7A:72:88 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=26:1B:92:7A:72:87 name=\ +> veth-app-influxdb +> add address=172.18.0.114/24 container-mac-address=16:EF:0A:15:4A:BC dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=16:EF:0A:15:4A:BB name=\ +> veth-app-jackett +> add address="" container-mac-address=2A:F7:1E:48:28:87 dhcp=yes gateway="" \ +> gateway6="" mac-address=2A:F7:1E:48:28:86 name=veth-app-jellyfin +> add address=172.18.0.115/24 container-mac-address=12:3D:1F:EF:9D:A9 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=12:3D:1F:EF:9D:A8 name=\ +> veth-app-jupyter-notebook +> add address=172.18.0.116/24 container-mac-address=22:A5:A5:D3:63:73 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=22:A5:A5:D3:63:72 name=\ +> veth-app-kimai +> add address=172.18.0.117/24 container-mac-address=52:37:2A:CB:98:E3 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=52:37:2A:CB:98:E2 name=\ +> veth-app-librenms +> add address=172.18.0.118/24 container-mac-address=74:27:EB:64:C4:00 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=74:27:EB:64:C3:FF name=\ +> veth-app-librespeed +> add address=172.18.0.119/24 container-mac-address=72:14:76:F1:35:9D dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=72:14:76:F1:35:9C name=\ +> veth-app-lidarr +> add address=172.18.0.120/24 container-mac-address=5A:62:24:8B:E2:21 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=5A:62:24:8B:E2:20 name=\ +> veth-app-livebook +> add address=172.18.0.121/24 container-mac-address=32:92:78:E7:B8:D3 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=32:92:78:E7:B8:D2 name=\ +> veth-app-mediamanager +> add address=172.18.0.122/24 container-mac-address=02:6B:AD:29:37:B9 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=02:6B:AD:29:37:B8 name=\ +> veth-app-memos +> add address=172.18.0.123/24 container-mac-address=36:FE:52:AE:FA:7A dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=36:FE:52:AE:FA:79 name=\ +> veth-app-metube +> add address=172.18.0.124/24 container-mac-address=38:37:B0:03:D3:3B dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=38:37:B0:03:D3:3A name=\ +> veth-app-mikrodash +> add address=172.18.0.125/24 container-mac-address=6C:B5:19:41:15:1B dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=6C:B5:19:41:15:1A name=\ +> veth-app-minio +> add address=172.18.0.126/24 container-mac-address=58:FF:FD:1A:7D:CC dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=58:FF:FD:1A:7D:CB name=\ +> veth-app-mosquitto +> add address=172.18.0.127/24 container-mac-address=46:3F:8B:34:11:42 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=46:3F:8B:34:11:41 name=\ +> veth-app-myip +> add address=172.18.0.128/24 container-mac-address=7A:DE:37:D7:8F:34 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=7A:DE:37:D7:8F:33 name=\ +> veth-app-n8n +> add address=172.18.0.129/24 container-mac-address=58:F7:71:2B:7D:AF dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=58:F7:71:2B:7D:AE name=\ +> veth-app-netbox +> add address=172.18.0.130/24 container-mac-address=14:49:0C:95:C7:2F dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=14:49:0C:95:C7:2E name=\ +> veth-app-nextcloud +> add address=172.18.0.131/24 container-mac-address=2C:AF:0D:A3:A4:C0 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=2C:AF:0D:A3:A4:BF name=\ +> veth-app-nextcloud-whiteboard +> add address=172.18.0.132/24 container-mac-address=5C:8A:C9:60:8A:0C dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=5C:8A:C9:60:8A:0B name=\ +> veth-app-nocodb +> add address=172.18.0.133/24 container-mac-address=26:FF:3E:D9:92:3C dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=26:FF:3E:D9:92:3B name=\ +> veth-app-nodered +> add address=172.18.0.134/24 container-mac-address=5E:04:3F:C8:9F:DC dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=5E:04:3F:C8:9F:DB name=\ +> veth-app-ntfy +> add address=172.18.0.135/24 container-mac-address=04:FD:C7:24:B9:83 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=04:FD:C7:24:B9:82 name=\ +> veth-app-nzbget +> add address=172.18.0.136/24 container-mac-address=70:D6:AD:D5:83:6C dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=70:D6:AD:D5:83:6B name=\ +> veth-app-odoo +> add address=172.18.0.137/24 container-mac-address=6C:78:81:2F:C7:E1 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=6C:78:81:2F:C7:E0 name=\ +> veth-app-onlyoffice-docs +> add address=172.18.0.138/24 container-mac-address=14:2C:6B:CD:38:F8 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=14:2C:6B:CD:38:F7 name=\ +> veth-app-openwebrx +> add address=172.18.0.139/24 container-mac-address=12:80:BF:18:9C:2D dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=12:80:BF:18:9C:2C name=\ +> veth-app-openwebui-ollama +> add address="" container-mac-address=7C:A9:C1:01:00:A8 dhcp=yes gateway="" \ +> gateway6="" mac-address=7C:A9:C1:01:00:A7 name=veth-app-otbr +> add address=172.18.0.140/24 container-mac-address=3C:3C:83:78:99:9C dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=3C:3C:83:78:99:9B name=\ +> veth-app-paperless-ngx +> add address=172.18.0.141/24 container-mac-address=14:7D:DE:0A:7D:3E dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=14:7D:DE:0A:7D:3D name=\ +> veth-app-partdb +> add address=172.18.0.142/24 container-mac-address=42:51:A4:56:2C:01 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=42:51:A4:56:2C:00 name=\ +> veth-app-pihole +> add address="" container-mac-address=62:F7:54:A9:35:2F dhcp=yes gateway="" \ +> gateway6="" mac-address=62:F7:54:A9:35:2E name=veth-app-plex +> add address=172.18.0.143/24 container-mac-address=1E:DF:41:E5:CA:54 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=1E:DF:41:E5:CA:53 name=\ +> veth-app-pmacct-netflow +> add address=172.18.0.144/24 container-mac-address=5C:CB:E9:A8:2E:9D dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=5C:CB:E9:A8:2E:9C name=\ +> veth-app-prowlarr +> add address=172.18.0.145/24 container-mac-address=1A:7F:F4:E3:00:EC dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=1A:7F:F4:E3:00:EB name=\ +> veth-app-radarr +> add address=172.18.0.146/24 container-mac-address=0E:5D:27:64:6B:9A dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=0E:5D:27:64:6B:99 name=\ +> veth-app-redlib +> add address=172.18.0.147/24 container-mac-address=70:53:0A:7B:9C:DE dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=70:53:0A:7B:9C:DD name=\ +> veth-app-restic-server +> add address=172.18.0.148/24 container-mac-address=16:EA:91:AD:90:65 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=16:EA:91:AD:90:64 name=\ +> veth-app-roundcube +> add address=172.18.0.149/24 container-mac-address=76:7F:C7:2F:83:4D dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=76:7F:C7:2F:83:4C name=\ +> veth-app-searxng +> add address=172.18.0.150/24 container-mac-address=5A:29:98:DD:76:93 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=5A:29:98:DD:76:92 name=\ +> veth-app-smokeping +> add address=172.18.0.151/24 container-mac-address=5C:46:75:4E:9D:CA dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=5C:46:75:4E:9D:C9 name=\ +> veth-app-snipeit +> add address=172.18.0.152/24 container-mac-address=7C:51:1E:41:F3:4B dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=7C:51:1E:41:F3:4A name=\ +> veth-app-solr +> add address=172.18.0.153/24 container-mac-address=44:F8:FA:B3:FD:85 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=44:F8:FA:B3:FD:84 name=\ +> veth-app-sonarr +> add address=172.18.0.154/24 container-mac-address=2C:6E:24:20:9D:76 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=2C:6E:24:20:9D:75 name=\ +> veth-app-sonatype-nexus +> add address=172.18.0.155/24 container-mac-address=42:15:B0:E1:D2:12 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=42:15:B0:E1:D2:11 name=\ +> veth-app-stalwart +> add address="" container-mac-address=1C:25:DA:CC:A8:50 dhcp=yes gateway="" \ +> gateway6="" mac-address=1C:25:DA:CC:A8:4F name=veth-app-syncthing +> add address="" container-mac-address=5C:9F:57:A2:76:0A dhcp=yes gateway="" \ +> gateway6="" mac-address=5C:9F:57:A2:76:09 name=veth-app-transmission +> add address=172.18.0.156/24 container-mac-address=6E:8D:8A:28:07:6B dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=6E:8D:8A:28:07:6A name=\ +> veth-app-trip +> add address="" container-mac-address=20:F1:91:9F:FA:E0 dhcp=yes gateway="" \ +> gateway6="" mac-address=20:F1:91:9F:FA:DF name=veth-app-upsnap +> add address=172.18.0.157/24 container-mac-address=7C:10:8F:BB:A4:42 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=7C:10:8F:BB:A4:41 name=\ +> veth-app-uptime-kuma +> add address=172.18.0.158/24 container-mac-address=12:E4:E5:5E:C3:00 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=12:E4:E5:5E:C2:FF name=\ +> veth-app-urbackup-client +> add address=172.18.0.159/24 container-mac-address=54:09:04:00:DB:55 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=54:09:04:00:DB:54 name=\ +> veth-app-urbackup-server +> add address=172.18.0.160/24 container-mac-address=1A:4E:86:63:C7:BD dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=1A:4E:86:63:C7:BC name=\ +> veth-app-vaultwarden +> add address=172.18.0.161/24 container-mac-address=0C:8F:A2:49:05:F4 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=0C:8F:A2:49:05:F3 name=\ +> veth-app-victoria-logs +> add address=172.18.0.162/24 container-mac-address=20:77:3C:61:F3:94 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=20:77:3C:61:F3:93 name=\ +> veth-app-victoria-metrics +> add address=172.18.0.163/24 container-mac-address=6E:B1:F6:2A:2B:BB dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=6E:B1:F6:2A:2B:BA name=\ +> veth-app-viseron +> add address=172.18.0.164/24 container-mac-address=30:25:73:ED:93:7D dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=30:25:73:ED:93:7C name=\ +> veth-app-wallabag +> add address=172.18.0.165/24 container-mac-address=7E:43:A5:4C:F8:CC dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=7E:43:A5:4C:F8:CB name=\ +> veth-app-warracker +> add address=172.18.0.166/24 container-mac-address=5E:78:97:44:FF:BB dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=5E:78:97:44:FF:BA name=\ +> veth-app-wbo +> add address=172.18.0.167/24 container-mac-address=06:96:D9:F1:19:7F dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=06:96:D9:F1:19:7E name=\ +> veth-app-webtop +> add address=172.18.0.168/24 container-mac-address=1E:FE:CB:5B:B0:4C dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=1E:FE:CB:5B:B0:4B name=\ +> veth-app-wordpress +> add address=172.18.0.169/24 container-mac-address=34:67:6E:5B:7D:E7 dhcp=no \ +> gateway=172.18.0.1 gateway6="" mac-address=34:67:6E:5B:7D:E6 name=\ +> veth-app-zabbix +36d318 +< add slot=tmpfs tmpfs-max-size=715827882 type=tmpfs +41,63d322 +< /caps-man datapath +< add bridge=Bridge-LAN client-to-client-forwarding=yes interface-list=LAN \ +< local-forwarding=yes name=xs-DataPath +< add bridge=Bridge-LAN client-to-client-forwarding=yes interface-list=LAN \ +< local-forwarding=yes name=DataPath +< /caps-man configuration +< add channel.band=2ghz-b/g/n country=no_country_set datapath=xs-DataPath mode=\ +< ap name=xs-2G rx-chains=0,1,2,3 security=xs-Sec ssid=vados tx-chains=\ +< 0,1,2,3 +< add channel.band=5ghz-a/n/ac country=no_country_set datapath=xs-DataPath \ +< installation=any mode=ap name=xs-5G rx-chains=0,1,2,3 security=xs-Sec \ +< ssid=vados5g tx-chains=0,1,2,3 +< add channel.band=2ghz-b/g/n .control-channel-width=20mhz .extension-channel=\ +< XX .frequency=2422,2442,2462 .reselect-interval=20m country=belarus \ +< datapath=DataPath datapath.client-to-client-forwarding=yes \ +< .local-forwarding=yes hw-protection-mode=rts-cts installation=any name=2G \ +< rx-chains=0,1,2,3 security=WPA2 ssid=vados tx-chains=0,1,2,3 +< add channel.band=5ghz-a/n/ac .control-channel-width=20mhz .extension-channel=\ +< XXXX .frequency=5180,5200,5220,5240,5260 .reselect-interval=20m \ +< .skip-dfs-channels=yes country=belarus datapath=DataPath \ +< datapath.client-to-client-forwarding=yes .local-forwarding=yes \ +< hw-protection-mode=rts-cts installation=any name=5G security=WPA2 ssid=\ +< vados5g +5366c5625,5684 +< set cinny firewall-redirects=8094:80:tcp:web +--- +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set HA-otbr-matter disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set adventurelog disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set babybuddy disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set backrest disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set birdnet-go disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set caddy disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set calibre-web disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set chr disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set cinny disabled=no firewall-redirects=8094:80:tcp:web +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set cloudflared disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set code-server disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set conduit disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set convertx disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set copyparty disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set cryptpad disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set diagrams-net disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set docker-with-dockge disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set docker-with-komodo disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set docker-with-portainer disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set docmost disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set elasticsearch disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set element disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set excalidraw disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set filegator disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set firefox disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set forgejo disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set fossil disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set frigate disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set gitea disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set gitlab disabled=no +5367a5686,5690 +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set grafana disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set hedgedoc disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +5369,5370c5692,5731 +< home-assistant:none:lscr.io/linuxserver/homeassistant +< set n8n firewall-redirects=5678:5678:tcp:web +--- +> home-assistant:none:lscr.io/linuxserver/homeassistant disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set immich disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set influxdb disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set jackett disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set jellyfin disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set jupyter-notebook disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set kimai disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set librenms disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set librespeed disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set lidarr disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set livebook disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set mediamanager disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set memos disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set metube disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set mikrodash disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set minio disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set mosquitto disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set myip disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set n8n disabled=no firewall-redirects=5678:5678:tcp:web +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set netbox disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +5374,5378c5735,5799 +< ache" +< set pihole environment="pihole:FTLCONF_dns_listeningMode=all,pihole:FTLCONF_we\ +< bserver_api_password=password" +< set redlib firewall-redirects=8087:8080:tcp:web +< set solr container-command-lines=solr:none:docker.io/solr:latest +--- +> ache" disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set nextcloud-whiteboard disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set nocodb disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set nodered disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set ntfy disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set nzbget disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set odoo disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set onlyoffice-docs disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set openwebrx disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set openwebui-ollama disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set otbr disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set paperless-ngx disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set partdb disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set pihole disabled=no environment="pihole:FTLCONF_dns_listeningMode=all,pihol\ +> e:FTLCONF_webserver_api_password=password" +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set plex disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set pmacct-netflow disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set prowlarr disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set radarr disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set redlib disabled=no firewall-redirects=8087:8080:tcp:web +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set restic-server disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set roundcube disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set searxng disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set smokeping disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set snipeit disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set solr container-command-lines=solr:none:docker.io/solr:latest disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set sonarr disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set sonatype-nexus disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set stalwart disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set syncthing disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set transmission disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set trip disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set upsnap disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +5380c5801,5825 +< uptime-kuma:none:docker.io/louislam/uptime-kuma:1 +--- +> uptime-kuma:none:docker.io/louislam/uptime-kuma:1 disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set urbackup-client disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set urbackup-server disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set vaultwarden disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set victoria-logs disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set victoria-metrics disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set viseron disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set wallabag disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set warracker disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set wbo disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set webtop disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set wordpress disabled=no +> # certificate: connecting to https://acme-v02.api.letsencrypt.org/directory +> set zabbix disabled=no +5382,5384c5827,5829 +< set disk=*7 lan-bridge=Bridge-LAN registry-mirrors="https://reg.vados.ru/:http\ +< s://reg.vados.ru/,https://registry-1.docker.io:https://registry-1.docker.i\ +< o,https://ghcr.io:https://ghcr.io" show-in-webfig=no +--- +> set auto-update=yes disk=*7 lan-bridge=Bridge-LAN registry-mirrors="https://re\ +> g.vados.ru/:https://reg.vados.ru/,https://registry-1.docker.io:https://reg\ +> istry-1.docker.io,https://ghcr.io:https://ghcr.io" +5386c5831 +< set interim-update=20m20s mac-caching=16m40s +--- +> set called-format=ssid +5391a5837,5859 +> /caps-man configuration +> add channel.band=2ghz-b/g/n country=no_country_set datapath=xs-DataPath mode=\ +> ap name=xs-2G rx-chains=0,1,2,3 security=xs-Sec ssid=vados tx-chains=\ +> 0,1,2,3 +> add channel.band=5ghz-a/n/ac country=no_country_set datapath=xs-DataPath \ +> installation=any mode=ap name=xs-5G rx-chains=0,1,2,3 security=xs-Sec \ +> ssid=vados5g tx-chains=0,1,2,3 +> add channel.band=2ghz-b/g/n .control-channel-width=20mhz .extension-channel=\ +> XX .frequency=2422,2442,2462 .reselect-interval=20m country=belarus \ +> datapath=DataPath datapath.client-to-client-forwarding=yes \ +> .local-forwarding=yes hw-protection-mode=rts-cts installation=any name=2G \ +> rx-chains=0,1,2,3 security=WPA2 ssid=vados tx-chains=0,1,2,3 +> add channel.band=5ghz-a/n/ac .control-channel-width=20mhz .extension-channel=\ +> XXXX .frequency=5180,5200,5220,5240,5260 .reselect-interval=20m \ +> .skip-dfs-channels=yes country=belarus datapath=DataPath \ +> datapath.client-to-client-forwarding=yes .local-forwarding=yes \ +> hw-protection-mode=rts-cts installation=any name=5G security=WPA2 ssid=\ +> vados5g +> /caps-man datapath +> add bridge=*3 client-to-client-forwarding=yes local-forwarding=yes name=\ +> xs-DataPath +> add bridge=*3 client-to-client-forwarding=yes local-forwarding=yes name=\ +> DataPath +5393,5396c5861,5862 +< set ca-certificate=WiFi-CAPsMAN-CA-6D4D5AB6A085 certificate=\ +< WiFi-CAPsMAN-6D4D5AB6A085 enabled=yes package-path=\ +< /tmpfs/capsman-packages require-peer-certificate=yes upgrade-policy=\ +< require-same-version +--- +> set ca-certificate=CAPsMAN-CA-ABE2F4E9EE17 certificate=CAPsMAN-ABE2F4E9EE17 \ +> enabled=yes require-peer-certificate=yes +5410c5876 +< set builtin-trust-store=all +--- +> set builtin-trust-store=all crl-use=yes +5438,5439c5904,5906 +< set ca-certificate=auto certificate=auto interfaces=Bridge-LAN package-path=\ +< /tmpfs/capsman-packages require-peer-certificate=no upgrade-policy=none +--- +> set ca-certificate=*13 certificate=*14 enabled=yes interfaces=Bridge-LAN \ +> package-path=/tmpfs/capsman-packages require-peer-certificate=no \ +> upgrade-policy=none +5490a5958,5959 +> /system gps +> set set-system-time=yes -- 2.52.0

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