[RPi - Part 2] Install Odoo on Raspberry Pi
Install Odoo on Raspberry Pi
We have a small coffee shop and clothes shop in Ho Chi Minh City, we choose Odoo + RPi because it's very convenient for us
Why RPI ?
It's cheaper than another system
Do not take a lot resources
Can use in mini shop, no need network connection
Just need 2 RPi devices:
RPI-device-1: Installing Odoo
RPI-device-2: Install PosBox images
Here is our “How to” guide to install on ubuntu (RPi).
Linux(Ubuntu, Debian ... ) system required.
SSH to your pi
ssh pi@192.168.1.100
Step 1. Create the Odoo user that will own and run the application
sudo adduser --system --home=/opt/odoo --group odoo
This is a "system" user. It is there to own and run the application, it isn’t supposed to be a person type user with a login etc.
I"ve specified a "home" of /opt/odoo, this is where the OpenERP server code will reside and is created automatically by the command above.
Note: How to run the Odoo server as the odoo system user from the command line if it has no shell. bash
sudo su - odoo -s /bin/bash
Step 2. Install and configure the database server, PostgreSQL
sudo apt-get install postgresql
Then configure the Odoo user on postgres:
First change to the postgres user so we have the necessary privileges to configure the database.
sudo su - postgres
Now create a new database user. This is so Odoo has access rights to connect to PostgreSQL and to create and drop databases. Remember what your choice of password is here; you will need it later on:
createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo
Exit from the postgres user account:
exit
Step 3. Install the Odoo server
Install Git.
sudo apt-get install git
Switch to the Odoo user:
sudo su - odoo -s /bin/bash
Grab a copy of the most current Odoo 8 branch (Note the “.” at the end of this command!):
cd /opt/odoo git clone https://www.github.com/odoo/odoo --depth 1 --branch 8.0 --single-branch . exit # Exit odoo user
Step 4. Install the necessary Python libraries for the server
There are 2 ways to install the libraries:
Using this command
sudo apt-get install python-cups python-dateutil python-decorator python-docutils \python-feedparser python-gdata python-geoip python-gevent python-imaging python-jinja2 \python-ldap python-libxslt1 python-lxml python-mako python-mock python-openid \python-passlib python-psutil python-psycopg2 python-pybabel python-pychart python-pydot \python-pyparsing python-pypdf python-reportlab python-requests python-simplejson \python-tz python-unicodecsv python-unittest2 python-vatnumber python-vobject \python-werkzeug python-xlwt python-yaml wkhtmltopdf
Or
cd /opt/odoosudo pip install -r requirements.txt
Step 5. Configuring the OpenERP application
The default configuration file for the server (/opt/odoo/debian/openerp-server.conf) is actually very minimal and will, with only a small change work fine so we’ll copy that file to where we need it and change it’s ownership and permissions:
sudo cp /opt/odoo/debian/openerp-server.conf /etc/odoo-server.confsudo chown odoo: /etc/odoo-server.confsudo chmod 640 /etc/odoo-server.conf
The above commands make the file owned and writeable only by the odoo user and group and only readable by odoo and root.
To allow the odoo server to run initially, you should only need to change two lines in this file. Open file via nano or vim or your favourite text editor here
I'm using nano:
sudo nano /etc/odoo-server.conf
And change:
db_password = False to the same password you used back in step 2.
Then modify the line addons_path = /usr/lib/python2.7/dist-packages/openerp/addons so that it reads addons_path = /opt/odoo/addons instead
logfile = /var/log/odoo/odoo-server.log #the path of log file
Once the configuration file is edited and saved, you can start the server just to check if it actually runs.
sudo su - odoo -s /bin/bash/opt/odoo/openerp-server
If you end up with a few lines eventually saying OpenERP (Yes. The log still says OpenERP and not Odoo) is running and waiting for connections then you are all set.
If there are errors, you’ll need to go back and find out where the problem is.
Otherwise simply enter CTL+C to stop the server and then exit to leave the openerp user account and go back to your own shell.
Step 6. Installing the boot script
For the final step we need to install a script which will be used to start-up and shut down the server automatically and also run the application as the correct user. There is a script you can use in /opt/odoo/debian/init but this will need a few small modifications to work with the system installed the way I have described above. Here’s a link to the one I’ve already modified for Odoo version 8.
TD;DR:
sudo cp /opt/odoo/debian/init /etc/init.d/odoo-server
Similar to the configuration file, you need to either copy it or paste the contents of this script to a file in /etc/init.d/ and call it odoo-server. Once it is in the right place you will need to make it executable and owned by root:
sudo chmod 755 /etc/init.d/odoo-serversudo chown root: /etc/init.d/odoo-server
In the configuration file there’s an entry for the server’s log file. We need to create that directory first so that the server has somewhere to log to and also we must make it writeable by the openerp user:
sudo mkdir /var/log/odoosudo chown odoo:root /var/log/odoo
Step 7. Testing the server
To start the Odoo server type:
sudo /etc/init.d/odoo-server start
You should now be able to view the logfile and see that the server has started.
less /var/log/odoo/odoo-server.log
If the log file looks OK, now point your web browser at the domain or IP address of your Odoo server (or localhost if you are on the same machine) and use port 8069. The url will look something like this:
http://RPI_IP:8069
What you should see is a screen like this one (it is the Database Management Screen because you have no Odoo databases yet):
Default plain password: /etc/odoo-server.conf
After test, Now it’s time to make sure the server stops properly too:
sudo /etc/init.d/odoo-server stop
Check the log file again to make sure it has stopped and/or look at your server’s process list.
Step 8. Automating Odoo startup and shutdown
If everything above seems to be working OK, the final step is make the script start and stop automatically with the Ubuntu Server. To do this type:
sudo update-rc.d odoo-server defaults
You can now try rebooting you server if you like. Odoo should be running by the time you log back in.
Enjoy !
Next post: How to load Odoo Posbox image on RPI