From 3ca4b32cfdccdafdaec63620c5b9b9d8914fff7e Mon Sep 17 00:00:00 2001 From: oxpoe Date: Thu, 5 Nov 2026 06:27:51 +0700 Subject: [PATCH] =?UTF-8?q?docs(wiki):=20halaman=20awal=20=E2=80=94=20inst?= =?UTF-8?q?alasi,=20konfigurasi,=20FAQ,=20troubleshooting?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FAQ.md | 22 +++++++++++++++++ Home.md | 31 +++++++++++++++++++++++ Instalasi.md | 61 ++++++++++++++++++++++++++++++++++++++++++++++ Konfigurasi.md | 45 ++++++++++++++++++++++++++++++++++ Troubleshooting.md | 36 +++++++++++++++++++++++++++ 5 files changed, 195 insertions(+) create mode 100644 FAQ.md create mode 100644 Home.md create mode 100644 Instalasi.md create mode 100644 Konfigurasi.md create mode 100644 Troubleshooting.md diff --git a/FAQ.md b/FAQ.md new file mode 100644 index 0000000..2724826 --- /dev/null +++ b/FAQ.md @@ -0,0 +1,22 @@ +# FAQ + +**Apakah perlu kode aktivasi?** +Tidak. Semua menu sudah terbuka. Pengaturan sidebar hanya untuk menampilkan/menyembunyikan menu. + +**Login pelanggan pakai apa?** +ID Pelanggan (mis. `SKY-12345`) atau nomor WhatsApp yang terdaftar. + +**Kenapa menu Update tidak muncul?** +Hanya tampil pada instalasi yang punya folder `.git`. Instalasi container melakukan update lewat rebuild image. + +**Kenapa sertifikat HTTPS tidak valid?** +Bisa karena Caddy memakai internal CA, atau sertifikat belum terbit. Periksa konfigurasi TLS di reverse proxy. + +**Domain internal tidak resolve?** +Pastikan klien memakai DNS internal (Technitium), DoH browser dimatikan, dan cache DNS sudah di-flush. + +**Bagaimana backup?** +Menu **Sistem → Backup** (SQLite). Backup otomatis juga tersedia lewat cron. + +**Bahasa Indonesia/English?** +Bisa diganti dari UI (switcher ID/EN). diff --git a/Home.md b/Home.md new file mode 100644 index 0000000..f77022d --- /dev/null +++ b/Home.md @@ -0,0 +1,31 @@ +# OPEN-ISP Wiki + +Dokumentasi untuk **OPEN-ISP** — sistem billing & manajemen ISP (fiber optic), open source dan self-hosted. + +## Mulai di sini + +- [[Instalasi]] — kebutuhan, instalasi, menjalankan aplikasi +- [[Konfigurasi]] — MikroTik, OLT, GenieACS, RADIUS, WhatsApp/Telegram, AI, update +- [[FAQ]] — pertanyaan yang sering muncul +- [[Troubleshooting]] — masalah umum dan solusinya + +## Repositori + +- Gitea: +- Forgejo: +- Rilis & unduhan: tab **Releases** di salah satu repositori di atas + +## Dokumentasi di repo + +- `README.md` — gambaran fitur +- `CHANGELOG.md` — riwayat perubahan +- `docs/QUICK_REFERENCE.md` — referensi cepat +- `docs/ADMIN_SETTINGS_USAGE.md` — panduan pengaturan admin +- `docs/ROUTER_CONNECTION_FLOW.md` — alur koneksi router +- `docs/RADIUS_MIKROTIK_INTEGRATION.md` — integrasi RADIUS +- `docs/DATABASE_SCHEMA.md` — skema database +- `docs/screenshots/` — tangkapan layar + +## Lisensi + +ISC. Berdasarkan base code [alijayanet/billing-rtrw](https://github.com/alijayanet/billing-rtrw). diff --git a/Instalasi.md b/Instalasi.md new file mode 100644 index 0000000..69f6c3f --- /dev/null +++ b/Instalasi.md @@ -0,0 +1,61 @@ +# Instalasi + +## Kebutuhan + +- Linux (x86_64/arm64) dengan **Node.js 22+** +- SQLite (bawaan, tanpa server terpisah) +- MikroTik RouterOS 7 (API port 8728/8729) untuk fitur jaringan +- Opsional: GenieACS/ACS, OLT (SNMP/CLI), RADIUS + +## Dari source + +```bash +git clone https://gitea.oxpoe.xyz/oxpoe/open-isp.git +cd open-isp +npm install +cp env-example.txt .env # sesuaikan bila perlu +node app-customer.js +``` + +Aplikasi berjalan di `http://localhost:3001` (atau `PORT` yang di-set). + +## Data demo + +```bash +node scripts/seed-demo.js +``` + +Login admin hasil seed: `admin` / `demo-isp123`. + +## Docker + +```bash +docker compose up -d +``` + +## Systemd (produksi) + +Contoh unit: + +```ini +[Unit] +Description=OPEN-ISP +After=network.target + +[Service] +WorkingDirectory=/opt/open-isp +ExecStart=/usr/bin/node app-customer.js +Restart=always +Environment=PORT=3001 +Environment=NODE_ENV=production + +[Install] +WantedBy=multi-user.target +``` + +## Setelah instalasi + +1. Login admin → ganti password di **Pengaturan**. +2. Atur `app_url`/`public_base_url` agar tautan WhatsApp benar. +3. Tambahkan router MikroTik, paket, dan pelanggan. +4. (Opsional) atur notifikasi WhatsApp/Telegram dan AI di **Pengaturan**. diff --git a/Konfigurasi.md b/Konfigurasi.md new file mode 100644 index 0000000..35eb82a --- /dev/null +++ b/Konfigurasi.md @@ -0,0 +1,45 @@ +# Konfigurasi + +Semua pengaturan admin ada di menu **Pengaturan**. + +## MikroTik + +- Tambah router di **Jaringan → MikroTik** (host, port 8728/8729, user, password). +- Aktifkan service `api` atau `api-ssl` di RouterOS. +- Dukungan RouterOS 7 (API + TLS, sertifikat self-signed diperbolehkan). + +## Paket & pelanggan + +- Buat paket (harga, kecepatan, FUP) lalu daftarkan pelanggan. +- Profil PPPoE mengikuti nama paket; profil isolir dapat diatur terpisah. + +## GenieACS / ACS + +- **Jaringan → GenieACS Pro**: isi URL, user, password. +- Mendukung beberapa server ACS sekaligus. + +## OLT + +- **Jaringan → Manajemen OLT**: Hioso/HSGQ via SNMP; ZTE/Huawei via CLI. +- Gunakan `scripts/olt-probe.js` untuk mendeteksi OLT baru. + +## RADIUS + +- **Jaringan → RADIUS Server**: aktifkan, atur secret dan port. +- Lihat `docs/RADIUS_MIKROTIK_INTEGRATION.md`. + +## Notifikasi + +- **WhatsApp** (Gowa): untuk broadcast, pengingat, struk. +- **Telegram**: monitoring admin (menu, `/sistem`, `/pendapatan`, `/tunggakan`, dll). + +## AI & Self-Healing + +- **Pengaturan → AI & Self-Healing**. +- Provider OpenAI-compatible: DeepSeek (default), OpenAI, Groq, OpenRouter, custom/Ollama. +- Auto-repair bisa dinyalakan/dimatikan; default nonaktif. + +## Update + +- **Pengaturan → Sumber Update**: isi host Git (`https://gitea.oxpoe.xyz` atau `https://forgejo.oxpoe.xyz`) dan repo (`oxpoe/open-isp`). +- Instalasi container (tanpa `.git`) melakukan update dengan rebuild image. diff --git a/Troubleshooting.md b/Troubleshooting.md new file mode 100644 index 0000000..d32d06a --- /dev/null +++ b/Troubleshooting.md @@ -0,0 +1,36 @@ +# Troubleshooting + +## Aplikasi tidak mau start + +- Cek versi Node: `node -v` (butuh 22+). +- Lihat log: `logs/` atau output service. +- Pastikan `better-sqlite3` terpasang untuk versi Node yang dipakai (`npm rebuild better-sqlite3`). + +## Login gagal terus + +- Pastikan username/password admin benar. +- Cek rate limit login (30 percobaan / 15 menit). +- Security watchdog memblokir IP sementara setelah 5 percobaan gagal; tunggu 15 menit. + +## MikroTik tidak konek + +- Cek service `api`/`api-ssl` di RouterOS. +- Pastikan port 8728/8729 tidak diblokir firewall. +- Untuk TLS self-signed, aplikasi sudah menonaktifkan verifikasi sertifikat. + +## DNS internal tidak resolve + +- Flush cache klien: `resolvectl flush-caches` (Linux), `ipconfig /flushdns` (Windows). +- Matikan DoH di browser (Firefox: `network.trr.mode = 5`). +- Pastikan A record di Technitium benar (bukan typo oktet). +- Turunkan TTL record internal bila sering berubah (mis. 300 detik). + +## Sertifikat HTTPS + +- Internal CA: pasang root CA Caddy di klien, atau gunakan sertifikat ACME. +- Cek masa berlaku: `openssl s_client -connect host:443 -servername domain`. + +## Port/upstream + +- Pastikan upstream (mis. `172.20.30.11:3001`) bisa diakses dari host reverse proxy. +- Cek log Caddy/Traefik untuk error 502/504.