Skip to content

testerloop/testerloop-server

Repository files navigation

Testerloop Server

This is the backend repository for Testerloop. The frontend can be found here. The backend is built using Node.js, TypeScript, and Apollo Server. It utilizes AWS S3 for storage and requires an AWS account and configured S3 buckets.

This repo can be run locally for local development (instructions are included below), but it is not deployed as a standalone service. It is used as an NPM package by the Testerloop App, which is deployed as our staging site in an ECS cluster on AWS Fargate.

New versions of the backend package are published to NPM using GitHub Actions when new releases are created on GitHub.

Prerequisites

Before getting started, make sure you have the following installed:

  • NVM
  • Node.js (with v.18 set as the active version using NVM)
  • npm

Setup

  1. Clone the repository:
git clone git@github.com:testerloop/testerloop-server.git
cd testerloop-server
  1. Copy the .env.shadow and .npmrc.shadow files to .env and .npmrc:
cp .env.shadow .env
cp .npmrc.shadow .npmrc
  1. Update the .env file with your AWS credentials. If you don't have AWS credentials yet, you can obtain them by following this guide.
PORT=8080

AWS_BUCKET_REGION=YOUR_AWS_BUCKET_REGION
AWS_ACCESS_KEY_ID=YOUR_AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY=YOUR_AWS_SECRET_ACCESS_KEY
AWS_BUCKET_NAME=YOUR_AWS_BUCKET_NAME
EXPIRES_IN=3600
  1. Update the .npmrc file replacing <GITHUB_TOKEN> with the token provided by the Testerloop team.

  2. Install the dependencies:

npm install

Running

To start the backend in development mode, run:

npm run dev

This will start the backend server, and it will automatically reload when you make changes to the code.

Building for production

To build the backend for production, run:

npm run build