You are here

New Community Built Appliance: TurnKey Odoo

I am excited to announce TurnKey's latest addition; Odoo (formerly OpenERP) appliance. Odoo is a comprehensive ERP (Enterprise Resource Management) system built with Python. Get it now via the Odoo appliance page.

Not only is Odoo a cool app to add to the library; but it is a major TurnKey milestone. It is the first truly community built appliance. Don't get me wrong, many appliances have been contributed by TurnKey community members but never before has a team of TurnKey Community members come together like this.

The Odoo appliance adds a whole new meaning to "Community built". The original "seed" Odoo appliance was developed by Carlos (@cvercelino | TKL). Landis Arnold (@l-arnold | TKL) - one of our longest serving TurnKey enthusiasts - adopted the project and made it his own. Then Ken Robinson (@DocCyblade | TKL); an invaluable contributor to the development of v14.0 (and before) joined the fray. Landis and Ken made a formidable power dev combo! Watching them in action I suspect that the Odoo appliance might near be bullet-proof! :)

Prior to the work on Odoo these two had never directly spoken (with the exception of a passing comment or two on the forums). But with the quality of their build you'd think that they had worked together as a well oiled unit for years!

I invited them both to provide some insight into the process for this blog post and they were both keen. Unfortunately Ken currently has a work project on a very tight timeframe. So here's Landis' perspective on the process of building the Odoo appliance:

Turnkey Odoo Genesis

Its a long story so rather than recounting it all, let me simply say, its been a great experience. I have been running various home brew TKL Odoo (& OpenERP) setups for 3 years or so and the v14.0 TurnKey release seemed the time to pull it together into a "proper" and official TurnKey appliance.

I have done a few software projects for myself over the years and am an active TurnKey "user". TurnKey Linux app development was a very new tack for me. Knowing and understanding what goes on under the hood; both in a running build, and the process to get it there was the biggest challenge. In a big measure, the TKL build process is very much akin to making a layer cake.

I had installed Odoo/OpenERP on top of the TKL Postgresql system a number of times in the past. By default Odoo v8 is "self hosting" so I wanted to move it into the TurnKey LAPP system. One of the main reasons was to support proper SSL implementation. I also wanted the App to be able to efficiently work with several Community Based (rather than corporate Odoo only) apps ie: OCA Magento Connector.

I started out with the with the patient help of Carlos V. with some guidance from Jeremy. Having gotten running systems, I then focused on security settings and getting Odoo and TKL to play nice together. Looking back on this it was a very painful series of “pleas for help” on the Turnkey Tracker. I had noticed the remarkable skills of Ken Robinson who worked through the recent conversion over to the Adminer Database manager for most of the TKL apps that include MySQL/PostgreSQL. Needless to say, I was very happy when he volunteered to lend a hand on Odoo.

It was a huge hand Ken brought. Ken is very diligent about Git Workflow. Commits. Tests. MileStones. Documentation. He is also very patient. I was doing most of my development directly in ONE BRANCH using the web interface in GitHub. He fixed several of my faux pas. We developed a “Good Cop – Bad Cop“ sort of approach. Ken started doing most of the coding while I became the “test and break – how many sides can I hit this from with a hammer” role. I had the experience with Odoo. I also suspect that I had the more extensive experience with TKL as a User. Ken worked in the Shell. I worked in the GitHub Web (and later GitHub Desktop). I learned from Ken and he learned some from Me.

Jeremy helped us in multiple directions [and was likely a PITA too :) - J]. In the end we moved our “Services”, “Log” and “Configuration Files” into nice arrangement (following Debian convention) and out of the Odoo Directory structure. We got the systems able to be reliably started and stopped using both SysVInit and SystemD. We also put in higher security than default Odoo comes with too. We found at least one BUG in the TKL backpane and helped to fix it.

At last count our two joined Git Repositories include 537 Commits from where we started. I have done Many ISO builds in my testing. We are prepped to make some “Module” and “Memory” applications in our next round, but right now we are taking a break. Work and Life has its call.

By the time this is posted it should mean that the TKL Odoo App is fully available via the TKL Library [See the Odoo appliance page - TKL Hub and AWS builds coming very soon - J]. This really points to the “bigger layer cake” of TKL. So much goes into this system it is quite hard to fathom. Package Management. ISO, KVM, Docker, AWS, Forums, GitFlow, TKLBAM, and deep comprehension. TKL is a small team. It is an open system poised to become an even “more open” system. Take a look at the map of TKL Installs and you can see the impact being made.

Comments

Hi, I am thrilled to test the appliance (through the docker image) but unfortunately, I am getting an "Access Denied"-Error on the initial /web/database/manager#action=database_manager view. Where should I report this?

We were hoping to have it live on the hub last week. However due to a bug in the fence (the simple http server we use for the fence was only handling one connection at a time which causes it to intermittently lock up). This is only an issue for new users on firstboot but still we'd like to resolve it. So we've been working on a fix for that. We'll then rebuild all the AMIs. We were planning to add Odoo at the same time as we rebuild everything. However as often seems to be the case the timeframe has blown out.

I am hoping that the new AMIs will be live next week, but I can't promise.

Also out of interest is there a reason why you disable logging? Or am I misunderstanding something?

Regarding the logging, I think the README.rst text is a bit confusing. I do not disable the logging, what I do is disable the "file logging". If you manually start the Odoo server using the scond config file (/etc/odoo/openerp-server-man.conf), the loggings wil be sent to the terminal instead of a "log file". I use this during the development of new modules for Oddo. The steps are those:

4. Do whatever you need with the Odoo Server and all the loggings will be sent to the shell terminal. When finished stop the server by simply pressing Control^C at the terminal and use the folowing commands to re-start the Odoo Server the normal way:

I don't know much about Odoo and haven't used v9 at all, so I can't speak from a totally informed position.

However I know that the guys looked at v9 originally and intentionally decided to build Odoo v8 instead. I don't recall the exact reasons but I do recall opinion that v8 was more community orientated and didn't push you so much towards paying. As v8 still receives updates (and they did all the hard the work) we were super pleased to add it to the library whether it was the latest version or not... Although perhaps we should name it "Odoo8" to make it clear?

In my opinion, the Odoo Appliance should stay as it is. At least for a while. The name does not need to be changed, as it is not so difficult to migrate the appliance to another Odoo version. Just a note stating the branch in use (currently “https://github.com/odoo/odoo.git --branch 8.0”) should be enough.

However it is installed from their GitHub repo. So in theory you should be able to checkout the v9 branch. I'm guessing that there may need to be changes in the conf file (I think /etc/odoo/) and perhaps some DB updates too? I'm only guessing though really. I would expect that upstream have instructions on how to upgrade from v8 to v9. Keep in mind that TurnKey v14.x is Debian Jessie under the hood and hopefully it should be fairly straight forward.

If you have any success it'd be great if you can share your info as it may help out others.

Simply, it is not possible to upgrade from odoo v8 to v9 without paying a fee. The odoo developers charge a std fee to do this. they have to earn the keep. There is an open source project by the OCA to do upgrades but it is a massive piece of work and far as I know currently is not complete.

Also as much as I love odoo in many ways, it should be made clear that v9 introduced an Enterprize version with a number of features no longer in the community edition. The community edition still has an immense amount of features itself but even if you stick with this you will have to pay to upgrade to v10.

Its worth saying that ERPNext is coming up the rails and although a smaller project it still sticks to its original premiose of being completely open source and proividing free help by the devs too. It doesnt quite have the feature set or completeness of odoo, but is coming on really well.

i tried both odoo and erpnext, i was struggling with odoo technicalities and trying to get my head around it. And i did not like their 'opensource' philosophy since v9.0

Erpnext is a breeze, both to install, to use, to configure and to expand.

The platform is well thought out, and it is a real community backing it, the company behind erpnext, called frappe, does not 'sell' the product, they only provide hosting and support. so there is zero difference between the frappe hosted and the selfhosted versions. This is true opensource.

If you have bugs or feature requests then please post them on our Issue Tracker on GitHub - you'll need a (free) account. There are 2 already for us to work on for v14.1 (if either of those line up with your experience please feel free to add info and/or comment as you see fit). Note that if you create a new issue you can't add the tags, but I'll see it and tag appropriately.

If it's more of a support type situation and/or you want to discuss it a bit before you decide whether it's a bug/feature request them I suggest posting on the forums.

If you are unsure where to post I suggest posting on the Issue Tracker. Worst case scenario I can close it! :)

If your curious, we often look at a couple of distributions before committing to work with one or the other. In this case, Amazon/VM builds from bitnami, pragmatic, and turnkey were reviewed. While the other two groups have produced very good candidates, we think yours is better.

For example, you got printing working right out of the box, bound both inbound and outbound email service making it self contained for production use, and the fresh installs start out by allow us to name the first db occurance instead of having a hardwired default - none of which the other guys got right. Just a few examples of why we tend toward hoping you guys have an appliance when any new need arises.

One of our community regulars (who's user account appears to have gone AWOL) has asked me to quiz you out about configuring incoming mail. He is having issues getting it working. Any hints? I assume that you need to configure it to collect mail from a remote SMTP but not sure...

If using Odoo 9, email set up and alias to get mail into crm or support IS really confusing. odoo v 9 is much simpler. Without going into things here, there are some good guides for odoo 8, re what your user requires on the odoo forums. Probably in more detail than I could provide here.

I would like to ask folks here what their thoughts and desires are regarding TKL Odoo Version 15 which we all know to be in the works.

Most importantly, what are your thoughts on Odoo Versions? Are new features desired? If new versions of Odoo are brought forward, what will be upgrade mechanisms?

I have been using Odoo V 8.0 and it is working well for me and I have been considering Odoo 10 test upgrade as, I believe, most of the Odoo Community Association Modules (OCA) are starting to work in Odoo 10 now.

On that regard, would folks like to see some "auto implementation" of some of the OCA modules?

To perhaps get in the weeds, should we have different versions of the TKL Odoo Ap for different Odoo Versions?

Finally, is anyone familiar with the Open Upgrade process for moving data between Odoo versions?

To me these are all very important subjects especially since Odoo is running critical business processes and this, as the post says, really started as a Community Built App and the community should be aware of path decisions and considerations.

1. Please continue to fix the SSL certificate issues. Specifically - there is no actual documentation about the correct way to add/update CA Certs. We had to stumble around and finally figured out how to use the letsencrypt tool built into more recent menu systems of the TKL menus.

SSL is vital today - please fix the problems and post reasonable directions for dealing with SSL. Referring users to previous incomplete threads that don't actually contain solutions is fruitless, and tarnishes the luster of the fantastic work being done on TKL appliances.

2. Upgrade from previous TKL Odoo must actually work

Please dont assume that its "no problem" to begin using the latest and greatest TKLs unless there is some way to migrate - it will be excruciating for mission cricital users to do anything but stay in the old, obsolete versions. This is a constant issue with almost every appliance across almost all groups that deliver these appliances.

Avoid statements like "just follow the upchannell instructions for upgrade". Most of the time, those instructions are arcane, difficult if not impossible to follow, and in the short run - do not work.

Stranding user data in old appliances is one of the most serious issues preventing uptake of apliances today. Most serious users have already 'been down that road' and won't willingly go there again.

To make the TKL appliances truly usable - viable migration to new version must be striaghtforward, understandable, and reliably work.

TKL Appliances are some of the best available anywhere - but the above issues are serious, and limit the usability of the TKL appliances.

It's sad - you go through a great deal of work to make them awesome - but leave things like viable SSL instructions and upgrade path's unaddressed, vauge and unworkable.

We always look to TKL first - and with great preference. But these issues persist, and often times prevent uptake of your systems.