oxpoe
b49822b553
feat(gowa): pilihan mode Cloud HTTPS / Local HTTP + polyfill di pengaturan
...
CI / test (push) Successful in 1m53s
- setting gowa_mode, hint dinamis, link wiki
- wiki: halaman GOWA (mode, polyfill, troubleshooting)
- versi 0.5.10
2026-11-05 16:02:44 +07:00
oxpoe
b98ad7568d
fix(gowa): QR sebagai data URI + rewrite qr_link ke base URL publik
...
CI / test (push) Successful in 2m41s
- gambar tidak lagi bergantung request /qr.png kedua
- qr_link host internal diganti origin base URL
- log saat gambar gagal diambil; onerror di UI
- versi 0.5.9
2026-11-05 15:55:29 +07:00
oxpoe
7a5b488882
fix(gowa): tampilkan status HTTP saat QR gagal (401/kredensial)
CI / test (push) Successful in 3m32s
2026-11-05 15:46:45 +07:00
oxpoe
e28c9debea
docs(gowa): UI butuh secure context (crypto.randomUUID) untuk akses HTTP LAN
CI / test (push) Successful in 1m57s
2026-11-05 15:38:39 +07:00
oxpoe
861b8f6549
fix(gowa): pakai docker.io prefix agar podman tidak minta short-name
CI / test (push) Failing after 13m31s
2026-11-05 14:20:40 +07:00
oxpoe
19db67138b
feat(gowa): compose GOWA + UI untuk podman/docker
...
CI / test (push) Has been cancelled
- docker-compose.gowa.yml (image v9.8.0, volume storages/statics, webhook + basic auth)
- .env.gowa.example
- README: cara jalankan + setting OPEN-ISP
- versi 0.5.7
2026-11-05 14:18:36 +07:00
oxpoe
7bb4ca1066
docs(automation): hint auto-hapus tidak lagi hardcode bulan ke-4
CI / test (push) Successful in 4m5s
2026-11-05 13:26:21 +07:00
oxpoe
d68cc1d664
fix(qris): selaras skema hangus, satu tagihan terbaru
...
CI / test (push) Successful in 5m10s
- batalkan pelunasan multi-tagihan: tagihan lama otomatis void saat tagihan baru terbit
- QRIS manual memakai tagihan terbaru, bukan total tunggakan
- versi 0.5.6
2026-11-05 13:19:14 +07:00
oxpoe
a78e6b766a
fix(qris): kirim tagihan manual pakai total tunggakan
...
CI / test (push) Successful in 2m43s
- ensureInvoiceQris menerima base total agar kode unik konsisten dengan cron/portal
- pesan manual menampilkan total tagihan, bukan satu invoice
2026-11-05 12:57:19 +07:00
oxpoe
fa791cd3cb
docs(readme): pulihkan suntingan README dari remote
...
CI / test (push) Successful in 4m14s
- tagline 'self-hosted builtin AI'
- baris link demo / donate / main repo (perbaiki typo openisp -> open-isp)
2026-11-05 12:49:27 +07:00
oxpoe
34d4563a5f
fix(qris): kode unik lintas order + pelunasan multi-tagihan; fix kirim tagihan manual
...
CI / test (push) Has been cancelled
- webhook QRIS: nominal total tagihan + kode -> lunaskan semua tagihan pelanggan
- isQrisAmountTaken() cek invoice+voucher+donasi (cegah ambigu)
- billingSendService: require('qrcode'), nominal unik + {{qris_kode}}, fallback link
- pilih tagihan terlama; pesan pengingat manual yang jujur saat di-skip
- versi 0.5.5
2026-11-05 12:48:59 +07:00
oxpoe
b34e5a34d8
docs(readme): tambah link demo & donasi
...
CI / test (push) Successful in 2m13s
- badge demo -> https://demo-openisp.oxpoe.xyz
- badge + bagian Dukungan: donasi -> https://oxpoe.xyz
- demo online di Mulai Cepat & English quick
- badge versi -> 0.5.4
2026-11-05 11:13:46 +07:00
oxpoe
bc7f2bdb09
feat(wa): notifikasi pelanggan tiket + broadcast status layanan
...
CI / test (push) Successful in 2m3s
- WA konfirmasi ke pelanggan saat tiket dibuat (web & APK)
- checkbox + target (semua/area/router) di Status Layanan
- WA gangguan/perbaikan saat mode berubah, WA layanan pulih saat NORMAL
- broadcast latar belakang dengan jeda acak, dedupe nomor, log [NoticeWA]
- versi 0.5.4
2026-11-05 09:28:48 +07:00
oxpoe
8231058f79
fix(update): hapus referensi info.* di handler POST (info is not defined)
CI / test (push) Successful in 1m44s
2026-11-05 09:11:36 +07:00
oxpoe
fe7682fa45
fix(update): timeout git fetch + tampilkan error di log update
CI / test (push) Successful in 2m30s
2026-11-05 09:00:45 +07:00
oxpoe
7d77dd1424
feat(branding): nama PT dapat diatur di Pengaturan
...
CI / test (push) Successful in 1m36s
- field company_subheader di Info Aplikasi
- dipakai sebagai kop invoice/PDF (sudah ada) dan menggantikan baris footer bila diisi
- default kosong: footer tetap 'Made with <heart> from Oxpoe in INA.'
2026-11-05 06:53:53 +07:00
oxpoe
eef690b809
style(branding): footer landing/login
...
CI / test (push) Has been cancelled
- PT Artha Mega Data -> Made with <heart> from Oxpoe in INA.
- Fiber Optic Internet Service -> tiawidianti & irpankomara
2026-11-05 06:51:41 +07:00
oxpoe
c8b1335ff4
fix(settings): kartu AI punya tab sendiri agar filter tab sinkron
...
CI / test (push) Successful in 2m8s
- tambah tombol tab 'AI'
- beri data-setcat="ai" pada kartu AI & Self-Healing (sebelumnya selalu tampil di semua tab)
2026-11-05 06:41:27 +07:00
oxpoe
c906bca459
fix(support): /donate redirect ke oxpoe.xyz, hapus sisa teks aktivasi & nomor
...
CI / test (push) Successful in 1m57s
- /donate, /donasi, /public/donasi -> 302 https://oxpoe.xyz
- locale id/en: teks kode aktivasi diganti netral, nomor kontak dihapus
- README: Gitea utama, Forgejo mirror read-only
- hapus nomor dari scripts/test-admin.js
2026-11-05 06:39:12 +07:00
oxpoe
205db53d7e
fix(ui): link repo ke gitea.oxpoe.xyz, buka semua menu, hapus kontak aktivasi
...
CI / test (push) Successful in 1m55s
- ganti sisa URL gitea.oxpoe.qzz.io -> gitea.oxpoe.xyz (sidebar, donate, package.json, projectUrl)
- default menu sidebar semuanya Tampil (tidak ada lagi menu terkunci)
- hapus nomor kontak aktivasi palsu 081947215703 dari UI & pesan route
- form pengaturan sidebar tidak lagi meminta password aktivasi
2026-11-05 06:29:50 +07:00
64e321a350
Update README.md
CI / test (push) Successful in 1m41s
2026-11-04 22:05:48 +00:00
55f8368214
Update README.md
CI / test (push) Successful in 4m29s
2026-11-04 21:40:16 +00:00
oxpoe
0ca85544aa
fix(customer): kartu akun di sidebar desktop bisa diklik
...
CI / test (push) Successful in 2m58s
- blok nama/avatar di sidebar sebelumnya tidak punya handler klik sama sekali
- dijadikan <button> dengan switchTab('profile') + aria-label
- avatar mobile di topbar juga dijadikan <button> agar tap lebih andal
2026-11-05 04:12:52 +07:00
oxpoe
f6ab9bbfa7
feat(update): sumber update bisa diatur (update_base_url)
...
CI / test (push) Successful in 4m5s
- setting baru update_base_url (default https://gitea.oxpoe.xyz ), menggantikan hardcode gitea.oxpoe.qzz.io
- field di Pengaturan: Sumber Update + Repo Update (owner/nama)
- default project_url ikut diperbarui
2026-11-05 04:05:20 +07:00
oxpoe
1cca67668e
perf(docs): konversi screenshot JPG lama ke WebP
...
CI / test (push) Failing after 1m41s
Total folder screenshot 2,9 MB -> 0,7 MB (19 gambar).
2026-11-05 03:56:23 +07:00
oxpoe
b612d5d232
perf(docs): screenshot ke WebP — 2,3 MB → 0,39 MB
...
CI / test (push) Has been cancelled
- konversi 10 screenshot PNG ke WebP (q78, lebar maks 1280px)
- update tautan di README dan docs/screenshots/README.md
2026-11-05 03:56:00 +07:00
oxpoe
5be6582c39
ci(forgejo): gunakan label runner linux-amd64
CI / test (push) Successful in 5m28s
2026-11-05 03:44:47 +07:00
oxpoe
6e2bf3fe93
chore(release): v0.5.3 — rapikan dokumentasi, CI, dan workflow rilis
...
CI / test (push) Waiting to run
Release / release (push) Successful in 35s
- bump versi 0.5.3 (version.txt, package.json)
- CHANGELOG: catatan 0.5.3 + arsip 0.5.2
- README: tautan Gitea/Forgejo baru, badge versi, bagian screenshot, fitur baru
- docs/RELEASE_NOTES_v0.5.3.md
- workflow CI (syntax + unit test) dan Release (buat rilis + asset zip) untuk Gitea & Forgejo
v0.5.3
2026-11-05 03:32:03 +07:00
oxpoe
2b35ee3f99
docs(screenshots): tangkapan layar v0.5.2 + samarkan kolom API key
...
- 10 screenshot (desktop + mobile) untuk landing, admin, inventaris, AI settings, portal pelanggan
- field API key AI memakai type=password agar tidak tampil di layar/screenshot
2026-11-05 02:07:48 +07:00
oxpoe
adc3437bd5
fix(login): link status ikut setting uptime_url + batas sesi per akun
...
- login.ejs: pakai settings.uptime_url (fallback status_url lama), sehingga tab Status tidak lagi hardcode status.skyfiber.qzz.io
- sessionLimitService: rotasi session id saat login (anti fixation), catat sesi di tabel login_sessions, batas admin/kasir/teknisi/kolektor 2 per akun dan pelanggan 3 per akun; sesi tertua diputus dari store saat melebihi batas
- hook login admin/kasir/teknisi/kolektor/pelanggan (direct & OTP) dan logout
2026-11-05 01:58:29 +07:00
oxpoe
4003149046
feat(ai): provider OpenAI-compatible + DeepSeek, AI Telegram, self-healing dengan toggle (port upstream)
...
- telegramAiService/adminAiTools: dukung openai, deepseek, groq, openrouter, custom (base URL + key + model)
- selfHealingService: billing vs isolir, konsistensi secret PPPoE, sesi RADIUS stale, IP ACS kosong
- mikrotikService: getActivePppoeUsers, isolateCustomerPppoe, unisolateCustomerPppoe (upstream memanggil fungsi yang tidak ada)
- cron 30 menit hanya jalan bila ai_self_healing_enabled=true (default off) + scan brute force MikroTik tiap 2 menit
- Pengaturan: kartu AI & Self-Healing (provider, key/model, toggle, tombol Diagnosa/Perbaiki)
- bot Telegram: pesan non-command dari admin dijawab AI
2026-11-05 01:48:50 +07:00
oxpoe
1c40e6a0e8
feat(keamanan): security watchdog brute-force + soundbox TTS (port upstream)
...
- securityWatchdogService: deteksi brute force login admin/kasir/teknisi/kolektor & log MikroTik, blokir IP 15 menit, alert suara + WA/Telegram
- soundboxService + voiceTtsService (TTS Google Translate, cache)
- hook login admin/teknisi/kolektor, hook soundbox saat invoice lunas
- route /admin/api/soundbox/poll dan /test
2026-11-05 01:27:33 +07:00
oxpoe
95fa69e968
feat(inventaris): stok keluar/retur/opname + detail unit, dan edit slip payroll (port upstream)
...
- inventoryService: port penuh dari upstream (issueStock FIFO/SN, returnStock, adjustStock opname, serial tersedia, statistik, detail barang) + kompatibilitas fork
- schema: kolom price/supplier (stock) dan remaining_stock/recipient/reference_no (log) via migrasi aman
- admin: route stok keluar/retur/opname + API detail & serial; modal + tombol aksi di halaman inventaris; viewStock yang tadinya undefined
- payroll: updateSlip() + route /payroll/slip/:id/update
2026-11-05 01:26:18 +07:00
oxpoe
d24cabf818
feat(akses): batasi teknisi & kolektor sesuai wilayah tugas (port dari upstream)
...
- techService: getTechAreaWhere + canTechAccessCustomer, filter pool/stats
- techPortal: filter peta, ODP, daftar perangkat; guard perangkat per wilayah; area pelanggan baru dipaksa sesuai wilayah
- customerService: getCollectorCustomerWhere + canCollectorAccessCustomer (multi-area)
- collectorPortal: daftar tagihan pakai helper; tolak bayar/cetak/kirim PDF di luar wilayah
- customerAPI: dashboard & pay-bill kolektor dibatasi wilayah
- tests/unit/area-access.test.js: self-check logika area
2026-11-05 01:16:26 +07:00
oxpoe
2a29739dc3
docs: banner mirror sebutkan rilis/unduhan di Gitea
2026-10-14 22:34:20 +07:00
oxpoe
e2e3f40aa5
rebrand: rename key locale github_* -> gitea_*
v0.5.2
2026-10-14 21:38:02 +07:00
oxpoe
a69b203b63
chore: bump versi 0.5.2 (rebrand + deploy ke Gitea)
2026-10-14 21:34:20 +07:00
oxpoe
11ccc31933
fix(update): fetch rilis dari Gitea, bukan github.com
2026-10-14 21:11:52 +07:00
oxpoe
19558b9b94
rebrand: ganti sisa teks 'GitHub' -> 'Gitea' (UI, komentar, dokumen)
2026-10-14 21:09:02 +07:00
oxpoe
6817404688
rebrand: arahkan tautan, badge, label UI & cek-update ke Gitea (bukan GitHub)
2026-10-14 21:08:02 +07:00
oxpoe
91b65fc769
docs: banner mirror (repo asli di Gitea)
2026-10-14 12:30:36 +07:00
oxpoe
ed557cf899
chore(tidy): version.txt=0.5.1 (cek update) + buang blok UI khusus Baileys
2026-10-13 04:07:15 +07:00
oxpoe
d02c9baf7b
feat(update): mode container -> menu Update tampil dgn pesan rebuild image (bukan disembunyikan)
2026-10-13 04:00:25 +07:00
oxpoe
fed81ed5f9
chore: selaraskan default server_port=3001 (Docker/healthcheck/wiki)
2026-10-13 03:49:47 +07:00
oxpoe
a68121544d
chore: rapikan istilah lama (RTRW/Baileys) + path relatif isolir-redirect
2026-10-13 03:49:25 +07:00
oxpoe
cdb5046147
docs: bersihkan dokumen basi (artefak fork/dev) + buang referensi digiflazz
2026-10-13 03:48:58 +07:00
oxpoe
cb60ceec10
chore: default wa_gateway_type=gowa (baileys dilepas) + README
2026-10-13 03:47:32 +07:00
oxpoe
0f612df70f
fix(monitoring): diagnosa WhatsApp sadar-gateway (GoWA) + tambah cek Telegram
2026-10-13 03:36:53 +07:00
oxpoe
6f97430e41
feat: dukung SETTINGS_PATH (settings.json di direktori mount/persisten)
2026-10-13 03:29:36 +07:00
oxpoe
f27c02309e
feat: badge kelengkapan data pelanggan; fix IP search GenieACS; mount speedtest backend; isolir-redirect embedded; sembunyikan menu Update tanpa .git
2026-10-13 03:01:16 +07:00