This question has been flagged
3 Replies
6583 Views

steps to develop odoo saas custom and i want that for customer's demo   and just for odoo standard without

customization .

 want to have one Odoo environment with hundreds of databases  and just dedicated server without Dockers

Avatar
Discard
Best Answer

Hi IbrahimOmer,

Provide us with some more information please! Do you literally want to sell Odoo instances just like Odoo does?

Have you also thought about the technical side of the story? Creating a SaaS solution isn't too easy and you will need to think about a lot. For example: DNS, firewall, port forwarding, updating Odoo's, support, ability for the customer(s) to add custom code?, port forwarding, HTTPS, security, db filters,....

I hope this gives you some sort of insight and answers your questions. If you want to discuss this further or have more questions just reply on this and I'll try to answer them as best as I can.

I will try to go in to more details here. I will probably forget about a lot and the order might be incorrect but these are just some global pointers.
One of the first things, and most important, is to choose how you want to manage all those Odoo's. There are quite some possibilities to manage and create a SaaS platform. Do you want to have one Odoo environment with hundreds or thousands of databases or do you wish to give every customer/trial a separated Odoo? Do you want to use virtualised environments or a dedicated server? Do you want to work with Dockers or without them? This has some crucial effects: when you create one Odoo you can easily separate all databases with a database filter and Nginx for example but all of your Odoo's will see the access to all the addons for this Odoo. 
This would mean that if you have customer X and he has a custom built module that customer Y could also see it (provided he has technical rights and access ofcourse). When you create a new Odoo installation / environment for every customer everything is fully seperated. This can have quite some advantages such as everything being separated and that you can having multiple Odoo instances on multiple ports. The downside: your server will need a lot more storage since every new Odoo will take storage.

Another 'problem' is your database level with the default setup. When having the default setup you will not be able to create two databases with the same name since they belong to the same scheme. This may seem very innocent and barely annoying but you will have to think about it! You will need to make sure database names are unique, there have to be checks that the database is succesfully created,... especially if you give the user the choise to choose a database name. (which I would not advice)
Another thing to worry about with a SaaS environment is workload / balancing and the fact that you might get DDOS attacks. So you will have to atleast setup an Nginx proxy etcetera to prevent the Odoo's from being DDOS'ed and going down. It might not seem like a lot of work but you'll need to do this for all your environments and its a crucial step.

When you eventually have decided how to manage and create databases the next step is how far do you want to pre-configure? Do you want to automatically install languages and/or modules? You'll need to script Python functions that trigger the correct flows to install modules in this case. 

A SaaS also has to keep track of payments, how long the environment should be available, automated reminder e-mails, ... so you'll also need to look in to payment methods and managing the environments. The key here is automation don't even start thinking about doing all these things manual. When your SaaS grows and becomes a succes you will soon get in to troubles since you can't manage everything.

Another important thing to think about is the back-up and fail-over system. What will you do when your server crashes or something horrible goes wrong? Will you have a fail-over system that automatically moves all your customers another server without them going down? How will you take back-ups and where will you write them too? In my opinion this is an important part, both for you and your customer. You will need frequent back-ups to restore an environment when something goes wrong and the customer doesn't want to lose data either. So you'd have to setup a remote server for your back-ups and also for fail-over in case your Odoo server goes down.

You might also want to look into tools that are already made by fellow Odoo'ers so you can reuse components or flows from others. For example https://github.com/yelizariev/odoo-saas-tools

I know I haven't outlined a whole lot by now but this topic is sooooo broad that it is hard to write everything out. Just ask things if you want to know them.

Yenthe

Avatar
Discard
Best Answer

I am a business consultant and for many clients I use Odoo CE in order to innovate their business processes. Having many instances of Odoo running on different cloud machines, I am also interested in a Community Edition SaaS solution. On one hand I am looking into a CI/CD solution and agree with the comments made above. On another, searching I found on github and runbot this Odoo Saas project based on Community Edition, but there is no explanation about it:

https://github.com/odoo/odoo/tree/saas-14.1

https://runbot.odoo.com/runbot/bundle/saas-14-1-71396

Does anyone know what this is all about?

Avatar
Discard

those "saas" are development branches, eventually they get merged into default branch such as 10,11,12,13,14.

I'm also confused about does versions and how they defer from the CE version.

Best Answer

Olivier Dony conference is a good start. Not only it gives tips and tricks for performance issues but the Odoo saas hardware is shown. You will need a Postgresql server, multiple Odoo server and a load balancer. How to calculate the size of each is basicaly explained.

The slides and the video conference are available :

  • Slides https://www.odoo.com/fr_FR/slides/slide/performance-tips-tricks-399

  • Video https://www.youtube.com/watch?v=A_BWyFeGgVA

Avatar
Discard