Dokumen ini menjelaskan cara menginstal, mengkonfigurasi, dan menjalankan aplikasi SIAP Tangsel Mobile di Termux dengan akses via localhost di smartphone.
Sebelum memulai, pastikan Anda memiliki:
- Smartphone dengan Termux - Aplikasi Termux sudah terinstal dari F-Droid atau Google Play Store
- Koneksi Internet - WiFi atau mobile data untuk download dependencies
- Node.js & npm - Akan diinstal otomatis melalui script
- MySQL/TiDB Database - Akun database sudah siap (bisa di cloud atau lokal)
- Manus Account - Untuk OAuth dan API keys
Buka Termux dan jalankan perintah untuk update sistem:
pkg update && pkg upgrade -yTermux memerlukan beberapa package sistem sebelum Node.js:
pkg install -y git nodejs python3 build-essentialPilih salah satu metode:
Opsi A: Clone dari GitHub (jika sudah di-push)
cd ~
git clone https://github.com/yourusername/siap-tangsel-mobile.git
cd siap-tangsel-mobileOpsi B: Download ZIP dan Extract
cd ~
# Download file ZIP dari Manus atau GitHub
unzip siap-tangsel-mobile.zip
cd siap-tangsel-mobilenpm install
# atau jika menggunakan pnpm
npm install -g pnpm
pnpm installBuat file .env.local di root project:
nano .env.localIsi dengan konfigurasi berikut (sesuaikan dengan akun Anda):
# Database Configuration
DATABASE_URL="mysql://username:password@localhost:3306/siap_tangsel"
# Manus OAuth
VITE_APP_ID="your-manus-app-id"
OAUTH_SERVER_URL="https://api.manus.im"
VITE_OAUTH_PORTAL_URL="https://manus.im/login"
# JWT Secret (generate random string)
JWT_SECRET="your-random-jwt-secret-key-min-32-chars"
# Owner Information
OWNER_OPEN_ID="your-open-id"
OWNER_NAME="Admin Name"
# Manus APIs
BUILT_IN_FORGE_API_URL="https://api.manus.im"
BUILT_IN_FORGE_API_KEY="your-forge-api-key"
VITE_FRONTEND_FORGE_API_URL="https://api.manus.im"
VITE_FRONTEND_FORGE_API_KEY="your-frontend-forge-api-key"
# Analytics (optional)
VITE_ANALYTICS_ENDPOINT="https://analytics.manus.im"
VITE_ANALYTICS_WEBSITE_ID="your-website-id"
# App Configuration
VITE_APP_TITLE="SIAP Tangsel Mobile"
VITE_APP_LOGO="/logo.png"
# Termux Specific
NODE_ENV="development"
HOST="0.0.0.0"
PORT="3000"Tekan Ctrl+X, kemudian Y, lalu Enter untuk menyimpan.
Jika menggunakan MySQL lokal di Termux:
pkg install -y mysql
mysqld_safe &Atau jika menggunakan cloud database (recommended), pastikan connection string sudah benar di .env.local.
Jalankan migration database:
npm run db:pushnpm run devServer akan berjalan di http://localhost:3000
npm run build
npm run startDi Termux, jalankan:
ifconfig
# atau
ip addr showCari IP address yang dimulai dengan 192.168.x.x atau 10.x.x.x (jangan gunakan 127.0.0.1).
Contoh output:
inet 192.168.1.105 netmask 255.255.255.0 broadcast 192.168.1.255
IP address Anda: 192.168.1.105
Buka browser di smartphone (Chrome, Firefox, atau browser lainnya) dan masukkan:
http://192.168.1.105:3000
Ganti 192.168.1.105 dengan IP address Termux Anda.
Klik tombol "Login" dan ikuti flow OAuth Manus untuk autentikasi.
Solusi:
- Pastikan server Termux masih berjalan (lihat output di terminal)
- Verifikasi IP address yang benar dengan
ifconfig - Pastikan smartphone dan Termux device terhubung ke WiFi yang sama
- Cek firewall - buka port 3000 jika ada firewall aktif
Solusi:
- Verifikasi
DATABASE_URLdi.env.localsudah benar - Pastikan database server berjalan (jika lokal)
- Test koneksi database dengan
mysql -u username -p -h hostname
Solusi:
rm -rf node_modules package-lock.json
npm installSolusi:
Ubah port di .env.local:
PORT="3001"Kemudian akses http://192.168.1.105:3001
Termux memiliki keterbatasan resource. Untuk performa optimal:
# Jalankan dengan memory optimization
NODE_OPTIONS="--max-old-space-size=512" npm run devUntuk menjalankan server di background:
nohup npm run dev > server.log 2>&1 &Lihat log:
tail -f server.logBuat file start-server.sh:
#!/bin/bash
cd ~/siap-tangsel-mobile
NODE_ENV=development NODE_OPTIONS="--max-old-space-size=512" npm run devBuat executable:
chmod +x start-server.shJalankan:
./start-server.shSetelah server berjalan, Anda dapat mengakses:
| Fitur | URL | Deskripsi |
|---|---|---|
| Dashboard | / |
Halaman utama dengan statistik agenda dan disposisi |
| Agenda Management | /agendas |
CRUD manajemen agenda protokoler |
| Dispositions | /dispositions |
Tracking dan approval workflow disposisi |
| Documents | /documents |
Upload dan download dokumen pendukung |
| Notifications | /notifications |
Pusat notifikasi email dan system |
| Admin Settings | /admin/settings |
Pengaturan sistem (admin only) |
- Gunakan HTTPS - Setup reverse proxy dengan SSL certificate
- Ubah JWT_SECRET - Generate random string yang kuat (minimum 32 karakter)
- Restrict Network Access - Jangan expose port 3000 ke internet publik
- Database Security - Gunakan strong password dan restrict access
- Environment Variables - Jangan commit
.env.localke repository
Untuk production, gunakan nginx atau Apache sebagai reverse proxy:
pkg install -y nginxKonfigurasi nginx untuk proxy ke localhost:3000 dengan SSL.
npm updatemysqldump -u username -p database_name > backup.sqlrm -rf dist build .next
npm run build- Manus Documentation - https://manus.im/docs
- Termux Documentation - https://termux.dev
- Node.js Documentation - https://nodejs.org/docs
- MySQL Documentation - https://dev.mysql.com/doc
Sebelum go-live, pastikan:
-
.env.localsudah dikonfigurasi dengan benar - Database sudah di-setup dan migration selesai
- Server berjalan tanpa error di Termux
- Dapat diakses dari smartphone via localhost
- OAuth login berfungsi dengan baik
- Email notifications terkirim
- File upload ke S3 berfungsi
- Semua fitur CRUD agenda dan disposisi berfungsi
- Responsive design optimal di mobile
- Backup database sudah dibuat
Terakhir diupdate: 13 Februari 2026
Versi: 1.0
Status: Production Ready