routeros-scripts-main/README-ID.md

269 lines
8.9 KiB
Markdown

# Skrip RouterOS - Panduan Bahasa Indonesia
🇮🇩 **Distribusi Pribadi untuk Penggunaan Lokal**
**PERHATIAN**: Repository ini adalah distribusi pribadi untuk kebutuhan internal Dumai, Riau. Tidak ada garansi resmi atau dukungan. Gunakan dengan risiko Anda sendiri.
## Daftar Isi
- [Tentang](#tentang)
- [Syarat & Ketentuan](#syarat--ketentuan)
- [Instalasi Cepat](#instalasi-cepat)
- [Instalasi Lengkap](#instalasi-lengkap)
- [Konfigurasi](#konfigurasi)
- [Update Script](#update-script)
- [List Script Tersedia](#list-script-tersedia)
- [FAQ](#faq)
## Tentang
Ini adalah kumpulan script untuk mengotomasi dan memperluas fitur **MikroTik RouterOS**. Script ini terinspirasi dari [eworm-de/routeros-scripts](https://github.com/eworm-de/routeros-scripts) tetapi dikustomisasi untuk kebutuhan lokal.
### Fitur Utama
- ✅ Backup otomatis (cloud, email, upload server)
- ✅ Monitor kesehatan router (CPU, RAM, temperature)
- ✅ Notifikasi via Telegram, Email, Ntfy
- ✅ Update sertifikat otomatis
- ✅ DHCP ke DNS integration
- ✅ Firewall address-list update otomatis
- ✅ Dan banyak lagi...
## Syarat & Ketentuan
### Kebutuhan RouterOS
- **RouterOS v7.x** (minimal)
- Untuk RouterOS v6, gunakan branch `routeros-v6`
- Storage minimal: 100MB kosong (untuk script + backup)
- RAM minimal: 128MB (untuk eksekusi script)
### Fitur yang Harus Enable (RouterOS 7.17+)
Ada beberapa router modern yang menggunakan "Device Mode" dengan fitur terbatas. Pastikan enable:
```
scheduler - untuk auto-run script
fetch - untuk download script dari GitHub
```
## Instalasi Cepat
**Untuk pengguna yang sudah tahu RouterOS**, copy-paste command ini di Terminal:
```routeros
{ :local BaseUrl "https://raw.githubusercontent.com/dumkot/routeros-sc/main/"; :local CertCommonName "ISRG Root X2"; :local CertFileName "ISRG-Root-X2.pem"; :local CertFingerprint "69729b8e15a86efc177a57afb7171dfc64add28c2fca8cf1507e34453ccb1470"; :local CertSettings [ /certificate/settings/get ]; :if (!((($CertSettings->"builtin-trust-anchors") = "trusted" || \ ($CertSettings->"builtin-trust-store") ~ "fetch" || \ ($CertSettings->"builtin-trust-store") = "all") && \ [[ :parse (":return [ :len [ /certificate/builtin/find where common-name=\"" . $CertCommonName . "\" ] ]") ]] > 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 fingerprint=$CertFingerprint ] ] != 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 fingerprint=$CertFingerprint ] ] > 0) do={ :put "Renaming certificate by its common-name..."; :global CertificateNameByCN; $CertificateNameByCN $CertFingerprint; }; };
```
Lalu lanjutkan ke **[Konfigurasi](#konfigurasi)**.
## Instalasi Lengkap
### 1. Download Sertifikat (Pilih 1)
**Opsi A: RouterOS 7.19+ (ada built-in certificate store)**
Jika RouterOS Anda sudah v7.19+, jalankan ini untuk enable built-in trust:
```routeros
/certificate/settings/set builtin-trust-store=fetch;
```
**Opsi B: Manual download (untuk RouterOS lama)**
Download sertifikat ISRG Root X2 dari browser Anda, lalu import di RouterOS:
```routeros
/tool/fetch "https://raw.githubusercontent.com/dumkot/routeros-sc/main/certs/ISRG-Root-X2.pem" dst-path="isrg-root-x2.pem";
/certificate/import file-name="isrg-root-x2.pem" passphrase="";
```
Verifikasi:
```routeros
/certificate/print where fingerprint="69729b8e15a86efc177a57afb7171dfc64add28c2fca8cf1507e34453ccb1470";
```
### 2. Download Script Inti
```routeros
:foreach Script in={ "global-config"; "global-config-overlay"; "global-functions" } do={ /system/script/add name=$Script owner=$Script source=([ /tool/fetch check-certificate=yes-without-crl ("https://raw.githubusercontent.com/dumkot/routeros-sc/main/" . $Script . ".rsc") output=user as-value ]->"data"); };
```
### 3. Jalankan Script
```routeros
/system/script { run global-config; run global-functions; };
```
Lihat di terminal apakah ada error. Jika ada, itu biasanya berarti RouterOS perlu update.
### 4. Konfigurasi
Edit file `global-config-overlay` sesuai kebutuhan Anda:
```routeros
/system/script/edit global-config-overlay source;
```
Kemudian jalankan ulang:
```routeros
/system/script/run global-config;
```
### 5. Auto-Update (Opsional)
Jika ingin script auto-update setiap hari:
```routeros
/system/scheduler/add name="ScriptInstallUpdate" start-time=startup interval=1d on-event=":global ScriptInstallUpdate; \$ScriptInstallUpdate;";
```
## Konfigurasi
File `global-config-overlay` berisi pengaturan yang Anda butuhkan. Copy bagian yang Anda inginkan dari `global-config` (tanpa -overlay) ke `global-config-overlay`.
### Contoh Konfigurasi
**Backup Email**
```routeros
:global BackupPassword "sangat-rahasia";
:global BackupSendEmail 1;
:global SendNotification 1;
:global NotificationEmail "admin@dumai.go.id";
:global MailServer "mail.dumai.go.id";
:global MailFrom "router@dumai.go.id";
```
**Telegram Notification**
```routeros
:global NotificationTelegram 1;
:global TelegramBotToken "123456:ABCdefg...";
:global TelegramChatID "123456789";
```
**Monitor Kesehatan**
```routeros
:global HealthNotification 1;
:global HealthTempWarn 60;
:global HealthTempCrit 80;
```
Setelah ubah, jalankan:
```routeros
/system/script/run global-config;
```
## Update Script
Jika sudah terpasang, untuk update semua script ke versi terbaru:
```routeros
$ScriptInstallUpdate;
```
Jika ada update script baru atau changelog, Anda akan dapat notifikasi otomatis.
## Menambah Script Baru
Misalnya ingin tambah `check-routeros-update`:
```routeros
$ScriptInstallUpdate check-routeros-update;
```
Lalu biasanya perlu tambah scheduler:
```routeros
/system/scheduler/add name="check-routeros-update" interval=1d start-time=startup on-event="/system/script/run check-routeros-update;";
```
## List Script Tersedia
| Script | Fungsi |
|--------|--------|
| `backup-cloud` | Upload backup ke Mikrotik cloud |
| `backup-email` | Kirim backup via email |
| `backup-partition` | Simpan config ke partition fallback |
| `backup-upload` | Upload backup ke server FTP/HTTP |
| `check-certificates` | Monitor & renew sertifikat |
| `check-health` | Monitor CPU, RAM, suhu |
| `check-routeros-update` | Cek update RouterOS |
| `dhcp-to-dns` | Sync DHCP lease ke DNS |
| `fw-addr-lists` | Update firewall address-list otomatis |
| `netwatch-notify` | Notifikasi host up/down |
| `telegram-chat` | Bot Telegram untuk kontrol router |
| `update-gre-address` | Update GRE config dengan IP dinamis |
| [Lihat semua...](./README.md#available-scripts) | |
## Troubleshooting
### Masalah: Script tidak bisa download
**Error**: `failure: certificate not found`
**Solusi**: Pastikan sertifikat sudah import dan trusted. Lihat bagian "Download Sertifikat".
### Masalah: Notifikasi tidak jalan
**Cek**:
- Email: Setting `MailServer`, `MailFrom` sudah benar?
- Telegram: Bot token dan Chat ID valid?
- Ntfy.sh: Token valid dan endpoint terbuka?
Jalankan test:
```routeros
:global SendNotification 1;
/system/script/run send-notification;
```
### Masalah: Script jalankan error
Lihat log:
```routeros
/log print where topics~"script";
```
Biasanya error adalah karena RouterOS terlalu lama (perlu update). Update dulu, lalu coba ulang.
## FAQ
**Q: Apakah ini resmi dari Mikrotik?**
A: Tidak. Ini adalah distribusi pribadi yang terinspirasi dari eworm-de/routeros-scripts.
**Q: Apakah aman dipakai di production?**
A: Tergantung. Sudah dicoba di lingkungan lokal, tapi tidak ada garansi. Test di router non-critical dulu.
**Q: Bagaimana jika ada bug?**
A: Issues/reports bisa ke repository ini, tapi tidak ada SLA. Untuk support profesional, hubungi eworm-de upstream atau profesional lokal.
**Q: Bisa pake di RouterOS v6?**
A: Ada branch terpisah `routeros-v6`. Tapi maintenance sudah minimalis.
**Q: Bisa contribute / fork?**
A: Ya, silakan fork dan adjust sesuai kebutuhan. Jangan lupa credit upstream eworm-de jika buat public fork.
## Upstream & Kredit
- **Upstream utama**: [eworm-de/routeros-scripts](https://github.com/eworm-de/routeros-scripts) - Christian Hesse
- **Repository ini**: Kustomisasi lokal oleh [dumkot](https://github.com/dumkot) untuk Dumai, Riau
## Lisensi
GNU General Public License v3 (GPLv3) - Lihat [LICENSE](./COPYING.md)
---
**Catatan**: Versi Inggris lengkap ada di [README.md](./README.md)