Selasa, 29 November 2016

Billing warnet PHP

Panduan Instalasi dan Penggunaan BiOS Billing untuk Warnet menggunakan Linux Ubuntu

Pendahuluan

Salah satu pertanyaan yang kerap di tanyakan para pemilik Warnet saat ingin bermigrasi ke platform Linux adalah pertanyaan tentang billing warnet. Untungnya, saat ini sudah tersedia beberapa aplikasi billing warnet di Linux yang dapat digunakan. Salah satunya adalah BiOS (Billing Open Source), aplikasi billing warnet buatan dalam negri yang diistimewakan untuk warnet berbasis Linux.
Billing Open Source (BiOS) adalah billing yang diistimewakan untuk warnet berbasis Linux (meski dapat juga berjalan di hampir semua sistem operasi lainnya), source code terbuka (open source), dan sepenuhnya FREE. Aplikasi ini dibuat dari scratch dan bukan turunan atau pengembangan dari aplikasi sejenis lainnya. BiOS merupakan aplikasi berbasis web (PHP dan MySQL), dan berjalan diatas aplikasi webserver seperti Apache atau Lighttpd, dan sebagainya. BiOS menggunakan konsep client-server. Aplikasi Server dapat dipasang di proxy internet. Client dapat memantau durasi pemakaian dan biaya yang dikeluarkan via browser, dalam hal ini menggunakan aplikasi firefox yang telah di modifikasi sedemikian rupa (seperti pengaturan border window) oleh BiOS. Administrator dapat menetapkan aturan biaya koneksi per-durasi waktu. Dan Operator dapat memonitor biaya yang harus dibayarkan client, memulai, menghentikan dan mereset billing client, membuat laporan harian dan bulanan, termasuk mencetak bill/nota untuk pelanggan.

Fitur dan Kelebihan BiOS:

Sebagai aplikasi billing open source, BiOS tidak kalah dengan aplikasi billing warnet sejenis yang bersifat komersial. Beberapa fitur dan kelebihan BiOS yang telah tercapai diantaranya sebagai berikut:
  1. BiOS dapat berjalan di hampir semua sistem operasi - cross platform, baik client maupun server (linux, windows, bsd, etc). Meski fitur-fitur khusus seperti fitur remote hanya diistimewakan untuk Linux saja.
  2. Memiliki interface sederhana, mudah penggunaan untuk client dan operator. Menu dalam bahasa Indonesia. Sistem timer berbasis AJAX.
  3. Telah mendapatkan penghargaan sebagai Pemenang Software Terinovatif pada Open Source Competition Maret 2008 yang diselenggarakan oleh Open Source Care POSSNetwork UGM.
  4. Tidak perlu kompilasi di client. Sangat mudah diinstal, karena cukup dicopy ke komputer operator atau proxy server yang telah dilengkapi dengan webserver (ex: Apache server, lighttpd, dan lain-lain), PHP dan database MySQL. Hampir semua distro Linux saat ini menyediakan aplikasi ini.
  5. Aplikasi BiOS sangat ringan, responsif, hanya membutuhkan space < 400Kb, dan minim pemakaian bandwidth.
  6. Dapat diakses dari berbagai desktop manager (KDE, Gnome, XFCE), sehinggal tidak tergantung pada satu distro.
  7. Terdapat akses berjenjang untuk client, operator dan administrator.
  8. Unlimited client.
  9. Fasilitas tampilan skin dengan CSS.
  10. Apabila komputer billing terhubung ke internet, pemilik dapat memantau dan mengakses control panel billing dari manapun. Dengan begitu dia tetap dapat memantau kondisi warnet, termasuk meremotenya bila perlu.

Pra Instalasi BiOS

Pastikan Anda sudah menyiapkan web server berbasis Linux untuk aplikasi billing ini. Server untuk keperluan billing tersebut dapat dijadikan satu dengan proxy server warnet atau dipasang terpisah, misal di komputer operator. Pastikan server tersebut dapat menjalankan web PHP dan database MySQL. Hampir kebanyakan distro linux saat ini telah menyediakan paket web server Apache, PHP dan MySQL didalam CD Instalasinya. Operator dan client bisa juga menggunakan sistem operasi selain GNU/Linux semisal Windows, namun fungsi billing menjadi terbatas hanya sebatas menghitung perhitungan waktu saja. Fitur utama seperti reboot, poweroff, logout, screenshot tidak dapat berfungsi.
Lain halnya bila komputer billing server, client dan operator terpisah. Maka operator dapat menggunakan sistem operasi apapun karena hanya berfungsi sebagai pengontrol/tampilan saja. Untuk web server Anda bisa menggunakan aplikasi semacam Apache, Lighttpd, dan sejenisnya. Silahkan lihat dokumentasi di website masing-masing untuk petunjuk instalasi, atau search di Google. Untuk client Anda bisa gunakan sembarang distro GNU/Linux. Namun saya rekomendasikan Anda menggunakan distro berbasis desktop Gnome, KDE, atau XFCE. Karena pada BiOS versi terbaru 1.3 telah mendukung ketiganya, dimana pada versi awal sebelumnya baru mendukung desktop KDE. Bagi yang masih memakai versi lama disarankan untuk upgrade. Untuk operator dengan OS GNU/Linux, direkomendasikan menggunakan browser Konqueror bawaan KDE bila menginginkan fitur screenshot. Atau cukup menggunakan browser Mozilla Firefox bila tidak ingin memanfaatkan fitur screenshot dengan alasan perlindungan privasi client misalnya :).
Pastikan juga plugin flash player dapat dijalankan dengan baik pada browser bersangkutan. Hal ini karena beberapa fitur billing di sisi operator memanfaatkan fungsi flash. Seperti fitur output laporan dengan grafis 3D dan fitur auto refresh billing. Antara server billing dan client pastikan terhubung dalam jaringan ip statis (non DHCP). Untuk client pastikan di tiap komputer telah terpasang browser Mozilla Firefox (versi 1.5 keatas), aplikasi ImageMagick, OpenSSH daemon, dan Samba daemon. Browser Firefox nantinya dipakai sebagai frontend billing di client, ImageMagick dan Samba dimanfaatkan untuk fitur dan jalur pengiriman screenshot, sementara OpenSSH (jalan di port 22 di tiap-tiap client) wajib ada karena dimanfaatkan untuk fungsi remote. Untuk keperluan browsing, direkomendasikan Anda menginstall Opera di tiap komputer client. Jadi firefox nantinya khusus untuk billing, dan untuk browsingnya client pakai Opera. Ini hanya opsi saja, bisa diabaikan :). Aplikasi yang dibutuhkan diatas kebanyakan telah disertakan pada sebagian besar distro. Kalaupun belum ada, biasanya mudah didapatkan dari repositori. Contoh: Mandriva, Ubuntu, Debian, PCLinuxOS, Zencafe, Blankon, dsb.

Hardware Requirement

Spesifikasi Minimum : Processor : Intel P4 1.8GHZ
RAM : 256MB
Hardisk : 80GB 

Software Requirement

Kebutuhan Paket Software :
  1. Linux Ubuntu
  2. Apache 2.x.x
  3. PHP 5.x.x (with mysql, session, hash, json extension)
  4. PHP-CLI
  5. MySQL 5.x.x
  6. BiOS Billing

Instalasi

Install LAMP

  1. Install package ;
    $ sudo tasksel install lamp-server
  2. Dalam proses instalasi akan di tanyakan untuk membuat passsword user dan password mysql
    user : root
    passwd : root
  3. Install PHPMYADMIN [optional]
    $ sudo apt-get install phpmyadmin
  4. Dalam proses instalasi akan di tanyakan passsword user dan password mysql
    user : root
    passwd : root

Instalasi Pada Server Billing

Dalam contoh ini, dianggap aplikasi webserver Apache/Lighttpd, PHP dan MySQL telah dapat berjalan sempurna pada komputer yg akan dijadikan server billing. Buat direktori khusus untuk billing ini di direktori web server anda. Pada beberapa varian distro biasanya root webnya ada di /var/www/html/ dan untuk user direktorinya ada di /home/[user]/public_html. Berikut tahapan instalasi BiOS di Ubuntu:
  1. Download file BiOS terbaru dari url http://code.google.com/p/bios/
  2. Dalam contoh kali ini, di contohkan aplikasi billing di install pada direktori user yang dapat diakses lewat web, yakni di /home/server/public_html.
  3. Extract file ke direktori /home/server/public_html.
    $ sudo tar -xjvf BiOS-v1.4BSP1.tar.bz2 -d /var/www/ 
  4. Pindah ke direktori billing.
    $ cd /var/www/billing 
  5. Berikutnya buat database untuk billing BiOS di MySQL dengan nama database “bios”.
    $ mysqladmin -u root -p create bios 
  6. Import table database yang tersimpan di file bios.sql ke database mysql “bios” yang baru saja Anda buat. Perintahnya adalah sebagai berikut:
    $ mysql -u root -p bios < bios.sql 
    Note: Sesuaikan root dengan username mysql, dan bios dengan nama database yang anda inginkan.
  7. Selanjutnya edit beberapa variabel yang terdapat pada file bios-config.php, pada bagian berikut:
    $mysql_user
    $mysql_pass
    $mysql_dbname
    $url_location 
    Sesuaikan dengan setting di sistem anda. Sebagai contoh:
    $mysql_user='root'; --> user mysql .
    $mysql_pass='root'; --> pass mysql
    $mysql_dbname='bios'; --> nama database yg tadi dibuat
    $url_location='http://ip_address/billing/'; --> url lokasi billing 
  8. Selanjutnya buka browser dan akses url_location yang sudah di set diatas (sesuaikan dengan alamat web server billing anda)
    Contoh: http://ip_address/billing/operator.php
    Apabila muncul tampilan seperti Gambar 01, maka instalasi BiOS dapat dibilang berhasil.
    • 01-operator-login.jpg
  9. Untuk login ke halaman BiOS, Anda dapat menggunakan user dan password default administrator sebagai berikut :
    username : admin
    password: tes123
    Seharusnya kini Anda akan melihat tampilan welcome page seperti Gambar 02.
    • 02-operator-welcome-page.jpg

Settings

03-operator-setting.jpg
Ubah nama warnet, dan alamat dengan nama warnet Anda. MOTD dengan pesan yang ingin Anda tampilkan di komputer client. Set sistem operasi yang dipakai operator ke GNU/Linux bila Anda menggunakan Linux.
Pada bagian Harga, set harga sewa per jam warnet Anda. Default Rp. 3000 / jam. Set pada minimum pemakaian dengan biaya minimal yang harus dibayarkan client untuk dapat bermain di warnet Anda. Default Rp. 100. Set dengan Rp. 0, bila tidak ada minimum pemakaian. Ubah charge pemakaian setiap 1 detik ke nilai lain bila Anda tidak ingin mencharge pemakaian per detik. Misal Anda ingin mengenakan charge pemakaian tiap 5 menit awal, maka ubah variabel ini menjadi 5 x 60 detik = 300 detik.
Pada bagian Sekuriti, masukkan ip yang berhak mengakses aplikasi operator.php. Untuk banyak ip pisahkan dengan tanda |. Contoh: 192.168.1.25|127.0.0.1|222.222.222.222. Kosongkan apabila Anda ingin mengijinkan semua ip dapat mengakses operator.php.
Pada bagian Screenshot, ubah resolusi dengan resolusi screenshot yg Anda inginkan. Defaultnya 640×480 pixel, jpg. Ubah screenshot name dan folder dengan nama file screenshot dan nama folder di home direktori client dimana screenshot akan disimpan. Folder di client ini nantinya akan dishare dengan memanfaatkan protokol samba. Nama file Misal .screen.jpg (awalan . akan membuat file/direktori tersebut menjadi hidden). logikanya file screenshot nanti akan diakses melalui: smb:ip_client/.bios-dir/.screen.jpg Untuk protokol file sharing lain silahkan set manual di kolom yang tersedia. Saat Anda mengeset “Sistem operasi yang dipakai operator” dengan GNU/Linux maka otomatis default protocol yg dipakai adalah samba (smb:ip_client) atau bila Windows otomatis menggunakan (file:ip_client)
Pada bagian Remote Access, ubah “Client default login username /SSH” dengan username client linux Anda. Untuk itu silahkan samakan user name untuk seluruh client warnet Anda. Untuk password antar client boleh beda.
04-operator-client.jpg
Gambar 04. Halaman pengaturan
Di bagian ini Anda dapat melakukan tambah/kurang/edit/delete komputer client di warnet yang berhak mengakses program billing. Silahkan masukkan Nama client, IP client (IP Statis), dan Desktop yang digunakan. Untuk desktop ada 4 pilihan saat ini, yakni KDE, GNOME, XFCE dan Windows. Namun yang benar-benar sudah fully compatible adalah desktop KDE. Untuk tiga lainnya masih dalam tahap pengembangan khususnya pada fitur logout.
05-operator-operator.jpg
Pada bagian ini Anda dapat menambah user lain yang dapat mengakses aplikasi operator.php namun dengan hak akses dibawah level user admin. Alias anda dapat menambah user untuk operator / pegawai warnet Anda. Adapun operator selain admin (selain yang ID nya 1) hanya dapat melihat menu Index, Billing, dan Laporan. Laporan juga terbatas hanya dapat melihat transaksi yang ada selama yang bersangkutan sedang bertugas. Tidak dapat melihat laporan operator lainnya.
Untuk menambahkan cukup dengan mengisi:
  • Nickname –> akan menjadi user login
  • Nama lengkap –> akan tercetak pada struk billing
  • Password –> password login
  • Dapat mengedit laporan harian –> Defaultnya TIDAK. artinya yang bersangkutan tidak dapat mengedit laporan transaksi yang terjadi (misal hapus transaksi, atau mengubah nilai transaksi).

Instalasi Pada Client

Frontend pada client memanfaatkan browser Firefox. Silahkan setting browser Firefox. Buka Firefox. Pada kolom URL ketikkan “about:config” Pada isian Filter ketik:
signed.applets.codebase_principal_support 
Set value menjadi true 
Selanjutnya, filter : browser.sessionstore.enabled 
Set value menjadi false 
maksud signed.applets.. adalah agar jendela firefox bisa kita atur panjang lebar nya otomatis lewat script dalam program billing. Untuk browser.session di disable. Tujuannya untuk mencegah firefox merestore session yang disimpan sesaat sebelum browser di close mendadak saat komputer client di logout/reboot. Selanjut silahkan tes firefox dengan membuka url : http://ip_server/lokasi_file_client.php
contoh: http://192.168.1.13:80/~budi/billing/client.php dari client
Bila ada muncul pertanyaan berkaitan security, jangan lupa beri centang pada bagian dont ask again, supaya tidak ditanya2 lagi.
Apabila IP client sebelumnya telah didaftarkan di menu client (operator.php), billing seharusnya akan mulai menghitung dengan penampilan seperti pada gambar di bawah ini.
Anda sebagai operator / admin dapat memantau penggunaan billing secara realtime lewat operator.php pada menu Billing.
OK sampai tahap ini, proses instalasi sudah mencapai 70% :)

Instalasi Lanjut pada Server dan Client

Pastikan pada komputer server telah terpasang paket openssh. Umumnya paket ini sudah ada di kebanyakan distro linux. Paket ini digunakan oleh billing untuk melakukan remote access via SSH. Silahkan Anda install dulu lewat
$ sudo apt-get install openssh 
Silahkan Anda lakukan juga hal yang sama untuk paket Samba, ImageMagick, dan Flash. Selanjutnya login sebagai user root pada komputer server, dari console ketikkan perintah: (khusus Ubuntu awali dengan sudo, untuk distro lain langsung su saja)
$ sudo su 
Edit file /etc/ssh/ssh_config misal pakai aplikasi gedit # gedit /etc/ssh/ssh_config Edit variable - variable yg ada sehingga nilainnya menjadi:
ForwardAgent yes
Protocol 2,1
Host *
#ForwardX11 yes --> didisable
pindah ke direktori root
# cd 
Jalankan perintah:
# ssh-keygen -t rsa 
nanti otomatis akan ada 2 file tersimpan di /root/.ssh
# ls /root/.ssh
id_rsa id_rsa.pub 
Kedua file ini nantinya digunakan sebagai otentikasi untuk mengakses secara remote client via protokol ssh tanpa perlu menggunakan password. Silahkan Anda copy (misal ke flashdisk) file id_rsa.pub. Lalu copykan ke masing -masing root client. Copykan ke folder .ssh di /root direktori masing-masing client. copy ke /root/.ssh/
(INGAT! BUKAN di Home direktori user!)
Apabila folder .ssh belum ada silahkan di create dulu. Jangan lupa ubah copy-an file tersebut dengan nama authorized_keys lalu ubah permission nya menjadi 600
# chmod 600 authorized_keys 
Masih di komputer client, edit file /etc/ssh/sshd_config Ubah variabel yang ada sehingga menjadi: </code> RSAAuthentication yes PermitRootLogin yes </code> REBOOT komputer client Anda. Setelah REBOOT, lanjutkan ke langkah dibawah ini. Lakukan testing dari komputer server. login sebagai root, dan dari console ketikkan perintah:
# ssh -l root 192.168.1.16 
Ubah ip dengan ip client Anda. Seharusnya anda bisa langsung login ke ip 192.168.1.16 tanpa perlu memasukkan password. OK sampai sini proses instalasi udah 80% :) Kembali ke komputer server. Apabila Anda menggunakan webserver apache, pastikan Anda memasukkan user apache kedalam file sudo (/etc/sudoers) Caranya: login sebagai root, dari console ketikkan:
# visudo 
ketikkan tombol i, untuk perintah insert tambahkan:
apache ALL=(ALL) ALL
tekan tombol ESC, lalu "shift" + ":" 
Akan muncul : dibagian bawah. Ketik wq, untuk write lalu quit Apabila berhasil seharusnya akan muncul seperti dibawah ini:
wrote /etc/sudoers.tmp, 32 lines, 740 chars 

Fitur Screenshot

Untuk fitur screenshot pastikan koneksi samba antara komputer server dan client berjalan baik. Silahkan buat direktori di home direktori user client anda dengan nama sesuai dengan yang anda setting di operator.php > setting Dalam contoh ini nama foldernya dan nama sharingnya adalah .bios-dir (lihat gambar dibawah untuk petunjuk lengkap step-by step menshare sebuah folder di Ubuntu) Masih di komputer client, cek apakah file aplikasi ini ada (login sebagai root)
# locate xwd 
bila ditemukan dan lokasinya tidak di /usr/bin/ misal di:
/usr/bin/X11/xwd 
maka silahkan anda buat symbolic link alias shortcut file ini di /usr/bin caranya ketik perintah di bawah ini:
# ln -s /usr/bin/X11/xwd /usr/bin/xwd 
(Catatan: ubah /usr/bin/X11/xwd sesuai dengan lokasi file xwd berada) OK silahkan Anda coba dari operator.php, klik pada gambar komputer client. Seharusnya kini Anda dapat melihat tampilan screenshot layar client

Autostartup BIOS Billing Client

Buat shortcut aplikasi BIOS Billing agar berjalan ketika komputer client melakukan startup.
 
$ sudo gedit /etc/xdg/autostart/bios-billing.desktop 
Isi dengan konfigurasi dibawah :
[Desktop Entry]
Type=Application
Name=Bios Billing
Exec=firefox http://ip-address-server/billing/client.php
Comment=Notification area menu to unmount devices
X-GNOME-Autostart-enabled=true
Supaya aplikasi billing ini lebih aman, silahkan anda masukkan ip operator yang berhak mengakses aplikasi operator.php. Set di menu Setting > Sekuriti. Apabila ada lebih dari 1 IP, pisahkan dengan tanda “|”. Misal 192.168.1.13|192.168.1.75 Langkah terakhir :D silahkan replace file logo di direktori img/LOGO-WARNET.png dengan logo warnet Anda. (Lihat Gambar 09)

Tidak ada komentar:

Posting Komentar