AWS Deployment
This page describes the process and requirements for deploying a new Qrvey MultiPlatform Environment in AWS.
For all V9 installations, please first contact Customer Support.
Requirements
- Docker: The latest version of Docker should be installed.
- The Version 9.0 (LTS) Docker Image:
qrvey.azurecr.io/qrvey-terraform-aws:9.0.0-20250422
- The registry username and password provided by the Qrvey Support team.
- IAM user with Admin access, an access key, and a secret key: This is needed to create the resources for deployment.
- The VPC (or equivalent) that is being used to deploy the Qrvey Platform should have a minimum CIDR of
/22
. - An S3 Bucket to store the state file. It should be in the same region as the deployment.
- SMTP configuration to send emails.
- A DNS Hosted Zone (Optional): To generate valid SSL Certificates for the Qrvey Composer domain. If there is no domain setup, we will generate one with the following format:
$deployment_id.mp.qrveyapp.com
. To automatically set up a custom DNS, the Route 53 zone should be in the same account as the deployment, and credentials should have sufficient permissions.
IAM Policy Minimum Required Permissions for Deployment Credentials:
If you use an IAM user for deployment, it should have the following permissions as minimum requirements in the policy.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:*",
"elasticloadbalancing:*",
"autoscaling:*",
"eks:*",
"iam:*",
"route53:*",
"s3:*",
"secretsmanager:*",
"rds:*",
"rds-db:*",
"kms:*",
"cloudwatch:*",
"logs:*",
"acm:*",
"elasticfilesystem:*",
"ecr:*",
"ssm:*",
"sts:*",
"dynamodb:*",
"vpce:*",
"opensearch:*"
],
"Resource": "*"
}
]
}
Installation
To install Qrvey 9.0 (LTS) in your AWS account, you need to create the following file: config.json
{
"account_config": {
"access_key_id": "<ACCESS_KEY>",
"secret_access_key": "<SECRET_KEY>>",
"region": "<REGION>",
"bucket": "<S3_BUCKET_TO_STORE_THE_STATE_FILE>",
"key": "<FILE_NAME>"
},
"variables": {
"registry_user": "<REGISTRY_USER_PROVIDED_BY_QRVEY_SUPPORT>",
"registry_key": "<REGISTRY_KEY_PROVIDED_BY_QRVEY_SUPPORT>",
"qrvey_chart_version": "<QRVEY_VERSION>", // found at the end of the docker image provided above under pre-requisites
"enable_location_services": true,
"es_config": {
"size": "large", // can be small, medium, or large
"count": 1
},
"customer_info": {
"firstname": "John",
"lastname": "Smith",
"email": "JS@qrvey.com",
"company": "Qrvey"
},
"initial_admin_email": "JS@qrvey.com",
"globalization": {
"google_client_email": "",
"google_client_private_key": "",
"google_document_id": "",
"google_document_sheet_title": ""
},
"enable_trino": false
}
}
Once these prerequisites are ready, you can run the following commands to install Qrvey:
From your terminal, navigate to the directory that contains the config file above.
Use the following command to log in to the Qrvey Registry.
docker login qrvey.azurecr.io --username $registry_user --password-stdin <<< $registry_key
Run the installation commands with the desired Terraform option: plan
, apply
, output
, or destroy
.
For installation, use the apply
option.
The installation process should take about two hours.
# This command is for MAC. Choose the platform param as required based on your OS.
docker run --platform=linux/amd64 -v $(pwd)/config.json:/app/qrvey/config.json -it --rm qrvey.azurecr.io/qrvey-terraform-aws:${qrvey_version} apply
After running the apply
command, wait until the process is complete and review the resources created. You should see something similar to the following image:
You can run the following command to get environment outputs, including the admin username and password to log in to Qrvey.
# This command is for MAC. Choose the platform param as required based on your OS.
docker run --platform=linux/amd64 -v $(pwd)/config.json:/app/qrvey/config.json -it --rm qrvey.azurecr.io/qrvey-terraform-aws:${qrvey_version} output
##########
### ####
### ### +++ +++ +++ +++++ +++ ++
## ### ++++ +++ +++ +++ +++ ++ +++
## ### ++ ++ +++ +++ ++++ ++ +++
## ### ++ ++ ++ ++++++++ +++ ++
### ### ++ ++++++ +++ ++++++
#### ##### ++ ++++ +++ +++ ++++
######## ++ ++ +++++++ +++
##### # ++
######## ++++
ENVIRONMENT DETAILS:
DEPLOYMENT_ID: deployment-id
URL: https://deployment-id.mp.qrveyapp.com
ADMIN URL: https://deployment-id.mp.qrveyapp.com/admin/app/
ADMIN USER: admin@company.tld
ADMIN PASSWORD: generated_admin_password
APIKEY: qrvey_api_key
PostgresqlConnection: postgres://qrvey_usr:db_password@deployment-id-qrvey-db.postgres.database.azure.com:5432/postgres
ES_HOST: https://1.2.3.4:9200/
ES_USERNAME: elastic
ES_PASSWORD: elastic_password
- Navigate to your Qrvey domain and log in to the platform.