Check out Docker documentation for details on how to install Docker.
Steps to Install Exalate for Jira Cloud on Docker
1. Create or download the docker-compose.yml
The example below docker-compose.yml file can be used to install Exalate for Jcloudnode.
Create a directory to hold the docker-compose file:
cd ~ mkdir exalate-jcloudnode
Create or download a docker-compose.yml file
Note: Click docker-compose.yml to download the file.
The file should contain the following information:Note: We recommend using the latest version of Exalate for Jira Cloud. It can be found in the Release History.
Enter the latest version in the
image
tag. For example, inimage: idalko/jcloudnode:5.3.3
, the version of Exalate for Jira Cloud is5.3.3
.version: '2' services: database: restart: unless-stopped image: postgres:9.6 volumes: - ./persist/db:/var/lib/postgresql/data - ./createdb.sh:/docker-entrypoint-initdb.d/init-user-db.sh environment: # adapt the default passwords - DB_NAME=jcloudnode - DB_USER=idalko - DB_PASS=idalko - POSTGRES_PASSWORD=changeme networks: - database jcloudnode: restart: unless-stopped # use the latest version https://hub.docker.com/r/idalko/jcloudnode image: idalko/jcloudnode:5.3.3 depends_on: - database #wait for postgres to be started, not for ready volumes: - ./persist/home:/opt/jcloudnode/data environment: # Add your enviroment settings here, check documentation for details - JCLOUDNODE_PG_DB=jcloudnode?gssEncMode=disable - JCLOUDNODE_PG_HOST=database - JCLOUDNODE_PG_PWD=idalko - JCLOUDNODE_PG_USER=idalko - JCLOUDNODE_PORT=9002 # When you deploy Exalate onto a server, you configure a DNS rule such that #whenever people navigate to foo.com, they reach your server's Exalate. #You set up SSL so that https://foo.com leads to your Exalate on your server. #Now you need to set environment variable NODE_SELF_URL=https://foo.com #for your Exalate docker container. # Use following variables to link the node with nginx proxy # Replace francis-jcl.exalate.biz with the appropriate FQDN - LETSENCRYPT_HOST=francis-jcl.exalate.biz - VIRTUAL_HOST=francis-jcl.exalate.biz - VIRTUAL_PORT=9002 - NODE_SELF_URL=https://foo.com networks: - database - proxy networks: database: driver: bridge default: driver: bridge proxy: external: name: proxy
2. Ensure that a correct database is setup using a createdb.sh
Create or download a createdb.sh file (referenced from docker-compose.yml):
Note: Click createdb.sh to download the file.
The file should contain the following information:
#!/bin/bash TEST=`psql -U postgres <<-EOSQL SELECT 1 FROM pg_database WHERE datname='$DB_NAME'; EOSQL` echo "******CREATING DOCKER DATABASE******" if [[ $TEST == "1" ]]; then # database exists # $? is 0 exit 0 else psql -U postgres <<-EOSQL CREATE ROLE $DB_USER WITH LOGIN ENCRYPTED PASSWORD '${DB_PASS}' SUPERUSER; EOSQL psql -U postgres <<-EOSQL CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCODING 'UNICODE' LC_COLLATE 'C' LC_CTYPE 'C' TEMPLATE template0; EOSQL psql -U postgres <<-EOSQL GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER; EOSQL fi echo "" echo "******DOCKER DATABASE CREATED******"
3. Set Environment Variables if necessary
Below you can find the environment variables used for the app container.
JCLOUDNODE_PG_DB | JCLOUDNODE_PG_DB=exalate | tells Exalate what is the Postgres database name for the Exalate application |
JCLOUDNODE_PG_HOST | JCLOUDNODE_PG_HOST=database | tells Exalate where is the Postgres database to connect is hosted |
JCLOUDNODE_PG_PWD | JCLOUDENODE_PG_PWD=secret | tells the Exalate application what is the Postgres database user's password for the Exalate application to perform queries with |
JCLOUDNODE_PG_USER | JCLOUDNODE_PG_USER=exalate | tells the Exalate application what is the Postgres database user name for the Exalate application to perform queries with |
SMTP_FROM | SMTP_FROM=my.name@gmail.com | Email that is used to send error notifications |
SMTP_HOST_NAME | SMTP_HOST_NAME=smtp.gmail.com | Host name of the SMTP server used to send error notifications |
SMTP_LOGIN | SMTP_LOGIN=my.name | Login to the SMTP service |
SMTP_PASS | SMTP_PASS=secret | Password to the SMTP service |
SMTP_PORT | SMTP_PORT=587 | Port (also check the TLS setting) |
SMTP_TLS | SMTP_TLS=true | Can be set to false, but then the SMTP_PORT ![]() |
Using a Proxy for Outgoing Connections
Whenever the Exalate node needs to use a proxy to establish outgoing connections, use the following parameters in the environment (naming should be obvious):
- PROXY_HTTP_HOST
- PROXY_HTTP_PORT
- PROXY_HTTPS_HOST
- PROXY_HTTPS_PORT
4. Start the Application
cd ~ mkdir exalate-jcloudnode
5. Register the Node
To be able to fully use the functionality of your new node, it needs to be registered on the mapper. This mapper acts as a DNS server mapping tracker URLs to node URLs.
This is currently a manual operation to be requested through the support portal (here).
Please be ready to provide the following:
- Exalate node URL
- Jira Cloud instance URL
Our support will invite you for a video call, as connecting the Jira Cloud instance with the on-premise requires a couple of steps.
- Install the Exalate application
- Uninstall the Exalate application
- Our support will do a couple of updates on the backend
- Install the Exalate application again
System Administration Tasks
With the Exalate for Jira Cloud is running on your environment,you will also be required to do the mandatory system administration tasks
- Backup (& restore tests)
- Disaster recovery procedure
- Upgrades whenever needed
Please note that an Exalate version has a lifespan of 2 years. This is to ensure backward compatibility over the whole platform.
There are regular new versions deployed which contain bug fixes, security-related improvements, and even new features.
Watch the status.exalate.com Statuspage for any new versions
Troubleshooting
Issues during the installation of the Exalate for Jira Cloud
If you have issues during the installation of the Exalate app for Salesforce you can find logs describing possible problems inside /tmp
.
The name for the file is generated randomly and automatically by the OS, but you can find the file by the creation date.
Issues while running the Exalate server for Jira Cloud
Logs will be generated under the directory: /opt/jcloudnode/data/logs (in the docker container)
Refer to these logs to get more information about possible problems and contact our support team if you need any assistance.
Support
Check our Support options.