Getting started with OpenERP development

Installation from sources

The running example of this section is based on an Ubuntu environment. You may have to adapt the steps according to your system. Once your working environment is ready, prepare a working directory that will contain the sources. For a source base directory, type:

mkdir source;cd source

OpenERP provides a setup script that automatizes the tasks of creating a shared repository and getting the source code. Get the setup script of OpenERP by typing:

bzr cat -d lp:~openerp-dev/openerp-tools/trunk setup.sh | sh

This will create the following two files in your source directory:

-rw-rw-r--  1 openerp openerp 5465 2012-04-17 11:05 Makefile
-rw-rw-r--  1 openerp openerp 2902 2012-04-17 11:05 Makefile_helper.py

If you want some help about the available options, please type:

make help

Next step is to initialize the shared repository and download the sources. Get the current trunk version of OpenERP by typing:

make init-trunk

This will create the following structure inside your source directory, and fetch the latest source code from trunk:

drwxrwxr-x  3 openerp openerp 4096 2012-04-17 11:10 addons
drwxrwxr-x  3 openerp openerp 4096 2012-04-17 11:10 misc
drwxrwxr-x  3 openerp openerp 4096 2012-04-17 11:10 server
drwxrwxr-x  3 openerp openerp 4096 2012-04-17 11:10 web

Some dependencies are necessary to use OpenERP. Depending on your environment, you might have to install the following packages:

sudo apt-get install graphviz ghostscript postgresql-client \
          python-dateutil python-feedparser python-gdata \
          python-ldap python-libxslt1 python-lxml python-mako \
          python-openid python-psycopg2 python-pybabel python-pychart \
          python-pydot python-pyparsing python-reportlab python-simplejson \
          python-tz python-vatnumber python-vobject python-webdav \
          python-werkzeug python-xlwt python-yaml python-imaging \
          python-matplotlib

Next step is to initialize the database. This will create a new openerp role:

make db-setup

Finally, launch the OpenERP server:

make server

Testing your installation can be done on http://localhost:8069/. You should see the OpenERP main login page.

Command line options

Using the command

./openerp-server --help

General Options

--version                           show program version number and exit
-h, --help                          show this help message and exit
-c CONFIG, --config=CONFIG          specify alternate config file
-s, --save                          save configuration to ~/.terp_serverrc
-v, --verbose                       enable debugging
--pidfile=PIDFILE                   file where the server pid will be stored
--logfile=LOGFILE                   file where the server log will be stored
-n INTERFACE, --interface=INTERFACE specify the TCP IP address
-p PORT, --port=PORT                specify the TCP port
--no-xmlrpc                         disable xmlrpc
-i INIT, --init=INIT                init a module (use "all" for all modules)
--without-demo=WITHOUT_DEMO         load demo data for a module (use "all" for all modules)
-u UPDATE, --update=UPDATE          update a module (use "all" for all modules)
--stop-after-init                   stop the server after it initializes
--debug                             enable debug mode
-S, --secure                        launch server over https instead of http
--smtp=SMTP_SERVER                  specify the SMTP server for sending mail

Internationalization options

Use these options to translate OpenERP to another language.See i18n section of the user manual. Option ‘-l’ is mandatory.:

-l LANGUAGE, --language=LANGUAGE
                     specify the language of the translation file. Use it
                     with --i18n-export and --i18n-import
--i18n-export=TRANSLATE_OUT
                     export all sentences to be translated to a CSV file
                     and exit
--i18n-import=TRANSLATE_IN
                     import a CSV file with translations and exit
--modules=TRANSLATE_MODULES
                     specify modules to export. Use in combination with
                     --i18n-export

Options from previous versions

Some options were removed in OpenERP version 6. For example, price_accuracy is now configured through the decimal_accuracy screen.

Configuration

  • one for the client: ~/.openerprc
  • one for the server: ~/.openerp_serverrc

If they are not found, the server and the client will start with a default configuration. Those files follow the convention used by python’s ConfigParser module. Please note that lines beginning with “#” or ”;” are comments. The client configuration file is automatically generated upon the first start. The sezrver configuration file can automatically be created using the command

./openerp-server -s or ./openerp-server --save

You can specify alternate configuration files with

-c CONFIG, --config=CONFIG specify alternate config file

Configure addons locations

By default, the only directory of addons known by the server is server/bin/addons. It is possible to add new addons by

  • copying them in server/bin/addons, or creating a symbolic link to each of them in this directory, or
  • specifying another directory containing addons to the server. The later can be accomplished either by running the server with the --addons-path= option, or by configuring this option in the openerp_serverrc file, automatically generated under Linux in your home directory by the server when executed with the --save option. You can provide several addons to the addons_path = option, separating them using commas.

Start-up script

New in version 6.1.

To run the OpenERP server, the conventional approach is to use the openerp-server script. It loads the openerp library, sets a few configuration variables corresponding to command-line arguments, and starts to listen to incoming connections from clients.

Depending on your deployment needs, you can write such a start-up script very easily. We also recommend you take a look at an alternative tool called openerp-command that can, among other things, launch the server.

Yet another alternative is to use a WSGI-compatible HTTP server and let it call into one of the WSGI entry points of the server.