IT정보뉴스
2018.10.02 / 24:47

eXo Platform - Java기반의 강력한 Platform

Chitta
추천 수 42

eXo Platform Enterprise Edition - 30 Days Free trial

Try our Entreprise Edition, with entreprise feature such as :

  •  Entreprise theme
  •  Chat
  •  Tasks
  •  Document editing
  •  Web pack Templates
 

Consider Entreprise Edition if you are interested in :

  •  Professional global support
  •  Wide range of certified IT envirements
  •  Timely bugfixes and free updates
Are you an existing customer ?
Download entreprise edition from your customer space.
 

eXo Platform Community Edition

  •  Lightweight open source collaborative platform core
  •  Enjoy commnunity-led support
  •  Pay nothing. It's free

Connect and collaborate with eXo Mobile apps

Follow the latest updates from your colleagues and groups, interact with your personal dashboards, browse and edit your files, and more – at any time, from anywhere.

Native iPhone, iPad, and Android apps integrate easily and securely with your eXo instance, on-premise or in the cloud.

Get it on Apple Store
Get it on Google Play
 

Enhance your eXo Platform installation

Install new apps, connectors, new features, skins and templates in the eXo add-ons center.

Teach yourself how to make the best of your eXo Platform

Comprehensive documentation provides admins, developers and end users with all the information they need to develop and deploy successul projects with eXo Platform. Downloadable PDF versions of all docs are available to eXo Tribe members.

 


eXo Platform Community Docker image

Docker Stars Docker Pulls

The eXo Platform Community edition Docker image support HSQLDB (for testing) and MySQL (for production).

ImageJDKeXo Platform
exoplatform/exo-community:develop85.1 Community edition
exoplatform/exo-community:latest85.1 Community edition
exoplatform/exo-community:5.185.1 Community edition
exoplatform/exo-community:5.085.0 Community edition
exoplatform/exo-community:4.484.4 Community edition
exoplatform/exo-community:4.384.3 Community edition
exoplatform/exo-community:4.274.2 Community edition
exoplatform/exo-community:4.174.1 Community edition

Quick start

The prerequisites are :

  • Docker daemon version 12+ + internet access
  • 4GB of available RAM + 1GB of disk

The most basic way to start eXo Platform Community edition for evaluation purpose is to execute

docker run -v exo_data:/srv/exo -p 8080:8080 exoplatform/exo-community

and then waiting the log line which say that the server is started

2017-05-22 10:49:30,176 | INFO  | Server startup in 83613 ms [org.apache.catalina.startup.Catalina<main>]

When ready just go to http://localhost:8080 and follow the instructions ;-)

Configuration options

Add-ons

Some add-ons are already installed in eXo image but you can install other one or remove some of the pre-installed one :

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_ADDONS_LISTNO-commas separated list of add-ons to install (ex: exo-answers,exo-skype:1.0.x-SNAPSHOT)
EXO_ADDONS_REMOVE_LISTNO-commas separated list of add-ons to uninstall (ex: exo-chat,exo-es-embedded) (since: 5.0)

JVM

The standard eXo Platform environment variables can be used :

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_JVM_SIZE_MINNO512mspecify the jvm minimum allocated memory size (-Xms parameter)
EXO_JVM_SIZE_MAXNO3gspecify the jvm maximum allocated memory size (-Xmx parameter)
EXO_JVM_PERMSIZE_MAXNO256m(Java 7) specify the jvm maximum allocated memory to Permgen (-XX:MaxPermSize parameter)
EXO_JVM_METASPACE_SIZE_MAXNO512m(Java 8+) specify the jvm maximum allocated memory to MetaSpace (-XX:MaxMetaspaceSize parameter)
EXO_JVM_USER_LANGUAGENOenspecify the jvm locale for langage (-Duser.language parameter)
EXO_JVM_USER_REGIONNOUSspecify the jvm local for region (-Duser.region parameter)
EXO_JVM_LOG_GC_ENABLEDNOfalseactivate the JVM GC log file generation (location: $EXO_LOG_DIR/platform-gc.log) (5.1.0-RC12+)

INFO: This list is not exhaustive (see eXo Platform documentation or {EXO_HOME}/bin/setenv.sh for more parameters)

Frontend proxy

The following environment variables must be passed to the container to configure Tomcat proxy settings:

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_PROXY_VHOSTNOlocalhostspecify the virtual host name to reach eXo Platform
EXO_PROXY_PORTNO-which port to use on the proxy server ? if empty it will automatically defined regarding EXO_PROXY_SSL value (true => 443 / false => 8080)
EXO_PROXY_SSLNOfalseis ssl activated on the proxy server ? (true / false)

Tomcat

The following environment variables can be passed to the container to configure Tomcat settings

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_ACCESS_LOG_ENABLEDNOfalseactivate Tomcat access log with combine format and a daily log file rotation

Data on disk

The following environment variables must be passed to the container in order to work :

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_DATA_DIRNO/srv/exothe directory to store eXo Platform data
EXO_FILE_STORAGE_DIRNO${EXO_DATA_DIR}/filesthe directory to store eXo Platform data
EXO_FILE_STORAGE_RETENTIONNO30the number of days to keep deleted files on disk before definitively remove it from the disk
EXO_UPLOAD_MAX_FILE_SIZENO200maximum authorized size for file upload in MB.
EXO_FILE_UMASKNO0022the umask used for files generated by eXo

Database

The following environment variables must be passed to the container in order to work :

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_DB_TYPENOhsqldbCommunity edition only support hsqldb and mysql
EXO_DB_HOSTNOmysqlthe host to connect to the database server
EXO_DB_PORTNO3306the port to connect to the database server
EXO_DB_NAMENOexothe name of the database / schema to use
EXO_DB_USERNOexothe username to connect to the database
EXO_DB_PASSWORDYES-the password to connect to the database
EXO_DB_TIMEOUTNO60the number of seconds to wait for database availability before cancelling eXo startup

MySQL

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_DB_MYSQL_USE_SSLNOfalseconnecting securely to MySQL using SSL (see MySQL Connector/J documentation for useSSL parameter)

Mongodb

The following environment variables should be passed to the container in order to work if you installed eXo Chat add-on :

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_MONGO_HOSTNOmongothe hostname to connect to the mongodb database for eXo Chat
EXO_MONGO_PORTNO27017the port to connect to the mongodb server
EXO_MONGO_USERNAMENO-the username to use to connect to the mongodb database (no authentification configured by default)
EXO_MONGO_PASSWORDNO-the password to use to connect to the mongodb database (no authentification configured by default)
EXO_MONGO_DB_NAMENOchatthe mongodb database name to use for eXo Chat
EXO_MONGO_TIMEOUTNO60the number of seconds to wait for mongodb availability before cancelling eXo startup

INFO: you must configure and start an external MongoDB server by yourself

ElasticSearch

The following environment variables should be passed to the container in order to configure the search feature on an external Elastic Search server:

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_ES_EMBEDDEDNOtruedo we use an elasticsearch server embedded in the eXo Platform JVM or do we use an external one ? (using an embedded elasticsearch server is not recommanded for production purpose) (if set to false the add-on exo-es-embedded is uninstalled during container creation)
EXO_ES_EMBEDDED_DATANO/srv/exo/es/The directory to use for storing elasticsearch data (in embedded mode only).
EXO_ES_SCHEMENOhttpthe elasticsearch server scheme to use from the eXo Platform server jvm perspective (http / https).
EXO_ES_HOSTNOlocalhostthe elasticsearch server hostname to use from the eXo Platform server jvm perspective.
EXO_ES_PORTNO9200the elasticsearch server port to use from the eXo Platform server jvm perspective.
EXO_ES_USERNAMENO-the username to connect to the elasticsearch server (if authentication is activated on the external elasticsearch).
EXO_ES_PASSWORDNO-the password to connect to the elasticsearch server (if authentication is activated on the external elasticsearch).
EXO_ES_INDEX_REPLICA_NBNO0the number of replicat for elasticsearch indexes (leave 0 if you don't have an elasticsearch cluster).
EXO_ES_INDEX_SHARD_NBNO0the number of shard for elasticsearch indexes.
EXO_ES_TIMEOUTNO60the number of seconds to wait for elasticsearch availability before cancelling eXo startup (only if EXO_ES_EMBEDDED=false)

INFO: the default embedded ElasticSearch in not recommended for production purpose.

Mail

The following environment variables should be passed to the container in order to configure the mail server configuration to use :

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_MAIL_FROMNOnoreply@exoplatform.com"from" field of emails sent by eXo platform
EXO_MAIL_SMTP_HOSTNOlocalhostSMTP Server hostname
EXO_MAIL_SMTP_PORTNO25SMTP Server port
EXO_MAIL_SMTP_STARTTLSNOfalsetrue to enable the secure (TLS) SMTP. See RFC 3207.
EXO_MAIL_SMTP_USERNAMENO-authentication username for smtp server (if needed)
EXO_MAIL_SMTP_PASSWORDNO-authentication password for smtp server (if needed)

JMX

The following environment variables should be passed to the container in order to configure JMX :

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_JMX_ENABLEDNOtrueactivate JMX listener
EXO_JMX_RMI_REGISTRY_PORTNO10001JMX RMI Registry port
EXO_JMX_RMI_SERVER_PORTNO10002JMX RMI Server port
EXO_JMX_RMI_SERVER_HOSTNAMENOlocalhostJMX RMI Server hostname
EXO_JMX_USERNAMENO-a username for JMX connection (if no username is provided, the JMX access is unprotected)
EXO_JMX_PASSWORDNO-a password for JMX connection (if no password is specified a random one will be generated and stored in /opt/exo/conf/jmxremote.password)

With the default parameters you can connect to JMX with service:jmx:rmi://localhost:10002/jndi/rmi://localhost:10001/jmxrmi without authentication.

How-to

configure eXo Platform behind a reverse-proxy

You have to specify the following environment variables to configure eXo Platform (see upper section for more parameters and details) :

docker run -d \
  -p 8080:8080 \
  -e EXO_PROXY_VHOST="my.public-facing-hostname.org" \
  exoplatform/exo-community

You can also use Docker Compose (see the provided docker-compose.yml file as an example).

use MySQL database

You have to specify the following environment variables to point to an external MySQL database server (see upper section for more parameters and details) :

docker run -d \
  -p 8080:8080 \
  -e EXO_DB_TYPE="mysql" \
  -e EXO_DB_HOST="mysql.server-hostname.org" \
  -e EXO_DB_USER="exo" \
  -e EXO_DB_PASSWORD="my-secret-pw" \
  exoplatform/exo-community

You can also use Docker Compose (see the provided docker-compose.yml file as an example).

see eXo Platform logs

docker logs --follow <CONTAINER_NAME>

install eXo Platform add-ons

To install add-ons in the container, provide a commas separated list of add-ons you want to install in a EXO_ADDONS_LISTenvironment variable to the container:

docker run -d \
  -p 8080:8080 \
  -e EXO_ADDONS_LIST="exo-tasks:1.3.x-SNAPSHOT,exo-answers:1.3.x-SNAPSHOT" \
  exoplatform/exo-community

INFO: the provided add-ons list will be installed in the container during the container creation.

list eXo Platform add-ons available

In a running container execute the following command:

docker exec <CONTAINER_NAME> /opt/exo/addon list

list eXo Platform add-ons installed

In a running container execute the following command:

docker exec <CONTAINER_NAME> /opt/exo/addon list --installed

customize some eXo Platform settings

As explained in eXo Platform documentation you can customize several aspects of eXo platform by settings environment variables :

docker run -d \
  -p 8080:8080 \
  -e EXO_JVM_SIZE_MAX="8g" \
  exoplatform/exo-community

Image build

The simplest way to build this image is to use default values :

docker build -t exoplatform/exo-community .

This will produce an image with the current eXo Platform Community edition.

The build can be customized with the following arguments :

ARGUMENT NAMEMANDATORYDEFAULT VALUEDESCRIPTION
ADDONSNOexo-chat exo-tasks:1.1.0 exo-jdbc-driver-mysql:1.1.0a space separated list of add-ons to install (default: exo-jdbc-driver-mysql:1.1.0)