This article is the first of a new series in which we will be posting periodic roundups of some of the most frequently asked questions by the eXo community.
In these posts we will consolidate answers to these top-ranked questions in the hopes that they may serve as a useful resource, especially to new community members.
So without further ado, here is the first little FAQ digest covering the last three months.
Several months ago, we decided to stop distributing the native (Bitnami-powered) installers for the eXo Platform Community Edition. Instead, we started providing Docker images that we had been using using successfully for our Hosted services for a while.
We are convinced that this simplifies the overall administration experience of an eXo Platform deployment, especially for testing purposes.
Ever since we made this change, Docker-related questions started to pop up. Let’s address some of the most popular ones.
Question #1: Can I still download the ZIP distribution of the community edition?
No, since this has been replaced by the new Docker images available on our downloads page.
However, you should still be able to manually build eXo Platform Community Edition from the source on GitHub: https://github.com/exoplatform/platform-public-distributions
Question #2: Can I migrate and upgrade from a previous installation (e.g. version 4.4) done using the retired native installer to a new Docker-based version (e.g. version 5.0)?
Yes. The biggest difference is that old package uses PostgreSQL as its relational database, while the new Docker image uses MySQL.
So this migration should be a matter of binding data directories in the Docker image, as well as some environment variable configuration for establishing connection to your database server.
This is explained in this Docker container documentation.
Do not forget to check the official version upgrade documentation: https://docs.exoplatform.org/PLF50/PLFAdminGuide.Upgrade.Process.html
Question #3: How do I install eXo add-ons on my Docker installation?
First, make sure you read this documentation.
Just declare them in the EXO_ADDONS_LIST environment variable. For the eXo Chat add-on for example, you can do this using this command: -e EXO_ADDONS_LIST=”exo-chat”
This will install the add-on inside the container each time you create a new version of the container.
Tip: If you want to install several add-ons at once, just add them in the same variable separated with a comma.
Question #4: The chat add-on needs a MongoDB database to run. How do I set this up in a Docker install?
Here is a sample docker-compose file with the Chat add-on and MongoDB in it: https://github.com/exo-docker/exo-community/blob/master/docker-compose-chat.yml
What is interesting for you here is:
- Line 24 where you specify the hostname of the MongoDB server (more options available in this documentation: https://github.com/exo-docker/exo-community#mongodb ).
- Line 25 where you can declare a list of comma separated list of add-ons to install in the eXo container (such as: EXO_ADDONS_LIST:exo-chat,exo-tasks ).
- Line 41-44 where we declare a MongoDB server.
“So essentially we install MongoDB as a separate Docker container than make a data storage volume and refer to it in the exo-compose file, right?”
Actually, with docker-compose, you don’t need to manage the different container independently as all containers described and configured in the docker-compose file can be launched with a single command: docker-compose -f docker-compose-chat.yml up -d
Question #5: I need install eXo Platform on a server that does not have internet access, so I Cannot use Docker directly. Is there a workaround for this?
If your server is not allowed to have internet access even temporarily, you will have to manually import the Docker image to it.
Here is a little tutorial to help you do this: http://ermaker.github.io/blog/2017/01/12/install-docker-without-internet.html
Question #6: Can the Community Edition Docker image be configured to work over HTTPS instead of HTTP? If so, then how?
You need to deploy and configure a reverse proxy on your own to handle HTTPS in front of eXo. In addition, you need to configure the exo-community container to let it know that it will accessed through a reverse proxy and with SSL.
The configuration options that you need on the eXo Platform side are outlined in this documentation: https://github.com/exo-docker/exo-community#frontend-proxy
As an example, if you configure a reverse proxy to be reachable through https://my-company.com you would need to configure the exo-community container as follows:
Other frequent questions
Question #7: Is the eXo Platform software available in my language and, if not, how can I contribute a translation?
As of the time I’m writing this, eXo Platform is available in 23 languages.
For checking whether your language is available and/or how to contribute a translation, you may follow this guide: https://www.exoplatform.com/blog/2017/05/30/how-to-get-exo-platform-in-your-language
Question #8: What is the difference between your free and open source Community edition and the paid Enterprise edition?
The Enterprise Edition (with its different plans) is based on the publicly available codebase of the free LGPL-licensed Community Edition. But it’s regularly tested, certified and packaged for enterprise use.
The main differences are:
- The Community Edition only comes as a Docker image and based only on the Tomcat bundle package (so no installer, and no access to the JBoss package).
- Some add-ons are not pre-installed on the Community Edition (e.g. task, chat, remote edit).
- Professional support and professional services (implementation, consulting, training, etc.) are available exclusively for the Enterprise Edition.
- Hosting services are available only for the Enterprise Edition.
- The Community Edition gets less frequent updates because it does not get maintenance version releases.
For a more detailed and informative comparison between the two editions, check out this blog post: https://www.exoplatform.com/blog/2016/03/10/community-vs-enterprise-when-should-you-purchase-a-subscription