Cloud Platforms
Cryptlex can be easily hosted on cloud computing platforms like AWS, GCE, Azure, Heroku, DigitalOcean and others supporting Dockers.
Hosting Cryptlex On-Premise
In order to run Cryptlex on any cloud computing platform, you would require the following services:
Database
Postgres database is required for storing all Cryptlex data. Following are some of the cloud computing platforms which provide Postgres database service:
Cache
Redis is required for storing the cache data. Following are some of the cloud computing platforms which provide Redis database service:
Filestore
Any AWS S3 compatible file store is required for storing releases. In case you don't want to use the Cryptlex release management API, this service is not required. Currently, the following file stores are supported:
Minio (self-host)
Cryptlex Web API Server
Cryptlex Web API server can be easily hosted on any cloud computing platform with Docker runtime. The Docker image is available on DockerHub:
Cryptlex Web API Server (private)
The Cryptlex Web API server must not be exposed publicly on the internet. Instead, you must use an HTTPS-enabled reverse proxy server (load balancer) to forward the traffic to the server.
Just follow the guidelines of your cloud computing platform to run Docker apps and ensure the following environment variables are set for the Web API server:
Environment Variables
Description
DATABASE_URL
The database URL for Postgres database with following format: postgres://{user}:{password}@{hostname}:{port}/{database-name}
REDIS_URL
The database URL for Redis database with following format: redis://{user}:{password}@{hostname}:{port}
GEOIPSERVER_URL
The URL of the GeoIP server.
JWT_AUDIENCE
The public URL of the web API server (or load balancer). For example https://cryptlex.mycompany.com
RSA_PASSPHRASE
The random secret used to encrypt the RSA keys.
APPLICATION_LICENSE_KEY
The license key which you get after you purchase the license for the Cryptlex On-Premise server.
GOOGLE_CLIENT_ID
This is needed in case you want to enable Google SSO.
EMAIL_FROMNAME
From name which should appear for the emails.
EMAIL_FROMADDRESS
From email address for the emails.
SMTP_HOST
SMTP host for sending emails.
SMTP_PORT
SMTP port.
SMTP_ENABLESSL
Set this to true
to enable SSL.
SMTP_USERNAME
SMTP username.
SMTP_PASSWORD
SMTP password.
Other than SMTP, Cryptlex also supports Mailgun and SendGrid for sending emails. So instead of setting SMTP environment variables, you can set MAILGUN_APIKEY
and MAILGUN_DOMAIN
environment variables to enable MailGun or set SENDGRID_APIKEY
environment variable to enable SendGrid.
Geo IP Server
This service is used to get location information from the IP address of the user. Cryptlex GeoIP server can be easily hosted on any cloud computing platform with Docker runtime. The docker image is available on DockerHub:
Instead of using cryptlex/freegeoip server for getting location information from the IP address, you can also use Ipstack and Ipdata third-party GeoIP services.
Configuring ipstack
To configure the ipstack you need to set following environment variables for the Web API server:
Configuring ipdata
To configure the ipdata you need to set following environment variables for the Web API server:
Cryptlex Release Server
Cryptlex Release server handles the upload and download of releases you create in Cryptlex. In case you don't want to use the Cryptlex release management API, this service is not required. It can be easily hosted on any cloud computing platform with Docker runtime. The docker image is available on DockerHub:
Cryptlex Release Server (private)
The Cryptlex Release server must not be exposed publicly on the internet. Instead, you must use an HTTPS-enabled reverse proxy server (load balancer) to forward the traffic to the server.
Just follow the guidelines of your cloud computing platform to run Docker apps and ensure following environment variables are set for the Release server:
Environment Variables
Description
RELEASE_SERVER_BASE_URL
The public URL of Release server e.g. https://cryptlex-releases.mycompany.com
WEB_API_BASE_URL
The public URL of Web API server e.g. https://cryptlex-api.mycompany.com
FILE_STORE_ACCESS_KEY
The access key of the Filestore.
FILE_STORE_SECRET_KEY
The secret key of the Filestore.
FILE_STORE_BUCKET
Name of the bucket where you want to store all your files.
FILE_STORE_REGION
This is required in case you are using AWS S3, otherwise, leave the default value as such.
FILE_STORE_USE_SSL
This should only be set to true in case you are using AWS S3.
FILE_STORE_ENDPOINT
The hostname of the Filestore server. In case you are using AWS S3 set this to: s3.amazonaws.com
FILE_STORE_PORT
The port of the Filestore server. In case you are using AWS S3 set this to: 443
Cryptlex Dashboard
It can be easily hosted on any cloud computing platform with Docker runtime. The docker image is available on DockerHub:
Just follow the guidelines of your cloud computing platform to run Docker apps and ensure following environment variables are set for the Dashboard static server:
Environment Variables
Description
RELEASE_SERVER_BASE_URL
The public URL of Release server e.g. https://cryptlex-releases.mycompany.com
WEB_API_BASE_URL
The public URL of Web API server e.g. https://cryptlex-api.mycompany.com
COMPANY_NAME
This shows up in the browser title.
COMPANY_WEBSITE
Your company website.
COMPANY_LOGO_URL
Logo to be displayed. It must have a transparent background.
COMPANY_FAVICON_URL
Favicon URL.
GOOGLE_CLIENT_ID
This is needed in case you want to enable Google SSO.
GOOGLE_ANALYTICS_KEY
Google analytics key.
Last updated