Overview

This guide provides step-by-step instructions for deploying an Oxla Docker container and integrating it with Google Cloud Storage as the object storage. You will configure Docker, create a Docker Compose file and run the Oxla container so it can read from and write to Google Cloud Storage.

Prerequisites

Before proceeding, make sure you have the following:

  • Docker: install Docker on your Linux machine
  • PostgreSQL Client: install PostgreSQL client to connect to the Oxla database
  • Google Bucket: create an Google Cloud Storage bucket to store you data
  • Google Credentials: generate a service account and download the credentials file (which includes the email, private key ID, and private key). For instructions, see Authenticate to Cloud Storage in the Google Cloud documentation

Create the Docker Compose File

Open your terminal and create a new Docker Compose file named docker-compose.gcs-credentials.yml:

vim docker-compose.gcs-credentials.yml

Add the following configuration into the file and replace the placeholder values with the actual Google Cloud Storage credentials and settings:

services:
  oxla_node_1:
    image: public.ecr.aws/oxla/release
    security_opt:
      - seccomp:unconfined
    volumes:
      - ${CLIENT_DATA_DIR-../client_data}:/client_data
      - ${OXLA_LOGS_DIR-../logs}:/oxla/logs
      - /oxla/crash:/oxla/crash
      - /path/to/gcs-credentials.json:/gcs/credentials.json:ro
    ulimits:
      nofile:
        soft: 40000
        hard: 40000
    ports:
      - 5432:5432
    environment:
      - OXLA_HOME=gs://{your-bucket-name/your-empty-directory-name}
      - GOOGLE_APPLICATION_CREDENTIALS=/gcs/credentials.json

Save and exit the file by typing :wq and pressing Enter.

The OXLA_HOME path must reference a directory in your Google Cloud Storage bucket that is either empty or exclusively contains files conforming to the Oxla format.

Be sure to mount your Google Cloud Storage credentials file into the container at /gcs/credentials.json by updating the volumes section. The path in the GOOGLE_APPLICATION_CREDENTIALS environment variable must match the container path of the mounted file.

Run the Docker Container

After saving the YAML file, run the following command to create and start the Oxla docker container:

docker compose -f docker-compose.gcs-credentials.yml up

This command will start the Oxla service and connects it to your specified Google bucket using the provided credentials. To verify that Oxla is running correctly, connect using the PostgreSQL client:

psql -h localhost -U oxla oxla
The default username and password for the Oxla superuser are both “oxla”.

Upon successful execution, you should see a similar output:

psql (17.2 (Ubuntu 17.2-1.pgdg22.04+1), server 16.0 (oxla version: 1.69.0)

oxla=>

For more information on Oxla’s environment variables check out the Configuration file.