VRATIX Logo

Deploy your backend service locally or on your cloud service of choice using Docker or directly on your host machine.

With Docker

If Docker is enabled for your project, a docker-compose.yaml file will be available with all necessary container configurations. Ensure Docker Engine and Docker Compose are installed.

localhost

Step 1: Configure your .env file with the necessary environment variables.

Step 2: Run the following command to start the service:

docker compose up -d --build

This command performs several actions:

  1. Copies your service files to the backend container.
  2. Builds the project in the container with tsup --watch.
  3. Runs the service within the container, monitoring for changes and restarting as needed. Refer to the docker:serve command in package.json.
  4. Builds and runs other containers (e.g., postgres or ingress-proxy) as specified in docker-compose.yaml.

Staging/Production

Note: Using a prebuilt container image is recommended for cloud deployments. This guide outlines deployment without a prebuilt image.

If you are using a cloud-provisioned DB resource, you might want to remove any DB containers in staging/production by updating the include property in your docker-compose.yaml.

Step 1: Set NODE_ENV=production in your .env file to target the production build stage (see docker-compose.yaml on line 7).

Step 2: Clone your project to the host server and install any required dependencies, such as Docker Compose and pnpm.

Step 3: Configure your production .env with the appropriate variables.

Step 4 (Optional): Configure an NGINX proxy for SSL and to handle incoming requests. Refer to the NGINX guide.

Step 5: Run the following command to build and start the Docker services:

docker compose up -d --build

Without Docker

Running the service without Docker simplifies the process, though you may still need a DB container for local development or an NGINX proxy for staging/production.

localhost

Step 1: Configure your .env file with required local environment variables.

Step 2: Use the following command to start the service:

npm run dev:local

This will:

  1. Build the project in watch mode using tsup --watch
  2. Run the service, automatically restarting on file changes. See the local:serve command in package.json for configuration.

Staging/Production

Step 1: Clone your project to the production server.

Step 2: Configure your production .env with the appropriate variables.

Step 3 (Optional): Configure a reverse proxy (e.g., NGINX) to handle SSL and incoming requests. Refer to the NGINX guide for setup.

Step 4: Run the following commands to build and start the service:

npm run build:prod
npm run prod:serve