Rabu, 26 November 2014

OpenERP aplikasi ritel gratis

OpenERP adalah sistem aplikasi bisnis open source yang memiliki fitur : Penjualan , CRM(Customer relationship management) , manajemen proyek , manajemen Gudang, Manufaktur , Akuntansi dan Sumber Daya Manusia . 
Dengan arsitektur menggunakan MVC(Model-view-controller ), workflow yang fleksibel, tampilan grafis(GUI) di komputer klien yang sangat dinamis dan dengan sistem pelaporan(report) yang terintegrasi dengan openoffice membuat OpenERP lebih mudah diterapkan pada perusahaan baik kecil, menengah atau besar.

Cara Menginstal OpenERP 6 Server, Addons, GTK dan Web Client

Daftar isi
Bagian I. Setup OpenERP Server
Langkah 1. Membengun Server OpenERP
Langkah 2. Proteksi Server dari serangan penjahat
Langkah 3. Update Server Ubuntu
Langkah 4. Buat user di ubuntu yang akan menjalankan program OpenERP
Langkah 5. Instal dan konfigur server database PostgreSQL
Langkah 6. Instal Library Python
Langkah 7. Instal Server OpenERP dan Web client
Langkah 8. Download OpenERP addons
Langkah 9. Membuat file konfigurasi Server OpenERP
Langkah 10. Menginstal boot script
Langkah 11. Membuat script daemon
Langkah 12. Membuat file log
Langkah 13. Uji kembali server
Langkah 14. Membuat Server OpenERP startup dan shutdown secara otomatis
Langkah 15. Mengkonfigurasi dan mengotomatiskan Web Client
Bagian II. Mengkonfigurasi akses WebDAV/CalDAV
Langkah 1. Menginstal Apache dan modul-modul yang diperlukan
Langkah 2. Membuat sertifikat dan key
Langkah 3. Membuat file konfigurasi Apache
Langkah 4. Merubah file konfigurasi OpenERP server dan web-client
Langkah 5. Coba jalankan server

Bagian I. Setup OpenERP Server
Untuk menginstal OpenERP yang akan digunakan di dalam operasi perusahaan, sebaiknya Sistem Operasi yang digunakan adalah linux server. Dari pengalaman selama ini, OS yang cukup bagus adalah Ubuntu Server versi 10.04 LTS, karena OS ini cukup lengkap dan hampir selalu up-to-date.
Proses instalasi Server OpenERP sebenarnya tidak begitu susah. Namun jika kita mencari dan membaca di berbagai literatur yang membahas mengenai bagaimana cara menginstal OpenERP di internet, kita menjadi kesulitan untuk mencari cara mana yang paling baik. Sebab banyak sekali cara yang dapat dilakukan untuk menginstal OpenERP.
Oleh karena umumnya server OpenERP akan dihubungkan atau dapat diakses melalui jaringan internet, maka Server OpenERP harus dapat memenuhi beberapa kriteria sebagai berikut:
* Harus bisa diakses melalui layanan enkripsi (SSL) ketika kita mengaksesnya baik melalui GTK client, Web browser, WebDAV maupun CalDAV;
* Harus dapat selalu diupgrade dan dikustomisasi.
Apakah ada cara yang paling cepat dan mudah untuk menginstal OpenERP server?
Ya, cara pintas untuk menginstal OpenERP adalah dengan menggunakan perintah sudo apt-get install openerp-server. Namun cara tersebut tidak disarankan sebab banyak sekali kelemahan yang diantaranya adalah:
* Paket OpenERP yang tersedia di repository Ubuntu sudah usang karena jarang sekali diupdate. Jika tidak salah, versi terakhir yang akan ada di repository itu adalah versi 5.0.16. Padahal versi terbaru OpenERP yang tersedia saat ini adalah versi 6.0.3 yang banyak mengandung perbaikan dari versi-versi sebelumnya, terutama seri 5.x.
* Program aplikasi bisnis OpenERP banyak memberikan pilihan konfigurasi. Hal ini akan menyulitkan kita untuk menentukan cara tertentu adalah cara terbaik.
* Penting diketahui bahwa OpenERP dikembangkan oleh komunitas. Maka setiap saat program ini banyak mengalami perubahan dan perbaikan. Tentu hal ini menjadi sangat penting bagi kita untuk mengetahui secara jelas cara mana yang kita gunakan untuk menginstalnya. Dengan demikian, kita akan mudah jika dikuemudian hari kita akan mengapdate atau mengupgradenya.
Meskipun cara yang akan kita lakukan di bawah ini adalah cara manual, tapi cara ini kami anggap sebagai cara yang terbaik karena kita akan tahu secara rinci mengenai hal apapun yang hubungannya dengan instalasi OpenERP.
Langkah 1. Membangun Server OpenERP
Untuk menjadikan Server Ubuntu sebagai server OpenERP, installah sistem ubuntu dasar saja. Kita tidak perlu menginstal apapun kecuali openssh agar kita bisa me-remote server dari komputer lain. Buatlah sebuah user yang tidak menggunakan kata-kata yang ada hubungannya dengan kata-kata seperti ‘root’, ‘admin’, ‘administrator’. Tapi gunakanlah nama lain yang berhubungan dengan nama openerp, misalnya user ‘openerp’.
Sebelum menginstal apapun, sebaiknya update dulu server yang baru diinstal dengan update yang diambil dari repository terdekat. Misalnya repository kambing ui dengan cara sbb:
Code:
sudo nano /etc/apt/sources.list
Lalu masukkan kode ini:
Code:
http://kambing.ui.ac.id/ubuntu/ lucid-backports main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu/ lucid-proposed main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu/ lucid-security main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu/ lucid-updates main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu/ lucid main restricted universe multiverse
Langkah 2. Proteksi Server dari serangan penjahat
Untuk menghindari serangan brutal yang datang dari jaringan internet, sebaiknya kita install program penangkal serangan seperti program denyhosts.
Kita semua tahu bahwa SSH adalah cara terbaik untuk meremot administrasi server. Namun SSH bisa menjadi masalah jika terjadi serangan yang bertubi-tubi (brute force attacks) yang datang dari internet.
Langkah pertama untuk menghindari serangan adalah dengan merubah port standar SSH yaitu port 22 diganti dengan port lain. Ganti dengan port diatas 20000 sudah cukup baik untuk mengurangi resiko ini. Untuk mengganti port 22, edit file berikut:
Code:
sudo nano /etc/ssh/sshd_config
Selain mengganti port, kita juga bisa menggunakan program seperti denyhosts. Denyhosts adalah paket program yang dibuat dengan script python untuk melindungi server dari serangan via ssh. Untuk mengetahui lebih jauh mengenai Denyhosts, silakan baca di http://denyhosts.sourceforge.net.
Denyhosts sangat ideal untuk melakukan pemblokkan secara dinamis terhadap akses SSH maupun service lainnya yang aturannya disimpan di file
Code:
/etc/hosts.deny
and
Code:
hosts.allow
Program ini secara otomatis membuat daftar host atau ip address yang mengakses server. Konfigurasi denyhosts ada di file
Code:
/etc/denyhosts.conf
Sebelum menginstal DenyHosts, pastikan kita mempunyai program python:
Code:
sudo python -V
Jika belum punya, install dulu python dengan perintah berikut:
Code:
sudo apt-get install python2.6
Lalu:
Code:
sudo apt-get install denyhosts
PERHATIAN!
JANGAN MENGINSTAL DENYHOSTS JIKA ANDA SEDANG TERHUBUNG KE SERVER VIA SSH, SEBAB KONEKSI KE SERVER AKAN PUTUS. LAKUKAN DI LOKAL.
Jika denyhosts sudah terinstal, edit konfigurasinya:
Code:
sudo nano /etc/denyhosts.conf
Jika kita melakukan perubahan di file konfigurasi di atas, sebaiknya restart Denyhosts:
Code:
sudo /etc/init.d/denyhosts restart
Untuk mengetahui apakah ada yang sedang berusaha mengakses server, lihat saja di file log:
Code:
tail –f /var/log/auth.log
dan tekan kontrol+C untuk keluar.
Kami sarankan Anda untuk melihat beberapa file berikut:
* File log untuk melihat otentifikasi:
Code:
sudo nano /var/log/auth.log
* Daftar ip yang tidak diijikan masuk:
Code:
sudo nano /etc/hosts.deny
* Daftar semua ip yang bisa akses ada di sini:
Code:
sudo nano /etc/hosts.allow
Langkah 3. Update Server Ubuntu
Update server dengan perintah:
Code:
sudo apt-get update
sudo apt-get dist-upgrade
Meskipun ini tidak diharuskan, namun sebaiknya kita restart server sebelum kita melanjutkannya untuk menginstal OpenERP. Setelah Server Ubuntu hidup lagi, pastikan kita bisa login via ssh. Gunakan perintah berikut:
Code:
ssh –l <nama-user> <ip-address-server> -p <port>
Jika sudah masuk, sekarang kita siap untuk melangkah ke tahap berikutnya.
Langkah 4. Buat user di ubuntu yang akan menjalankan program OpenERP
Kita akan membuat user dengan nama ‘openerp’. Direktori home untuk user openerp sebaiknya dibuat di dalam folder /opt/OpenObject/. Oleh karena sub direktori OpenObject belum ada, maka kita buat dulu.
Code:
cd /opt
sudo mkdir OpenObject
cd OpenObject
mkdir OpenERPv6
sudo adduser --system --home=/opt/OpenObject/OpenERPv6 --group openerp
User ini adalah user sistem OpenERP. User ini bukanlah nama seseorang. Untuk diketahui bahwa dalam Sistem Ubuntu, sebuah user dengan nomor UID dibawah angka 1000 tidak memiliki akses ke akses ke shell (/bin/false) dan tidak bisa login seperti user umumnya.
Langkah 5. Instal dan konfigur server database PostgreSQL
Ada banyak versi PostgreSQL yang dapat digunakan oleh OpenERP. Mulai dari versi 8.3, 8.4 dan terakhir 9.0. Kami sarankan Anda untuk menginstal versi 9.0 sebab versi ini dianggap versi yang tentunya lebih baik dari versi sebelumnya.
Install python-software-properties:
Code:
sudo apt-get install python-software-properties
Lalu tambahkan backports repo dan update apt:
Code:
sudo add-apt-repository ppa:pitti/postgresql
sudo apt-get update
sudo apt-get upgrade
Lalu install postgresql-9.0:
Code:
sudo apt-get install postgresql-9.0 libpq-dev
The libpq-dev package is for compiling wrappers/clients against libpq.
Konfigurasi default PostgreSQL ada di direktori: /etc/postgresql/9.0/main
Sedangkan direktori data ada di: /var/lib/postgresql/9.0/main
Code:
sudo passwd postgres
Lalu ganti password untuk “user postgres” dengan mengetik:
Code:
psql -h localhost -U postgres -W template1
atau
Code:
sudo su postgres -c psql template1
kemudian ketik perintah berikut (jangan lupa, ganti ‘password’ dengan password yang sebenarnya):
Code:
ALTER USER postgres WITH PASSWORD ‘password’;
Untuk keluar dari command windows postgres, gunakan perintah berikut:
Code:
\q
Agar database PostgreSQL dapat diakses dari jaringan luar, maka perlu untuk mengedit konfigurasinya.
Pertama kita edit dulu file postgresql.conf:
Code:
sudo nano /etc/postgresql/9.0/main/postgresql.conf
Cari baris ini:
Code:
# Listen_addresses = ‘localhost’
lalu rubah menjadi:
Code:
listen_addresses = ‘*’
Kita juga harus rubah baris ini:
Code:
# Password_encryption = on
menjadi:
Code:
password_encryption = on
Sekarang kita edit file “pg_hba.conf”
Code:
sudo nano /etc/postgresql/9.0/main/pg_hba.conf
dan rubah beberapa baris berikut:
Code:
# Database administrative login by UNIX sockets
local   all         postgres                          ident

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               ident <-- atau trust
# IPv4 remote connections:
host    all         all         194.116.73.46/0       md5 <-- atau trust
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5 <-- atau trust
# IPv6 local connections:
host    all         all         ::1/128               md5 <-- atau trust
Konfigurasi di atas menggunakan MD5 sebagai otentikasi user postgres ketika mengakses server .
Jika sudah, restart server PostgreSQL:
Code:
sudo /etc/init.d/postgresql restart
Berikutnya kita harus membuat user OpenERP di database postgres. Untuk membuat user di postgres, kita harus masuk sebagai user postgres yang memiliki akses sebagai administrator.
Code:
sudo su – postgres
Sekarang kita harus buat user database yang mana user ini adalah user yang ada di sistem PostgresSQL, bukan user Ubuntu. Dengan user ini, OpenERP akan memiliki akses untuk masuk ke dalam Server PostgreSQL untuk membuat dan menghapus database. Pastikan Anda ingat setiap password dari user ini, karena akan membutuhkannya nanti. Nama user yang akan kita buat adalah ‘openerp’ dengan password yang sama yaitu ‘openerp’ juga:
Code:
createuser --createdb --username postgres --no-createrole --pwprompt openerp
Enter password for new role: ********
Enter it again: ********
Shall the new role be a superuser? (y/n) y
Kemudian keluar dari akun postgres:
Code:
exit
Langkah 6. Instal Library Python
Code:
sudo apt-get install python python-psycopg2 python-reportlab python-egenix-mxdatetime python-tz python-pychart python-mako python-pydot python-lxml python-vobject python-yaml python-dateutil python-pychart python-pydot python-webdav
Instal juga beberapa library berikut yang akan digunakan oleh OpenERP Web:
Code:
sudo apt-get install python-cherrypy3 python-formencode python-pybabel python-simplejson python-pyparsing
Langkah 7. Instal Server OpenERP dan Web client
Usahakan untuk selalu menginstal OpenERP versi terbaru. Saat ini versi terbaru adalah versi 6.0.3. Biasanya kami mendownloadnya ke direktori home, dalam hal ini /opt/OpenObject/OpenERPv6. Untuk memudahkan dalam mengupdate versi OpenERP lainnya, sebaiknya kita susun dulu direktori untuk server, web dan addons sebagai berikut:
/opt/OpenObject/OpenERPv6/server <– digunakan untuk server OpenERP
/opt/OpenObject/OpenERPv6/web <– digunakan untuk web client OpenERP
/opt/OpenObject/OpenERPv6/addons <– digunakan untuk addon OpenERP
Kenapa harus dibuat dengan cara itu, sebab cara ini akan memudahkan kita dalam pemeliharaan versi-versi OpenERP. Coba perhatikan, jika kita memiliki 4 versi server seperti 6.0.1, 6.0.2, 6.0.3 dan 6.1.0, maka susunan direktori akan menjadi:
/opt/OpenObject/OpenERPv6/server/openerp-server-6.0.1/
/opt/OpenObject/OpenERPv6/server/openerp-server-6.0.2/
/opt/OpenObject/OpenERPv6/server/openerp-server-6.0.3/
/opt/OpenObject/OpenERPv6/server/openerp-server-6.1.0/
Buat dengan cara berikut:
Code:
cd /opt/OpenObject/OpenERPv6
sudo mkdir server
sudo mkdir web
sudo mkdir addons
Sekarang download dan extract dulu servernya:
Code:
cd server
sudo wget server/http://www.openerp.com/download/stable/source/openerp-server-6.0.3.tar.gz
sudo tar xvf openerp-server-6.0.3.tar.gz
Kemudian download web client:
Code/:
cd ..
cd web
wget http://www.openerp.com/download/stable/source/openerp-web-6.0.3.tar.gz
sudo tar xvf openerp-web-6.0.3.tar.gz
Dengan demikian maka struktur direktori akan menjadi:
/opt/OpenObject/OpenERPv6/server/openerp-server-6.0.3/
/opt/OpenObject/OpenERPv6/web/openerp-web-6.0.3/
Langkah 8. Download OpenERP addons
Sebenarnya, ketika kita mendownload OpenERP server, didalamnya sudah terdapat direktory “addons” yang ditempatkan pada direktori bin yaitu:
/opt/OpenObject/OpenERPv6/server/openerp-server-6.0.3/bin/addons
Namun kita tidak akan menggunakan direktori addons yang ada di server itu, sebab kita ingin memiliki kebebasan dalam mengelola addons pada direktori terpisah.
Oleh karena addons dikembangkan oleh komunitas, maka banyak sekali addons dapat ditemukan di internet. Namun demikian addons yang kita temukan di internet belum tentu bisa digunakan. Jadi, berhati-hatilah dalam memilih addons.
Kami sarankan untuk mendownload dan menggunakan addons yang telah disertifikasi oleh perusahaan pengembang OpenERP yaitu OpenERP s.a. Mereka menempatkan addons di repository addons yang berlokasi di https://code.launchpad.net/~openerp.
Di halaman web https://code.launchpad.net/~openerp tersebut, ada beberapa direktori dimana kita bisa mendownload addons. Dalam hal ini kami sarankan untuk mendownload addons dari lokasi lp:openobject-addons/6.0. Untuk mendownloadnya kita harus menggunakan bazzar.
Sebelum kita dapat menggunakan bazzar, kita harus instal dulu bazzar:
Code:
sudo apt-get install bzr
Setelah itu kita download addons yang ada di lp:openobject-addons/6.0 menggunakan perintah:
Code:
cd /opt/OpenObject/OpenERPv6/addons
bzr branch lp:openobject-addons/6.0 lp_openobject-addons
Jika proses download selesai maka akan ada direktori baru yaitu:
/opt/OpenObject/OpenERPv6/addons/lp_openobject-addons
Sekarang kita sudah memiliki semua komponen yang diperlukan, yaitu server, web dan addons. Kini saatnya kita untuk menghubungkan semuanya agar menjadi sebuah system yang lengkap.
Langkah 9. Membuat file konfigurasi Server OpenERP
Ada beberapa cara untuk membuat file konfigurasi OpenERP (openerp-server.conf) yaitu:
* Ambil dari contoh file konfigurasi OpenERP Server dapat ditemukan di lokasi /opt/OpenObject/OpenERPv6/server/doc/.
* Dengan menambahkan parameter –s yang berarti save atau simpan konfigurasi pada saat kita menjalankan OpenERP.
File konfigurasi ini biasanya ditempatkan di direktori /etc/openerp-server.conf. Oleh karena itu jika kita ingin mengambil konfigurasi dari contoh, kita dapat menggunakan perintah:
Code:
sudo cp /opt/OpenObject/OpenERPv6/server/openerp-server-6.0.3/doc/openerp-server.conf /etc
cd /etc
Atau jika menggunakan parameter –s, caranya:
Code:
cd /opt/OpenObject/OpenERPv6/server/openerp-server-6.0.3/bin
python openerp-server.py –sc /tmp/openerp-server.conf
cp /tmp/openerp-server.conf /etc/
cd /etc
Sekarang kita harus edit file tersebut untuk menentukan beberapa parameternya:
Code:
cd /etc
sudo nano openerp-server.conf
Isinya akan seperti ini:
Code:
[options]

addons_path = /opt/OpenObject/OpenERPv6/addons/lp_openobject-addons
root_path = /opt/OpenObject/OpenERPv6/server/openerp-server-6.0.3/bin
admin_passwd = admin
db_name = False
db_password = openerp
db_port = 5433
db_user = openerp
logfile = /var/log/openerp/openerp-server.log
xmlrpc_port = 8069
netrpc_port = 8070
xmlrpcs_port = 8071

ftp_server_host = openerp.domain.tdl
ftp_server_port = 8021

assert_exit_level = error
cache_timeout = 100000
csv_internal_sep = ,
db_host = False
db_maxconn = 64
debug_mode = False
demo = {}
email_from = False
import_partial =
list_db = True
log_level = info
login_message = False
logrotate = True
netrpc = True
netrpc_interface =
pg_path = None
pidfile = None
reportgz = False
secure_cert_file = server.cert
secure_pkey_file = server.pkey
smtp_password = False
smtp_port = 25
smtp_server = localhost
smtp_ssl = False
smtp_user = False
static_http_document_root = None
static_http_enable = False
static_http_url_prefix = None
stop_after_init = False
syslog = true
test_commit = False
test_disable = False
test_file = False
test_report_directory = False
timezone = False
translate_modules = ['all']
without_demo = False
xmlrpc = True
xmlrpc_interface =
xmlrpcs = True
xmlrpcs_interface =
Lalu simpan file tersebut dengan control X dan jawab dengan Y.
Sekarang kita coba untuk jalankan server:
Code:
cd /opt/OpenObject/OpenERPv6/server/openerp-server-6.0.3/bin
python ./openerp-server.py –c /etc/openerp-server.conf
INFO:server:OpenERP version - 6.0.3
INFO:server:addons_path - /opt/OpenObject/OpenERPv6/addons/lp_openobject-addons
INFO:server:database hostname - localhost
INFO:server:database port - 5432
INFO:server:database user - openerp
INFO:server:initialising distributed objects services
DEBUG:psycopg2:installed. Logging using Python logging module
DEBUG:web-services:Registered an exported service: db
DEBUG:web-services:Registered an exported service: common
DEBUG:web-services:Registered an exported service: object
DEBUG:web-services:Registered an exported service: wizard
DEBUG:web-services:Registered an exported service: report
INFO:web-services:starting HTTP service at 0.0.0.0 port 8669
INFO:web-services:starting HTTPS service at 0.0.0.0 port 8671
INFO:web-services:Registered XML-RPC over HTTP
INFO:web-services:starting NET-RPC service at 0.0.0.0 port 8670
INFO:server:Starting 3 services
INFO:server:OpenERP server is running, waiting for connections...
Jika tampilan seperti di atas yang kita lihat, maka berarti server sudah bisa dijalankan tanpa masalah.
Langkah 10. Menginstal boot script
Agar OpenERP server selalu dijalankan ketika mesin baru dihidupkan (setelah booting), kita perlu membuat script yang harus ditempatkan di direktori /etc/init.d/ yang secara otomatis akan menjalankan server OpenERP.
Code:
sudo nano /etc/init.d/openerp-server
Lalu isi file tersebut dengan script berikut:
Code:
#!/bin/sh

### BEGIN INIT INFO
# Provides:             openerp-server
# Required-Start:       $syslog
# Required-Stop:        $syslog
# Should-Start:         $network
# Should-Stop:          $network
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    OpenERP Server
# Description:          OpenERP is a complete ERP and CRM software.
### END INIT INFO

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin/
DAEMON=/usr/local/bin/openerp-server
NAME=openerp-server
DESC=openerp-server

# Specify the user name (Default: openerp).
USER="openerp"

# Specify an alternate config file (Default: /etc/openerp-server.conf).
CONFIGFILE="/etc/openerp-server.conf"

# pidfile
PIDFILE=/var/run/$NAME.pid

# Additional options that are passed to the Daemon.
DAEMON_OPTS="-c $CONFIGFILE"

[ -x $DAEMON ] || exit 0
[ -f $CONFIGFILE ] || exit 0

checkpid() {
[ -f $PIDFILE ] || return 1
pid=`cat $PIDFILE`
[ -d /proc/$pid ] && return 0
return 1
}

if [ -f /lib/lsb/init-functions ] || [ -f /etc/gentoo-release ] ; then

do_start() {
start-stop-daemon --start --quiet --pidfile $PIDFILE \
--chuid $USER  --background --make-pidfile \
--exec $DAEMON -- $DAEMON_OPTS

RETVAL=$?
sleep 5         # wait for few seconds

return $RETVAL
}

do_stop() {
start-stop-daemon --stop --quiet --pidfile $PIDFILE --oknodo

RETVAL=$?
sleep 2         # wait for few seconds
rm -f $PIDFILE  # remove pidfile

return $RETVAL
}

do_restart() {
start-stop-daemon --stop --quiet --pidfile $PIDFILE --oknodo

sleep 2         # wait for few seconds
rm -f $PIDFILE  # remove pidfile

start-stop-daemon --start --quiet --pidfile $PIDFILE \
--chuid $USER --background --make-pidfile \
--exec $DAEMON -- $DAEMON_OPTS

RETVAL=$?
sleep 5         # wait for few seconds

return $RETVAL
}

else

do_start() {
$DAEMON $DAEMON_OPTS > /dev/null 2>&1 &

RETVAL=$?
sleep 5         # wait for few seconds

echo $! > $PIDFILE  # create pidfile

return $RETVAL
}

do_stop() {

pid=`cat $PIDFILE`
kill -15 $pid

RETVAL=$?
sleep 2         # wait for few seconds
rm -f $PIDFILE  # remove pidfile

return $RETVAL
}

do_restart() {

if [ -f $PIDFILE ]; then
do_stop
fi

do_start

return $?
}

fi

start_daemon() {

if [ -f $PIDFILE ]; then
echo "pidfile already exists: $PIDFILE"
exit 1
fi

echo -n "Starting $DESC: "

do_start

checkpid

if [ $? -eq 1 ]; then
rm -f $PIDFILE
echo "failed."
exit 1
fi

echo "done."
}

stop_daemon() {

checkpid

if [ $? -eq 1 ]; then
exit 0
fi

echo -n "Stopping $DESC: "

do_stop

if [ $? -eq 1 ]; then
echo "failed."
exit 1
fi

echo "done."
}

restart_daemon() {

echo -n "Reloading $DESC: "

do_restart

checkpid

if [ $? -eq 1 ]; then
rm -f $PIDFILE
echo "failed."
exit 1
fi

echo "done."
}

status_daemon() {

echo -n "Checking $DESC: "

checkpid

if [ $? -eq 1 ]; then
echo "stopped."
else
echo "running."
fi
}

case "$1" in
start) start_daemon ;;
stop) stop_daemon ;;
restart|force-reload) restart_daemon ;;
status) status_daemon ;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload|status}" >&2
exit 1
;;
esac

exit 0

# vim: sts=4 st=4 et
Jika script ini sudah dibuat, kita harus pastikan agar script ini dapat dijalankan oleh user root.
Code:
sudo chmod 755 /etc/init.d/openerp-server
sudo chown root: /etc/init.d/openerp-server
Langkah 11. Membuat script daemon
Didalam script di atas, kita melihat ada baris perintah:
Code:
DAEMON=/usr/local/bin/openerp-server
Artinya, kita juga harus membuat script daemon tersebut:
Code:
cd /usr/local/bin
sudo nano openerp-server
Lalu isi dengan script berikut:
Code:
#!/bin/sh
cd /opt/OpenObject/OpenERPv6/server/openerp-server-6.0.3/bin
exec /usr/bin/python ./openerp-server.py $@
Langkah 12. Membuat file log
Di dalam file konfigurasi (/etc/openerp-server.conf), terdapat parameter:
Code:
logfile = /var/log/openerp/openerp-server.log
Artinya, semua aktifitas server akan direkam di file log tersebut. Kita harus membuat file tersebut dan memastikan agar user openerp dapat mengaksesnya:
Code:
sudo mkdir /var/log/openerp
sudo touch /var/log/openerp-server.log
sudo chown –R openerp:root /var/log/openerp
Langkah 13. Uji kembali server
Untuk menjalankan server, ketik perintah berikut:
Code:
sudo /etc/init.d/openerp-server start
Jika server berjalan dengan baik, maka seharusnya kita dapat melihat aktivitasnya pada file log..
Code:
less /var/log/openerp/openerp-server.log
Jika ada masalah dengan setingan server, maka kita dapat melihatnya di log tersebut. Jika lancar, maka kita bisa mencobanya dengan mengakses dari OpenERP Client yang ada di PC remote.
Jika kita sekarang memulai menjalankan program GTK Client yang diarahkan ke server yang baru saja diinstall dan melihat pesan seperti di bawah ini, maka itu artinya bahwa server sudah jalan.
Ini berarti bahwa server menerima koneksi namun server belum memiliki database.
Sekarang kita juga harus coba apakah server OpenERP bisa dihentikan:
Code:
sudo /etc/init.d/openerp-server stop
Pastikan apakah server benar-benar berhenti. Kita dapat memeriksanya dengan mencoba menghubungkan dari GTK Client ke server, jika masih konek, berarti script daemon yang ada di /etc/init.d/openerp-server tidak berjalan dengan sempurna.
Langkah 14. Membuat Server OpenERP startup dan shutdown secara otomatis
Jika semua langkah diatas berhasil dijalankan, maka langkah terakhir yang masih harus dikerjakan adalah membuat agar server OpenERP dapat secara otomatis dijalankan oleh server Ubuntu pada saat server Ubuntu pertama kali booting.
Gunakan perintah ini:
Code:
sudo update-rc.d openerp-server defaults
Jika perintah di atas sudah dijalankan, silakan coba untuk merestart server dan setelah server hidup kembali, cek apakah server OpenERP sudah jalan lagi apa belum.
Kita juga bisa memeriksa apakah server OpenERP sudah jalan atau belum dengan perintah ini:
Code:
ps aux | grep openerp
Dan jika server OpenERP sudah jalan, maka seharusnya kita bisa melihat pesan seperti ini:
Code:
openerp 708 3.8 5.8 181716 29668 ? Sl 21:05 0:00 python /opt/OpenObject/OpenERPv6/server/openerp-server-6.0.3/bin/openerp-server.py -c /etc/openerp-server.conf
Yang artinya bahwa server sudah jalan dengan user ‘openerp’ dan PID nomor 708.
Langkah 15. Mengkonfigurasi dan mengotomatiskan Web Client
Meskipun kita menyebutnya Web Client, sebenarnya program OpenERP Web Client adalah sebuah program aplikasi client bagi OpenERP server yang sekaligus menjadi Web Server bagi Web Browser yang digunakan oleh Pengguna OpenERP.
Sebelum kita dapat menjalankan OpenERP web client, kita harus membuat file konfigurasi (openerp-web.conf) yang akan ditempatkan di direktori /etc.
Code:
sudo nano /etc/openerp-web.cfg
Lalu isi file tersebut dengan script seperti ini:
Code:
[global]

server.socket_port = 8986
openerp.server.port = '8670'
log.access_file = "/var/log/openerp/web-access.log"
log.error_file = "/var/log/openerp/web-error.log"

server.socket_host = "0.0.0.0"
server.thread_pool = 10
tools.sessions.on = True
tools.sessions.persistent = False
server.profile_on = True
server.profile_dir = "profile"
server.webpath = ""
tools.proxy.on = False
tools.proxy.base = 'http://mydomain.com'
log.access_level = "INFO"
log.error_level = "INFO"
tools.nestedvars.on = True
tools.csrf.on = False
openerp.server.host = 'localhost'
openerp.server.protocol = 'socket'
openerp.server.timeout = 450

[openerp-web]
# filter dblists based on url pattern?
# NONE: No Filter
# EXACT: Exact Hostname
# UNDERSCORE: Hostname_
# BOTH: Exact Hostname or Hostname_
dblist.filter = 'NONE'
dbbutton.visible = True
company.url =
Lalu simpan dan atur seperti ini:
Code:
sudo chown openerp:root /etc/openerp-web.cfg
sudo chmod 640 /etc/openerp-web.cfg
Untuk membuat file log, gunakan cara yang sama seperti membuat file log untuk OpenERP server yaitu:
Code:
sudo touch /var/log/openerp/web-access.log
sudo touch /var/log/openerp/web-error.log
sudo chown –R openerp:root /var/log/openerp/web-access.log
sudo chown –R openerp:root /var/log/openerp/web-error.log
Kita juga harus membuat web client boot script. yang ditempatkan di direktori /etc/init.d/, dengan nama openerp-web dan buat pemiliknya adalah user root dan dapat diakses oleh user root.
Code:
cd /etc/init.d
sudo nano openerp-web
Lalu isi file tersebut dengan script seperti ini:
Code:
#!/bin/sh

### BEGIN INIT INFO
# Provides:             openerp-web
# Required-Start:       $syslog
# Required-Stop:        $syslog
# Should-Start:         $network
# Should-Stop:          $network
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    OpenERP Web - the Web Client of the OpenERP
# Description:          OpenERP is a complete ERP and CRM software.
### END INIT INFO

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
DAEMON=/usr/local/bin/openerp-web
NAME=openerp-web
DESC=openerp-web

# Specify the user name (Default: openerp).
USER="openerp"

# Specify an alternate config file (Default: /etc/openerp-web.cfg).
CONFIGFILE="/etc/openerp-web.cfg"

# pidfile
PIDFILE=/var/run/$NAME.pid

# Additional options that are passed to the Daemon.
DAEMON_OPTS="-c $CONFIGFILE"

[ -x $DAEMON ] || exit 0
[ -f $CONFIGFILE ] || exit 0

checkpid() {
[ -f $PIDFILE ] || return 1
pid=`cat $PIDFILE`
[ -d /proc/$pid ] && return 0
return 1
}

if [ -f /lib/lsb/init-functions ] || [ -f /etc/gentoo-release ] ; then

do_start() {
start-stop-daemon --start --quiet --pidfile $PIDFILE \
--chuid $USER  --background --make-pidfile \
--exec $DAEMON -- $DAEMON_OPTS

RETVAL=$?
sleep 5         # wait for few seconds

return $RETVAL
}

do_stop() {
start-stop-daemon --stop --quiet --pidfile $PIDFILE --oknodo

RETVAL=$?
sleep 2         # wait for few seconds
rm -f $PIDFILE  # remove pidfile

return $RETVAL
}

do_restart() {
start-stop-daemon --stop --quiet --pidfile $PIDFILE --oknodo

sleep 2         # wait for few seconds
rm -f $PIDFILE  # remove pidfile

start-stop-daemon --start --quiet --pidfile $PIDFILE \
--chuid $USER --background --make-pidfile \
--exec $DAEMON -- $DAEMON_OPTS

RETVAL=$?
sleep 5         # wait for few seconds

return $RETVAL
}

else

do_start() {
$DAEMON $DAEMON_OPTS > /dev/null 2>&1 &

RETVAL=$?
sleep 5         # wait for few seconds

echo $! > $PIDFILE  # create pidfile

return $RETVAL
}

do_stop() {

pid=`cat $PIDFILE`
kill -15 $pid

RETVAL=$?
sleep 2         # wait for few seconds
rm -f $PIDFILE  # remove pidfile

return $RETVAL
}

do_restart() {

if [ -f $PIDFILE ]; then
do_stop
fi

do_start

return $?
}

fi

start_daemon() {

if [ -f $PIDFILE ]; then
echo "pidfile already exists: $PIDFILE"
exit 1
fi

echo -n "Starting $DESC: "

do_start

checkpid

if [ $? -eq 1 ]; then
rm -f $PIDFILE
echo "failed."
exit 1
fi

echo "done."
}

stop_daemon() {

checkpid

if [ $? -eq 1 ]; then
exit 0
fi

echo -n "Stopping $DESC: "

do_stop

if [ $? -eq 1 ]; then
echo "failed."
exit 1
fi

echo "done."
}

restart_daemon() {

echo -n "Reloading $DESC: "

do_restart

checkpid

if [ $? -eq 1 ]; then
rm -f $PIDFILE
echo "failed."
exit 1
fi

echo "done."
}

status_daemon() {

echo -n "Checking $DESC: "

checkpid

if [ $? -eq 1 ]; then
echo "stopped."
else
echo "running."
fi
}

case "$1" in
start) start_daemon ;;
stop) stop_daemon ;;
restart|force-reload) restart_daemon ;;
status) status_daemon ;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload|status}" >&2
exit 1
;;
esac

exit 0

# vim: sts=4 st=4 et
Lalu:
Code:
sudo chmod 755 /etc/init.d/openerp-web
sudo chown root: /etc/init.d/openerp-web
Seperti halnya OpenERP server, kita juga harus membuat script daemon seperti ini:
Code:
cd /usr/local/bin
sudo nano openerp-web
Lalu isi dengan script berikut:
Code:
#!/bin/sh
cd /opt/OpenObject/OpenERPv6/web/openerp-web-6.0.3/
exec /usr/bin/python ./openerp-web.py -c /etc/openerp-web.cfg
Sekarang seharusnya kita sudah bisa menjalankan OpenERP web dengan menjalankan perintah berikut:
Code:
sudo /etc/init.d/openerp-web start
Periksa apakah program OpenERP web sudah jalan apa belum.
Code:
ps aux | grep openerp-web
Jika kita melihat seperti ini:
Code:
openerp    1703  1.2  0.5 283044 11456 ?        Sl   May20 256:33 /usr/bin/python ./openerp-web.py -c /etc/openerp-web.cfg
Maka berarti OpenERP web client sudah jalan.
Anda bisa mencobanya dengan membuka website pada port seperti ini:
http://my-ip-or-domain:8080
Pastikan web client bisa dihentikan:
Code:
sudo /etc/init.d/openerp-web stop
Lalu buat agar OpenERP web client dapat jalan secara otomatis.
Code:
sudo update-rc.d openerp-web defaults
Sekarang kita bisa mencobanya dengan merestart server dan periksa apakah OpenERP web dijalankan secara otomatis.
Bagian II. Mengkonfigurasi akses WebDAV/CalDAV
Kita dapat menggunakan webserver Apache yang akan bertindak sebagai proxy dan melakukan terminasi SSL untuk akses web klien dan untuk akses WebDAV / CalDAV. Begitu juga dengan GTK klien akan berjalan pada protokol XMLRPC yang dienkripsi langsung ke Server OpenERP. Apache adalah webserver yang paling banyak digunakan di dunia dan dengan mudah kita dapat mencari dokumentasinya.
Langkah 1. Menginstal Apache dan modul-modul yang diperlukan
Pertama kita instal dulu server apache dengan perintah:
Code
:sudo apt-get install apache2
Lalu kasih tahu apache, bahwa kita juga akan menginstal beberapa modul yaitu:
Code:
* mod_ssl,
* mod_proxy,
* mod_proxy_http,
* mod_headers
* mod_rewrite [optional]
Yang mana modul-modul tersebut tidak akan terinstal hingga kita menginstalnya.
Code:
sudo a2enmod ssl proxy_http headers rewrite
Selanjutnya, kita harus membuat sertifikat dan key SSL .
Langkah 2. Membuat sertifikat dan key
Kami biasanya membuat sertifikat ini di direktori sementara yang kemudian memindahkannya ketika sudah jadi:
Code:
cd
mkdir temp
cd temp
Lalu buat key dulu, kita akan diminta untuk mengisi password atau passphrase dan konfirmasinya:
Code:
openssl genrsa -des3 -out server.pkey 1024
Agar komputer tidak terus-terusan mita password atau passphrase, kita hapus passphrase tersebut dengan cara seperti ini:
Code:
openssl rsa -in server.pkey -out server.key
Selanjutnya kita perlu penyimpan data yang akan terlihat dalam sertifikat:
Code:
openssl req -new -key server.key -out server.csr
Perintah ini akan menampilkan beberapa pertanyaan yang harus kita jawab.
Kita akan diminta untuk memasukkan informasi yang akan dimasukkan ke dalam sertifikat. Sebaiknya kita lengkapi semua pertanyaan tersebut. Tapi kita juga bisa mengosongkannya dengan menjawabnya dengan titik ‘.’.
Code:
Country Name (2 letter code) [ID]: ID
State or Province Name (full name) [Some-State]: DKI Jakarta
Locality Name (eg, city) []: Jakarta
Organization Name (eg, company) [Internet Widgits Pty Ltd]: PT Alam Dewata Utama
Organizational Unit Name (eg, section) []: ADSOFT – OpenERP Partner
Common Name (eg, YOUR name) []: Alle Aldine
Email Address []: alle@openerp.co.id

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Dan akhirnya kita self-sign sertifikat tersebut.
Code:
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Kita hanya perlu dua file saja yaitu server.crt dan server.key. Namun sebelum kedua file itu dapat kita gunakan, kita harus ganti dulu kepemilikannya.
Code:
sudo chown openerp:root server.crt server.key
sudo chmod 640 server.crt server.key
Lalu pindahkan kedua file tersebut ke direktori /etc/ssl/openerp:
Code:
sudo mkdir /etc/ssl/openerp
sudo chown openerp:root /etc/ssl/openerp
sudo chmod 710 /etc/ssl/openerp
sudo mv server.crt server.key /etc/ssl/openerp/
File key dan sertifikat sudah disimpan di tempat yang aman. Sekarang kita harus beri tahu apache, di mana lokasi kedua file tersebut. Untuk melakukannya, ikuti langkah berikut.
Langkah 3. Membuat file konfigurasi Apache
Kita buat dulu file konfigurasi Virtual Host untuk openerp.
Code:
sudo nano /etc/apache2/sites-available/openerp-ssl
Masukkan script berikut:
Code:
<VirtualHost *:443>

SSLEngine on
SSLCertificateFile /etc/ssl/openerp/server.crt
SSLCertificateKeyFile /etc/ssl/openerp/server.key

ProxyRequests Off

<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ProxyVia On

ProxyPass /webdav/ http://127.0.0.1:8069/webdav/
<Location /webdav/ >
ProxyPassReverse /webdav/
<Limit OPTIONS PROPFIND GET REPORT MKACTIVITY PROPPATCH PUT MOVE COPY DELETE LOCK UNLOCK>
Order Deny,Allow
Allow from all
Satisfy Any
</Limit>
</Location>

ProxyPass / http://127.0.0.1:8080/
<location / >
ProxyPassReverse /
</location>

RequestHeader set "X-Forwarded-Proto" "https"

# Fix IE problem (httpapache proxy dav error 408/409)
SetEnv proxy-nokeepalive 1

</VirtualHost>
Seperti kita lihat pada script di atas, bahwa ada dua konfigurasi Proxy, dimana yang satu untuk /webdav/ dan yang satunya untuk /. Kalau kita tidak bermaksud untuk menggunakan fasilitas WebDAV dan CalDAV, kita juga dapat membuang bagian itu.
Namun pada dasarnya, kita ingin menyampaikan kepada Apache bahwa akses WebDAV ke server OpenERP harus melalui port XMLRPC yaitu 8069, sedangkan untuk akses ke OpenERP Web harus melalui port 8080. Pemberian tanda / dan /webdav/ dimaksudkan agar jika penulisan address tanpa /webdav/ tidak akan masuk ke WebDAV.
Lalu kita dapat mengaktifkan konfigurasi baru tersebut.
Code:
sudo a2ensite openerp-ssl
Sebagai tambahan, kita juga dapat menggunakan mod_rewrite untuk me-redirect jalur normal (non-encrypted) ke jalur yang dienkripsi yaitu SSL port (443).
Untuk melakukannya, kita harus menambahkan beberapa baris berikut (ditulis diluar blok konfigurasi <directory>) pada file /etc/apache2/sites-available/default
Code:
RewriteEngine on
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
Langkah 4. Merubah file konfigurasi OpenERP server dan web-client
Langkah berikut ini dimaksudkan untuk mengkonfigurasi ulang OpenERP server dan Web client sehingga akses ke OpenERP melalui jalur normal (jalur yang tidak dienkripsi) tidak dapat dilakukan.
Di dalam file konfigurasi /etc/openerp-server.conf, kedua layanan tanpa enkripsi hanya akan dijalankan secara lokal (localhost) saja, sehingga koneksi hanya dapat dilakukan jika melalui Apache saja. Kita juga memberitahu kepada layanan XMLRPC-SSL, dimana mencari file key dan file certificate yang diperlukan.
Jalankan perintah ini:
Code:
sudo nano /etc/openerp-server.conf
Lalu edit menjadi seperti ini:
Code:
xmlrpc = True
xmlrpc_interface = 127.0.0.1
xmlrpc_port = 8069

netrpc = True
netrpc_interface = 127.0.0.1
netrpc_port = 8070

xmlrpcs = True
xmlrpcs_interface =
xmlrpcs_port = 8071
secure_pkey_file = /etc/ssl/openerp/server.key
secure_cert_file = /etc/ssl/openerp/server.crt
Jika diinginkan untuk mengatur akses WebDAV/CalDAV, tambahkan pula beberapa baris berikut di bagian bawah file konfigurasi.
Code:
[webdav]
enable = True
vdir = webdav
Kemudian lakukan juga perubahan pada file konfigurasi web yaitu /etc/openerp-web.conf agar hanya menerima koneksi dari lokal saja:
Code:
sudo nano /etc/openerp-web.conf
Lalu edit:
Code:
# If your proxy does not add the X-Forwarded-Host header, set
# the following to the *public* host url.
tools.proxy.base = ‘https://your-ip-or-domain’
# Set to false to disable CSRF checks
tools.csrf.on = False
Langkah 5. Coba jalankan server
Restart semua layanan untuk mengambil perubahan konfigurasi.
Code:
sudo service openerp-server restart
sudo service openerp-web restart
sudo service apache2 restart
Seharusnya kita mejadi tidak bisa terhubung ke OpenERP jika menggunakan web browser pada port 8080 juga ketika menggunakan GTK client, kita seharusnya tidak dapat mengaksesnya jika menggunakan layanan XMLRPC port 8069 maupun layanan NetRPC pada port 8070.
Jadi untuk mengakses web, kita harus mengaksesnya menggunakan protokol aman https://ip-atau-domaindan jika akses dilakukan dari GTK client, kita harus menggunakan port 8071 dan harus memilih protokol XMLRPC (Secure).
Untuk mengakses CalDAV dapat dilakukan dengan cara seperti ini:
https://your-ip-or-domain/webdav/DB_NAM … ENDAR_NAME
Mudah-mudahan tutorial ini bermanfaat.

Tidak ada komentar:

Posting Komentar