![]() |
![]() |
RouterOS Scripts a collection of scripts for MikroTik RouterOS |
⚠️ Warning: These commands are intended for initial setup. If you are not aware of the procedure please follow the long way in detail.
Run the complete base installation:
{
:local BaseUrl "https://rsc.eworm.de/main/";
:local CertFileName "Root-YE.pem";
:local CertSKID "A3C8265A8EA14CD03563FC9B23C83AAE56F34F56";
:local CertSettings [ /certificate/settings/get ];
:if ([ :len [ /certificate/find where skid=$CertSKID ] ] = 0 && \
!((($CertSettings->"builtin-trust-store") ~ "fetch" || \
(($CertSettings->"builtin-trust-store") = "default" && \
($CertSettings->"current-defaults") ~ "fetch") || \
($CertSettings->"builtin-trust-store") = "all") && \
[ :len [ /certificate/builtin/find where skid=$CertSKID ] ] > 0)) do={
:put "Importing certificate...";
/tool/fetch ($BaseUrl . "certs/" . $CertFileName) dst-path=$CertFileName as-value;
:delay 1s;
/certificate/import file-name=$CertFileName passphrase="";
:if ([ :len [ /certificate/find where skid=$CertSKID ] ] != 1) do={
:error "Something is wrong with your certificates!";
};
:delay 1s;
};
:put "Renaming global-config-overlay, if exists...";
/system/script/set name=("global-config-overlay-" . [ /system/clock/get date ] . "-" . [ /system/clock/get time ]) [ find where name="global-config-overlay" ];
:foreach Script in={ "global-config"; "global-config-overlay"; "global-functions" } do={
:put "Installing $Script...";
/system/script/remove [ find where name=$Script ];
/system/script/add name=$Script owner=$Script source=([ /tool/fetch check-certificate=yes-without-crl ($BaseUrl . $Script . ".rsc") output=user as-value ]->"data");
};
:put "Loading configuration and functions...";
/system/script { run global-config; run global-functions; };
:if ([ :len [ /certificate/find where skid=$CertSKID ] ] > 0) do={
:put "Renaming certificate by its common-name...";
:global CertificateNameByCN;
$CertificateNameByCN $CertSKID;
};
};
Then continue setup with scheduled automatic updates or editing configuration.
In case you have issues with my default source using a mirror may help. Just replace the first lines for updated variables.
💡️ Hint: You may want to set the same url with
ScriptUpdatesBaseUrlinglobal-config-overlay.⚠️ Warning: The mirrors do not provide checksums. Each invocation of
$ScriptInstallUpdatetakes longer and generates more traffic, as every script needs to be downloaded for local check!
:local BaseUrl "https://git.eworm.de/cgit/routeros-scripts/plain/";
:local CertFileName "Root-YE.pem";
:local CertSKID "A3C8265A8EA14CD03563FC9B23C83AAE56F34F56";
:local BaseUrl "https://raw.githubusercontent.com/eworm-de/routeros-scripts/main/";
:local CertFileName "Root-YR.pem";
:local CertSKID "DEE75B60D0226D40287D3F0D01FEA4B552B45194";
:local BaseUrl "https://gitlab.com/eworm-de/routeros-scripts/raw/main/";
:local CertFileName "Sectigo-Public-Server-Authentication-Root-R46.pem";
:local CertSKID "5673586495F9921AB0122A046279A14015882149";
The initial commands above allow to fix an existing
installation in case it ever breaks. If global-config-overlay did exist
before it is renamed with a date and time suffix (like
global-config-overlay-2024-01-25-09:33:12). Make sure to restore the
configuration overlay if required.
RouterOS Scripts documentation generated on Mon, 26 Oct 2026 20:40:22 +0100 for main/3714/a946fe54
Copyright © 2013-2026 Christian Hesse <mail@eworm.de>