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.

Odoo Official Logo

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

by Landis Arnold

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.