Frequently Asked Questions - On-Premise Deployment
- What is Mesibo on-premise?
- Why do I need On-Premise?
- On-Premise vs Cloud offering, Which one is better?
- Do we need to pay extra for on-premise?
- What is the cost for on-premise and how billing is changed compared to Mesibo Cloud solution?
- Can I run Mesibo on a cloud service provider?
- Can we run it along with our Web server or Do we need additional hardware?
- Do I need to change or recompile my apps to run with Mesibo On-Premise ?
- I am currently using Mesibo Cloud services. If I enable on-premise how long will it take to switch connection to my server?
- Can I switch from Mesibo On-Premise hosted on my service back to Mesibo Cloud Service?
- What happens when we have issues in our datacenter?
- Can I keep my database behind a firewall and run Mesibo?
- What is Auto fallback to cloud option ?
- What is 'do not perform network check' option ?
- How can I configure my TLS/SSL setting ?
- What happens if I have enabled on premise and my server is not running?
- What happens if I am connected to my server and disable On-Premise from console?
- How do I ensure that my clients connect directly to my server and not through mesibo servers?
- Does on-premise requires internet?
- Will the backend API URL change when I use on-premise?
- How can we keep our On-premise deployment updated with latest features and technology?
- If I need to run multiple apps, then should I spawn multiple docker containers?
- How to orechestrate mesibo docker containers on Kubernetes
- What is loadable modules and scripting?
- How does a mesibo module work?
- What can I build with Mesibo Modules?
- Do I need to sign-up with mesibo to use mesibo on-premise server?
- I am getting MySQL Connection Failed error.
- I have created a user using the backend API. However, I can not find that user in the on-premise database.
- Can you set up on-premise for us on our server?
- Can I use AWS lambda to run mesibo on-premise
- Can I use mesibo on-premise with MongoDB instead of MySQL?
- Can I use database tables created by mesibo on-premise?
- Are there any limitations on using on-premise for free users?
You can’t go wrong with either model. Although our cloud services let you start immediately, there are several reasons why you need On-Premise, and one of the key reasons is to have ultimate control over your data. More than ever before, it has become imperative to protect your data and be more sensitive towards your user data, be it personal data, financial data, medical records, GDPR, HIPPA, unauthorized harvesting of your data, companies selling, misusing your data for advertisement, to name a few.
Mesibo On-premise offering puts you in complete control of your data since everything runs on your own servers. If you do not wish to host Mesibo on your own server infrastructure, you have the option of using the Cloud offering by Mesibo. Also, even when running On-Premise, you can always use Mesibo cloud as a backup, which gives you the best of both worlds.
Absolutely not! There are NO changes to the way you deploy your application or use our APIs.
Mesibo APIs support both cloud and on-premise. By default, it connects to the cloud. However, if the app is configured to be on-premise, the mesibo cloud will refuse to serve and will ask the client to connect to an on-premise server, and will disconnect. Then onward, the client will directly connect to the on-premise server and then all the messages and calls will route to your mesibo on-premise server.
In case your data center having issues, you can always have the option of falling back to Mesibo Cloud Services, with just the click of a button.
As soon as you enable On-Premise in the console, your users will start getting connected to your mesibo On-Premise server. You will see logs on the mesibo on-premise console. Additionally, you can use netstat or similar utilities to view the client connections.
Please ensure that you have made the necessary configuration in the console and the Running Status in the console displays your hostname before you enable On-Premise.
You can use any existing certificate that you may be using with your web server, OR purchase it from any provider of your choice, OR use Letsencrypt which is a free service to get a secure certificate. Note, while Letsencrypt is a great service, the certificate issued is only valid for 90 days. So if you prefer to install on-premise and forget, we recommend using a certificate having a long expiry, 1 year and above.
To configure TLS/SSL certificate, refer on-premise documentation.
There are two possibilities -
- If Auto Fallback is not enabled and your server is not running and you have enabled On-Premise, your users will not be able to connect and hence will fail to get your service.
- If Auto Fallback is enabled and your server is not running and you have enabled On-Premise, your users will switch to Mesibo cloud after a few retries
If your server is running, your users will continue to connect to your On-Premise server since they do not know about your disabling On-Premise server.
However, if you also stop your docker container running Mesibo, your users will be redirected to Mesibo cloud after a few retries and will connect there since you have disabled On-Premise.
netstat -anp | grep ESTA command, OR by running a packet sniffer on your server where you have hosted mesibo on-premise. You will see that all the connection IP address matches your clients, and not even a single request is coming from mesibo servers.On-premise requires minimal internet access only for authenticating with the mesibo server and the billing purpose (notifying MAU). Since the internet is only used for licensing and informing mesibo about the MAU, the internet usage is extremely minimal.
You should ensure that the on-premise server is able to connect to onp-auth.mesibo.com
Mesibo On-Premise is designed by developers for developers. Its dynamically loadable module architecture lets you load your own code for deeper integration with your infrastructure, enabling you for unlimited creative possibilities.
With Mesibo Modules you can build powerful chatbots, filters, remotely communicate with hardware for IoT and robotics, integrate with Machine learning and Scientific computing backend such as Tensorflow, Dialogflow, Matlab, etc and much more, all the way keeping your data secure and private in your premises or private cloud.
Mesibo Module is essentially a message processor that allows you to intercept each message and decide whether to pass the message as it is to the destination, drop it, or process it before sending it to the destination. For example,
- A profanity filter module can drop messages containing profanity
- A translation module can translate each message before sending it to destination
- A chatbot module can analyze messages using various AI and machine learning tools like Tensorflow, Dialogflow, etc. and send an automatic reply.
A Mesibo module is built as a shared library (.so file) which can be loaded at runtime by the Mesibo server. Mesibo then invokes various callback functions that you have defined in the shared library whenever it receives messages or message status from your users
The functionality of each module is programmed by you and its capability is limited only by your imagination. Mesibo modules make Mesibo a powerful communication platform.
With Mesibo Modules you can build interesting applications such as chatbot, translation service, profanity filter and much more!
You need to ensure that your MySQL server is accessible from the docker image. If you are configuring 127.0.0.1 or localhost for MySQL host, it is likely to fail since your MySQL server is outside your docker image and hence you need a real IP address other than the localhost.
The mesibo docker image logs the IP address and samples MySQL commands, try using them.
If you are using the mesibo hosted backend APIs, the mesibo on-premise synchronizes user information only when a user tries to log in for the first time. On-premise does this to optimize bandwidth and database access (imagine you have millions of users). Once the user logs in for the first time, you will find user information in the database.
However, you can host mesibo backend APIs on your on-premise. In this case, the user will be instantly visible in your database. Refer to the on-premise documentation to learn how to host mesibo backend APIs.
Although, it can be possible to run docker inside AWS Lambda with a hack and configuring a custom VPC, it is not recommended to setup mesibo this way.
Instead, you can easily setup mesibo on-premise on an AWS EC2 instance following the the setup instructions provided in the on-premise doc .
Mesibo On-Premise operates as a MySQL client. You may use mongosqld to act as a proxy between mesibo on-premise and MongoDB. The most straightforward way is to use the C authentication plugin. However, this does not support MySQL versions greater than 8. Therefore, the latest version of on-premise is incompatible with this plugin.
Refer to https://docs.mongodb.com/bi-connector/current/connect/mysql/#connect-from-mysql-with-authentication for more details.
messages and calls table. All other tables are for mesibo on-premise use only and can be modified or deleted without notice.