@tzmedical/trident-server

2.3.0 • Public • Published

Trident Server

npm version Docker Version node version fastify version

CircleCI npm downloads Docker Pulls

This repository contains an example Node.js server designed to receive and process data uploaded from TZ Medical's Trident line of cardiac monitors.

Deployment

This server application can be deployed several different ways depending on your requirements. It can be run directly as an npm package, or it can be pulled as a docker image and run in any environment that supports containers. There is also a helm chart is available for kubernetes deployments.

Node.js

To run the server as an npm package, you can do one of the following:

# Install the package globally
npm i -g @tzmedical/trident-server
# Start the server on port 80
trident-server start -p 80

### OR ###

# Run the server using npx at the default port (3000)
npx @tzmedical/trident-server start

Docker

A docker image containing this server application is available on Docker Hub at tzmedical/trident-server. It can be pulled using the following command:

# Pull the application Docker image
docker pull tzmedical/trident-server

Helm

The Helm chart is available from Google Cloud Storage. To use it to install the server in your cluster, use the following commands to install as my-trident-server:

# Add the repository
helm repo add trident-server https://storage.googleapis.com/trident-server
# Install the chart
helm install my-trident-server trident-server/trident-server

Configuration

The following configuration options are available as either cli flags or environment variables:

CLI flag Environment Variable Helm Chart Default Description
-p, --port NODE_PORT service.port 80 Sets the port for the application to listen on
--post FORWARDING_URL_LIST forwardingUrls [] Sets a list of URLs to POST the parsed file contents to
FORWARDING_TIMEOUT_MS forwardingTimeoutMs 30000 Sets the timeout for forwarding POST requests
--redis-master REDIS_MASTER_HOST -automatic- '' Sets the hostname for the Redis master instance
--redis-replicas REDIS_REPLICAS_HOST -automatic- '' Sets the hostname for the Redis replicas
--redis-password REDIS_PASSWORD -automatic- '' Sets the password
--log-level LOG_LEVEL logLevel 'info' Sets the logging level for the application server
--pretty-logs PRETTY_FORMAT_LOGS prettyLogs false Set to use pretty-print formatting for logs
--pubsub-enabled PUBSUB_ENABLED pubsub.enabled false Set to enable use of google-pubsub
--pubsub-received PUBSUB_RECEIVED_TOPIC pubsub.receivedTopic trident-server-file-received Set to override the default topic name
--pubsub-actions PUBSUB_ACTIONS_TOPIC pubsub.actionsTopic trident-server-actions-queue Set to override the default topic name
--pubsub-subscription PUBSUB_SUBSCRIPTION pubsub.subscription trident-server-actions-queue Set to override the default subscription name
--cloud-storage-enabled CLOUD_STORAGE_ENABLED cloudStorage.enabled false Set to enable use of google-cloud-storage
--cloud-storage-bucket CLOUD_STORAGE_BUCKET cloudStorage.bucket trident-server-files Set to override the default bucket name
--cloud-storage-path-prefix CLOUD_STORAGE_PATH_PREFIX cloudStorage.pathPrefix '' Set to override the default file path prefix
GOOGLE_APPLICATION_CREDENTIALS googleCredentials Set to provide Google application credentials

Development

When developing and testing locally, a Redis server is needed. This is also required for npm test to succeed, as it expects to find a Redis instance on the default port at localhost. There are a number of options to achieve this.

  • Memurai Developer (Windows): The official Windows version requires WSL and is complicated to install. Instead, Memurai can be quickly installed via chocolatey. By default, it creates a Windows service so you can be up and running quickly.
  • Official Redis Sever (Linux): On Linux, the redis server can be installed using apt-get relatively easily.
  • Using a Docker Container (Any): There is a Redis image available on Docker Hub that can be used as well. This is what our automated testing uses.

Local testing also requires an emulator for Google's pubsub service. This can be installed with the following commands:

gcloud components install beta pubsub-emulator --quiet
gcloud components update --quiet

Readme

Keywords

none

Package Sidebar

Install

npm i @tzmedical/trident-server

Weekly Downloads

12

Version

2.3.0

License

MIT

Unpacked Size

71.4 kB

Total Files

18

Last publish

Collaborators

  • tzmedicalwebdev
  • tzdmueller