Skip to content

Latest commit

 

History

History
324 lines (245 loc) · 26.6 KB

README.md

File metadata and controls

324 lines (245 loc) · 26.6 KB

Meeds Docker image

Official Meeds Docker image

The image is compatible with the following databases system: MySQL (default) / HSQLDB / PostgreSQL

Docker Stars - Docker Pulls

Configuration options

All the following options can be defined with the standard Docker -e parameter

docker run -e MY_ENV_VARIABLE="value" ... meedsio/meeds

or Docker Compose way of defining environment variables

version: '2'
services:
...
  meeds:
    image: meedsio/meeds
    environment:
...
      MEEDS_ADDONS_LIST: meeds-poll
      MEEDS_PATCHES_LIST:
      MEEDS_PATCHES_CATALOG_URL:
      MEEDS_ES_HOST: search
...

Add-ons

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

VARIABLE MANDATORY DEFAULT VALUE DESCRIPTION
MEEDS_ADDONS_LIST NO - commas separated list of add-ons to install (ex: meeds-wallet,meeds-perk-store:2.0.x-SNAPSHOT)
MEEDS_ADDONS_REMOVE_LIST NO - commas separated list of add-ons to uninstall
MEEDS_ADDONS_CATALOG_URL NO - The URL of a valid Meeds addons Catalog
MEEDS_ADDONS_CONFLICT_MODE NO - decision to make in case of file conflicts (overwrite, ignore or fail)
MEEDS_ADDONS_NOCOMPAT_MODE NO false decision to allow to install incompatible addon

Patches

Patches can be deployed in Meeds image :

VARIABLE MANDATORY DEFAULT VALUE DESCRIPTION
MEEDS_PATCHES_LIST NO - commas separated list of patches to install (ex: patch-1.3.0:1,patch-1.3.0:2)
MEEDS_PATCHES_CATALOG_URL YES - The URL of a valid Meeds Patches Catalog (mandatory if something is specified in MEEDS_PATCHES_LIST)

JVM

The standard Meeds Server environment variables can be used :

VARIABLE MANDATORY DEFAULT VALUE DESCRIPTION
MEEDS_JVM_SIZE_MIN NO 512m specify the JVM minimum allocated memory size (-Xms parameter)
MEEDS_JVM_SIZE_MAX NO 3g specify the JVM maximum allocated memory size (-Xmx parameter)
MEEDS_JVM_PERMSIZE_MAX NO 256m (Java 7) specify the JVM maximum allocated memory to Permgen (-XX:MaxPermSize parameter)
MEEDS_JVM_METASPACE_SIZE_MAX NO 512m (Java 8+) specify the JVM maximum allocated memory to MetaSpace (-XX:MaxMetaspaceSize parameter)
MEEDS_JVM_USER_LANGUAGE NO en specify the JVM locale for language (-Duser.language parameter)
MEEDS_JVM_USER_REGION NO US specify the JVM local for region (-Duser.region parameter)
MEEDS_JVM_LOG_GC_ENABLED NO false activate the JVM GC log file generation (location: $MEEDS_LOG_DIR/platform-gc.log) (1.0.0+)

INFO: This list is not exhaustive (see ${MEEDS_HOME}/bin/setenv.sh for more parameters)

Frontend proxy

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

VARIABLE MANDATORY DEFAULT VALUE DESCRIPTION
MEEDS_PROXY_VHOST NO localhost specify the virtual host name to reach Meeds Server
MEEDS_PROXY_PORT NO - Which port should be used on the proxy server? if empty it will automatically defined regarding MEEDS_PROXY_SSL value (true => 443 / false => 8080)
MEEDS_PROXY_SSL NO false is ssl activated on the proxy server ? (true/false)

Tomcat

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

VARIABLE MANDATORY DEFAULT VALUE DESCRIPTION
MEEDS_HTTP_THREAD_MAX NO 200 maximum number of threads in the tomcat HTTP connector
MEEDS_HTTP_THREAD_MIN NO 10 minimum number of threads ready in the tomcat HTTP connector
MEEDS_ACCESS_LOG_ENABLED NO false Activate Tomcat access log with combined format and a daily log file rotation
MEEDS_GZIP_ENABLED NO true activate Tomcat Gzip compression for assets mime-types
MEEDS_CONNECTION_TIMEOUT NO 20000 Tomcat Connection timeout

Valves and Listeners

A file containing the list of valves and listeners can be attached to the container in the path {{/etc/meeds/host.yml}}. The default valves and listeners configuration will be overridden if a file is specified.

The file format is :

components:
  - type: Valve
    className: org.acme.myvalves.WithoutAttributes
  - type: Valve
    className: org.acme.myvalves.WithAttributes
    attributes:
      - name: param1
        value: value1
      - name: param2
        value: value2
  - type: Listener
    className: org.acme.mylistener.WthAttributes
    attributes:
      - name: param1
        value: value1
      - name: param2
        value: value2

Data on disk

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

VARIABLE MANDATORY DEFAULT VALUE DESCRIPTION
MEEDS_DATA_DIR NO /srv/meeds the directory to store Meeds Server data
MEEDS_FILE_STORAGE_DIR NO ${MEEDS_DATA_DIR}/files the directory to store Meeds Server data
MEEDS_FILE_STORAGE_RETENTION NO 30 the number of days to keep deleted files on disk before definitively removing it from the disk
MEEDS_UPLOAD_MAX_FILE_SIZE NO 200 maximum authorized size for file upload in MB.
MEEDS_FILE_UMASK NO 0022 the umask used for files generated by Meeds

Database

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

VARIABLE MANDATORY DEFAULT VALUE DESCRIPTION
MEEDS_DB_TYPE NO hsqldb Meeds server uses hsqldb by default. Possible values: mysql, postgresql or hsqldb
MEEDS_DB_POOL_IDM_INIT_SIZE NO 5 the init size of IDM data source pool
MEEDS_DB_HOST NO db Meeds database server host. This is needed only when MEEDS_DB_TYPE is set to mysql or postgresql
MEEDS_DB_PORT NO `` the port to connect to the database server
MEEDS_DB_NAME NO `` the name of the database/schema to use
MEEDS_DB_USER NO `` the username to connect to the database
MEEDS_DB_PASSWORD YES - the password to connect to the database
MEEDS_DB_POOL_IDM_MAX_SIZE NO 20 the max size of IDM data source pool
MEEDS_DB_POOL_JCR_INIT_SIZE NO 5 the init size of JCR data source pool
MEEDS_DB_POOL_JCR_MAX_SIZE NO 20 the max size of JCR data source pool
MEEDS_DB_POOL_JPA_INIT_SIZE NO 5 the init size of JPA data source pool
MEEDS_DB_POOL_JPA_MAX_SIZE NO 20 the max size of JPA data source pool
MEEDS_DB_TIMEOUT NO 60 the number of seconds to wait for database availability before canceling Meeds startup

MySQL

VARIABLE MANDATORY DEFAULT VALUE DESCRIPTION
MEEDS_DB_MYSQL_USE_SSL NO false connecting securely to MySQL using SSL (see MySQL Connector/J documentation for useSSL parameter)

ElasticSearch

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

VARIABLE MANDATORY DEFAULT VALUE DESCRIPTION
MEEDS_ES_SCHEME NO http the Elasticsearch server scheme to use from the Meeds Server JVM perspective (HTTP / HTTPS).
MEEDS_ES_HOST NO localhost the Elasticsearch server hostname to use from the Meeds Server JVM perspective.
MEEDS_ES_PORT NO 9200 the Elasticsearch server port from the Meeds Server JVM perspective.
MEEDS_ES_USERNAME NO - the username to connect to the Elasticsearch server (if authentication is activated on the external Elasticsearch).
MEEDS_ES_PASSWORD NO - the password to connect to the Elasticsearch server (if authentication is activated on the external Elasticsearch).
MEEDS_ES_INDEX_REPLICA_NB NO 0 the number of replicas for Elasticsearch indexes (leave 0 if you don't have an Elasticsearch cluster).
MEEDS_ES_INDEX_SHARD_NB NO 0 the number of shard for elasticsearch indexes.
MEEDS_ES_TIMEOUT NO 60 the number of seconds to wait for Elasticsearch availability before canceling Meeds startup

LDAP / Active Directory

The following environment variables should be passed to the container to configure the LDAP connection pool:

VARIABLE MANDATORY DEFAULT VALUE DESCRIPTION
MEEDS_LDAP_POOL_DEBUG NO - the level of debug output to produce. Valid values are "fine" (trace connection creation and removal) and "all" (all debugging information).
MEEDS_LDAP_POOL_TIMEOUT NO 60000 the number of milliseconds that an idle connection may remain in the pool without being closed and removed from the pool.
MEEDS_LDAP_POOL_MAX_SIZE NO 100 the maximum number of connections per connection identity that can be maintained concurrently.

Mail

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

VARIABLE MANDATORY DEFAULT VALUE DESCRIPTION
MEEDS_MAIL_FROM NO [email protected] "from" field of emails sent by Meeds Server
MEEDS_MAIL_SMTP_HOST NO localhost SMTP Server hostname
MEEDS_MAIL_SMTP_PORT NO 25 SMTP Server port
MEEDS_MAIL_SMTP_STARTTLS NO false true to enable the secure (TLS) SMTP. See RFC 3207.
MEEDS_MAIL_SMTP_USERNAME NO - authentication username for SMTP server (if needed)
MEEDS_MAIL_SMTP_PASSWORD NO - authentication password for SMTP server (if needed)

JMX

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

VARIABLE MANDATORY DEFAULT VALUE DESCRIPTION
MEEDS_JMX_ENABLED NO true activate JMX listener
MEEDS_JMX_RMI_REGISTRY_PORT NO 10001 JMX RMI Registry port
MEEDS_JMX_RMI_SERVER_PORT NO 10002 JMX RMI Server port
MEEDS_JMX_RMI_SERVER_HOSTNAME NO localhost JMX RMI Server hostname
MEEDS_JMX_USERNAME NO - a username for JMX connection (if no username is provided, the JMX access is unprotected)
MEEDS_JMX_PASSWORD NO - a password for JMX connection (if no password is specified a random one will be generated and stored in /opt/meeds/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.

Remote Debugging

The following environment variables should be passed to the container to enable remote debugging mode :

VARIABLE MANDATORY DEFAULT VALUE DESCRIPTION
MEEDS_DEBUG_ENABLED NO false enable remote debugging listener
MEEDS_DEBUG_PORT NO 8000 Remote debugging port

Remember me Token Expiration

The following environment variables should be passed to the container to specify the rememberme token expiration :

VARIABLE MANDATORY DEFAULT VALUE DESCRIPTION
MEEDS_TOKEN_REMEMBERME_EXPIRATION_VALUE NO 7 Number of unit expiration delay
MEEDS_TOKEN_REMEMBERME_EXPIRATION_UNIT NO DAY Unit of token expiration DAY, HOUR, MINUTE, SECOND

Cluster

The following environment variables should be passed to the container to configure the cluster :

VARIABLE MANDATORY DEFAULT VALUE DESCRIPTION
MEEDS_CLUSTER NO false Activate the cluster mode
MEEDS_CLUSTER_NODE_NAME NO the container id Node name to use in the cluster for this node (ex: node1)
MEEDS_CLUSTER_HOSTS NO - space-separated list of cluster hosts definitions (ex: name=node1,http_protocol=http,address=node1.cluster.local,http_port=8080,tcp1_port=7800,tcp2_port=7900 name=node2,http_protocol=http,address=node1.cluster.local,http_port=8080,tcp1_port=7800,tcp2_port=7900)

Reward Wallet

The following environment variables should be passed to the container to configure the Meeds Rewards wallet:

VARIABLE MANDATORY DEFAULT VALUE DESCRIPTION
MEEDS_REWARDS_WALLET_ADMIN_KEY YES changeThisKey password used to encrypt the Admin wallet’s private key stored in the database. If its value is modified after server startup, the private key of the admin wallet won’t be decrypted anymore, preventing all administrative operations
MEEDS_REWARDS_WALLET_ACCESS_PERMISSION NO /platform/users to restrict access to wallet application to a group of users (ex: member:/spaces/internal_space)
MEEDS_REWARDS_WALLET_NETWORK_ID NO 1 (mainnet) ID of the Ethereum network to use (see: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md#list-of-chain-ids)
MEEDS_REWARDS_WALLET_NETWORK_ENDPOINT_HTTP NO https://mainnet.infura.io/v3/a1ac85aea9ce4be88e9e87dad7c01d40 HTTPS URL to access to the Ethereum API for the chosen network id
MEEDS_REWARDS_WALLET_NETWORK_ENDPOINT_WEBSOCKET NO wss://mainnet.infura.io/ws/v3/a1ac85aea9ce4be88e9e87dad7c01d40 WSS URL to access to the Ethereum API for the chosen network id
MEEDS_REWARDS_WALLET_TOKEN_ADDRESS NO 0xc76987d43b77c45d51653b6eb110b9174acce8fb address of the contract for the official rewarding token promoted by Meeds

How-to

Configure Meeds Server behind a reverse-proxy

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

docker run -d \
  -p 8080:8080 \
  -e MEEDS_PROXY_VHOST="my.public-facing-hostname.org" \
  meedsio/meeds

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

See Meeds Server logs

docker logs --follow <CONTAINER_NAME>

Customize some Meeds Server settings

All previously mentioned environment variables can be defined in a standard Docker way with -e ENV_VARIABLE="value" parameters :

docker run -d \
  -p 8080:8080 \
  -e MEEDS_JVM_SIZE_MAX="8g" \
  meedsio/meeds

Some Meeds configuration properties can also be defined in an exo.properties file. In this case, simply create this file and mount it in the Docker container:

docker run -d \
  -p 8080:8080 \
  -v /absolute/path/to/exo.properties:/etc/meeds/exo.properties:ro \
  meedsio/meeds

Image build

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

    docker build -t meedsio/meeds .

This will produce an image with the current Meeds Server.