Create an S3 Bucket

You will need an s3 bucket, a User, and an IAM policy.

  1. Create a new s3 bucket for Secoda (e.g., secoda-data)
  2. Create a new User for Secoda (e.g., secoda) in your AWS IAM settings. Keep your access key ID and secret access key somewhere safe. Those should be used to set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY, respectively
  3. Attach an s3 bucket policy with the following configuration
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ListObjectsInBucket",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::secoda-data"
            ]
        },
        {
            "Sid": "AllObjectActions",
            "Effect": "Allow",
            "Action": "s3:*Object",
            "Resource": [
                "arn:aws:s3:::secoda-data/*"
            ]
        }
    ]
}
  1. Enable versioning on the bucket under Properties

Untitled

Untitled

  1. Set a bucket lifecycle rule to delete unused versions after 7 days

Deploy to Aptible

  1. Add your public SSH key to your Aptible account through the Aptible dashboard
  2. Install the Aptible CLI, and login. Documentation for this can be found here: https://www.aptible.com/documentation/deploy/cli.html
  3. Login to your aptible account if not already signed in with aptible login
  4. Create a new Aptible app with aptible apps:create secoda
  5. Add a Postgres database: aptible db:create secoda-postgres --type postgresql --version 13
  6. Add Elasticsearch: aptible db:create secoda-es --type elasticsearch --version 6.8
  7. Add Redis: aptible db:create secoda-redis --type redis --version 5.0
  8. Configure the DockerHub environment variables
aptible config:set --app secoda \\
APTIBLE_PRIVATE_REGISTRY_USERNAME=xxxxxxxx \\
# REPLACE WITH PASSWORD SUPPLIED BY SECODA
APTIBLE_PRIVATE_REGISTRY_PASSWORD=xxxxxxxx \\
# REPLACE WITH LICENSE SUPPLIED BY SECODA
LICENSE=xxxxxxxxxxx