Odoo SaaS Kit Documentation - Bytekol
Like many other odoo SaaS Kit products on the market, Bytekol's Odoo SaaS Kit is a powerful toolkit of many odoo modules that help you deploy infrastructure management (servers, databases, server services, files management, ssh, ..) and create odoo entities (odoo database/odoo instance) quickly and save resources. At the same time, it also helps you sell Odoo Entities as subscriptions to customers.
Bytekol's Odoo SaaS Kit is designed with the following criteria:
- Powerful
- Best speed
- Secure
- Full of necessary features and many useful features
- Easy to maintain and expand
- Save and maximize server resources
- Continuously updated
- ...
Odoo SaaS Kit is broken down into modules for easy maintenance, bug fixes, feature
additions,
and also
helps
buyers reduce costs by only purchasing the necessary modules.
Odoo SaaS Kit currently has the following modules:
-
bk_infrastructure_base
- This is the base module of odoo saas kit containing technical features and useful functions. -
bk_acme
- The module integrates with free SSL certificate providers like Letsencrypt. It helps to get free SSL certificates automatically and easily, and it also helps to renew certificates automatically. SSL certificates are essential for website security. -
bk_odoo_entity
- This is the most important module, also known as Odoo SaaS Kit, this module (and its dependent modules) helps to form a complete system in creating and managing odoo entities. -
bk_odoo_entity_custom_addons
- Additional module for Odoo SaaS Kit, helps to add additional odoo source code for Odoo Entity from git remote (besides the standard source code of odoo server group) -
bk_odoo_entity_domain_name_advance
- Additional module for Odoo SaaS Kit, helps to manage advanced domain names for Odoo Entity (add domain name, add customer domain name for odoo entity, ...) -
bk_odoo_entity_import_modules
- Additional module for Odoo SaaS Kit, helps to install any 3rd party module (eg Odoo Appstore) by uploading (.zip file or download link) to odoo entity -
bk_odoo_entity_sale
- Technical module for managing sales of odoo entities -
bk_odoo_saas_kit_pro
- Module integrated with Odoo SaaS Kit (bk_odoo_entity) to sell odoo entities as Subscription, (bk_odoo_entity module itself does not have sales integration feature) With this module you can sell in many different forms such as apps, number of users, company resources, storage, plans, ... It has its own subscription system, independent of other subscription systems like Odoo EE, Subscription management feature is somewhat similar to Odoo EE, it provides better automation than bk_odoo_saas_kit_subscription_ee thanks to It also has "Customer Credit" feature (quite similar to e-wallet), so that sales on the website take place automatically. -
bk_odoo_saas_kit_subscription_ee
- This is an Odoo EE source code only module, meaning you must have the Odoo EE source code to install this module. It integrates with the Odoo EE Subscription app and bk_odoo_entity to sell Odoo Entities as Subscriptions. -
bk_server_file_manager
- This is a module integrated with bk_server_management to provide a user interface for managing files and folders (per server) right on Odoo. -
bk_server_management
- Base module for managing resources. -
bk_server_webssh
- This is a module integrated with bk_server_management to provide an SSH user interface on servers. It can open SSH sessions, track session history, used commands...
-
Odoo SaaS Kit
Refers to the entire SaaS Kit system or a single module bk_odoo_entity -
Odoo Entity
- Odoo Entity is also known as Odoo Instance or Odoo database (as odoo.com calls it). It is an entity that represents an Odoo database and is managed by Odoo SaaS Kit. An Odoo Entity will have its own default domain name created by SaaS Kit. It runs in an odoo container. -
Odoo Image
Odoo Image in Odoo SaaS Kit is a model, and it is Docker Images on the server. Odoo Images will generate odoo containers with the same initial characteristics -
Odoo container
- It is a docker container (running odoo-bin) and managed by odoo saas kit, there can be many odoo entities running in the same odoo container -
SSL certificate
SSL certificates help to deploy https, help secure websites through https.
In Odoo SaaS Kit, it is possible to manage multiple SSL certificates, automatically
obtain/renew
free
SSL certificates from Letsencrypt, ...
You can learn more about SSL and https certificates on Google. -
SSH Key
SSH key consists of a pair of private key and public key. In odoo saas kit, it is used to connect to servers, access git remote (github, gitlab, ...) to get/update source code, ... SSH key is an important thing, so you need to keep your (private key) secure, Odoo SaaS Kit allows to assign access rights to SSH key records according to users. -
Server/Cloud Server.
Server is simply understood as a computer. In the context of this article, server can be understood as VPS/cloud servers provided by server providers such as AWS and can be accessed via SSH.
In Odoo SaaS Kit allows to manage many different servers. To work with Odoo SaaS Kit, the server needs to run Linux operating system (Ubuntu is recommended) and it must have 1 IP and Open-SSH installed to be able to access -
Odoo Server Group
Is a collection of servers classified by functions such as nginx, docker, ... to be able to deploy odoo entities. An odoo server group can include many cloud servers or just 1 single server that installs applications such as nginx, docker.
It can be said that Odoo Server Group is a "machine" that produces Odoo Entities with the same initial characteristics. -
Odoo CE (Odoo Community Edition)
Odoo CE is also known as Odoo Source Code in Odoo SaaS Kit.
Odoo CE repository at: https://github.com/odoo/odoo
Odoo Source Code includes the code base and has an odoo-bin file to be able to launch an odoo database. Odoo Developers usually do not edit and develop features by directly editing the Odoo CE source code, but through creating odoo modules (odoo addons). Some people edit directly into the Odoo CE source code and call them by another name (for example: XYZ ERP) but it is still capable of launching odoo-bin and integrating odoo modules (addons), it is still called Odoo Source Code. -
Odoo EE (Odoo Enterprise Edition)
Odoo EE is a folder containing the Odoo Enterprise source code of odoo.com (it is an odoo Addon). -
Odoo Addons (Odoo Modules)
Odoo Addon is a folder containing odoo modules, odoo modules cannot be placed in subfolders. If it is used with git, the official branch name to use should follow the version of odoo: eg 17.0, 16.0, ...
Example GitHub repository of an odoo addon: https://github.com/OCA/e-commerce -
Customer Credit
As a model in Odoo saas kit pro module, it is like a customer wallet, it is used to pay for SaaS Kit products
Odoo SaaS Kit includes many odoo modules written on the Odoo platform, so the way to install is to add the odoo saas kit modules to the addons_path configuration, like other odoo modules you download on the Odoo app Store. You need to have some IT knowledge to install, or at least you have installed some modules from Odoo App Store, if you don't know how to install, please contact us for help.
Odoo SaaS Kit also uses some python libraries, so you need to install libraries for it, all libraries of Odoo SaaS Kit modules are placed in the requirements.txt file of module bk_infrastructure_base:
/path/to/python3 -m pip install -r
/path/to/bk_infrastructure_base/requirements.txt
After installing the library, access to your Odoo url, go to apps > click update apps list and search for Odoo SaaS Kit modules (starting with bk_) to install. Details about the features of odoo modules are explained in the documentation, and you can also find them in the Odoo app store.
- Linux server like Ubuntu, for example Ubuntu 22.04 or Ubuntu 20.04.
- At least 2GB RAM or more
- at least 2 CPUs
- 20GB storage or more
limit_time_real
configuration:
limit_time_real = 18000
If
limit_time_real
is not present in the file, you need to add it at the end.
The reason is that there are some tasks that take more time like backup or restore, or
setup
odoo server
group.
- customer1. bytekol.com
- customer2. bytekol.com
- entity1. cloud.bytekol.com
- entity2. cloud.bytekol.com
- ...
However, to start (for testing), you can merge these 2 servers into 1. However, it is not recommended for real systems, the reason is that if the server is overloaded (usually due to increased access frequency to the odoo server), it will affect the DNS server, and many other reasons.
We don't have recommendations on server providers, but you should choose a server provider that can scale resources without having to create new servers. Recommended server resources are as follows:
- Operating system: Ubuntu 22 or 20.04
- 2GB RAM or more
- 2 CPUs or more
- 20 GB storage or more
- Datacenter/Location: closest to where your target audience is
Odoo source code is divided into 2 main parts: Odoo CE source code and its additional addons source code (additional odoo modules). Normally, developers will extend the functionality of Odoo CE by developing additional odoo modules and usually do not directly edit the Odoo CE source code.
The most obvious example is Odoo SA. They use at least 2 source codes: Odoo CE and Odoo EE (including enterprise modules) for their customers. And all their customers use the same source codes.
Odoo SaaS Kit is designed so that you can provide odoo entities with different source codes. These source codes will be wrapped in an Odoo Server Group, with odoo server group you can create many odoo entities running on the source codes defined on it.
For example, you can create 4 odoo server groups on the same server as follows:
odoo server group 1
- odoo CE source code: https://github.com/odoo/odoo
- odoo CE source code: https://github.com/odoo/odoo
- addon source code 1: https://github.com/OCA/web
- addon source code 2: https://github.com/OCA/e-commerce
- odoo CE source code: https://github.com/odoo/odoo
- odoo EE source code: ...
- odoo CE source code: (edited by a certain party)
- odoo server group 1 will create odoo entities running on a single odoo CE source code
- odoo server group 2 will create odoo entities running on the CE source code and have additional applications (odoo modules) added at https://github.com/OCA/web and https://github.com/OCA/e-commerce
- odoo server group 3 will create odoo entity modules with applications specifically for Odoo Enterprise Edition.
- The odoo modules are located in the same folder and not in any subfolders, for example:
your_custom_odoo_modules/
odoo_module1/
odoo_module2/
requirements.txt
your_custom_odoo_modules/
custom_sales/
odoo_module1/
odoo_module2/
custom_website/
odoo_module3/
odoo_module4/
requirements.txt
To deploy the public key to your GitHub account. Click on Avatar > Setting > SSH and GPG Key > New SSH Key> then fill in the content of the public key file into the form.
The instructions will be step by step.
Make sure you have everything in step 5. Let's say we have the following:
2 Servers:
-
Server 1 (for Odoo Server Group):
- IP: 98.130.45.73
- OS: Ubuntu 22
- RAM: 2GB
- CPU count: 2
- Storage: 20GB
-
Server 2 (for DNS Server):
- IP: 18.61.163.73
- OS: Ubuntu 22
- RAM: 2GB
- CPU count: 2
- Storage: 20GB
1 domain name: bytebype.online
Odoo Source Code and Odoo Addons. (Has been uploaded to GitHub)
Actually it may not be necessary to upload to GitHub, but in this tutorial I will use GitHub because it is extremely convenient. When you upload your source code to GitHub, you need to pay attention to the LICENSE of the source code. Some source codes must be public and some must be private, but some can be private or public at will.
- Odoo CE: https://github.com/odoo/odoo
- Addon 1: https://github.com/OCA/web
- Addon 2 (required, you will be given access when purchasing Odoo SaaS Kit): https://github.com/ByteKOL/bytekol_odoo_saas_bridge
-
Addon 3, Odoo EE:
https://github.com/ByteKOL/odoo_ee
The temporary source code I downloaded when migrating to Odoo On-premise, and is only for demo purposes in this documentation. (You can access the Odoo EE source code and use it for customers when becoming an Odoo partner, take responsibility for copyright)
- Create/Upload an SSH Key on Odoo and push to GitHub:
- Create 2 Servers, Test connection
-
Set up an Odoo Server Group
(If there is an error, try restarting the server by click the "Restart" button on the server and try again a few times.) - Create a SaaS Domain Name ...
- Launch first odoo entity
- Create new Ooo Server Groups and Launch odoo entities with difference Odoo Server Group
- Find Odoo Modules, Launch an Odoo Entity on the website.
- Subscription & Customer Credit [bk_dooo_saas_kit_pro]
- Subscription (Odoo Enterprise) [bk_odoo_saas_kit_subscription_ee]
bk_dooo_saas_kit_pro
provides wallet-like features and better automation
features, it is
also more difficult to use. Meanwhile,
bk_odoo_saas_kit_subscription_ee
is based on
Odoo
Enterprise's Subscription application, so sales management is completely based on the
Subscription
application, the revenue management and reporting features are also good, which will be
easier for
most people who have used it.
You can set up sales types outside the website by going to
Setting > Website > Odoo Entity
Sale Type
To convert an Odoo Entity to a paid subscription, you just need to create a subscription, confirm, then create Odoo Entity, select the corresponding customer, sales type and corresponding Subscription, the end date of Odoo Entity is based on the end date of Subscription. When the end date passes, Odoo Entity will be disabled (temporarily inaccessible). If the subscription has expired and the customer does not want to continue using it, you can cancel odoo entity to permanently delete the data.
The two sales types in the two modules do not have much difference, they are both based on Subscription, there is Renewal, Upselling, ... Some features will be guided in section 8: Operating Instructions. We are updating the documentation for sales feature, if you have any questions about the feature, please contact Bytekol.
- Many user interface improvements, adding some useful functions
- Fix known bugs
- DNS Record Management Feature in Bind9zone
- Easily get/renew free SSL certificates from Lensencrypt automatically.
- Improved Odoo Server Group setup, faster and more convenient than before
-
Many changes in odoo saas kit pro:
- Improved subscription makes it easier to use, renewal and upselling work quite similar to Odoo EE.
- FIX: When you top up "Customer Credit" on the website, it will not create a sales order, but will record the payment.
- Subscription allows for a variety of products, and one-time purchases can be paid for with customer credit.