Docker

In this section we will go over setup of the Resgrid system using Docker containers.

Important

Resgrid requires working RabbitMQ, Redis and SQL servers, more info in Prerequisites & Dependencies below and currently only runs on Microsoft Windows operating systems

This documentation is for installation of Resgrid from compile source. If you want to install Resgrid from Docker containers please review that section instead.

Requirements Notice

It is highly recommended that Resgrid is installed and setup by an IT Professional. There is a large amount of system configuration, tweaking and setup that is required to be done before you install Resgrid. Below is a list of technologies that you should have skilled professionals available to you or requisite knowledge before installing Resgrid. Resgrid does not provide support or configuration guidance for those systems outside of the minimum needed to get the system functional. The steps outlined below will get the system in a bare minimum functional state to ensure it’s working on your enviroment, to be production ready will reqire more effort then is outlined in this documentation.

  • Windows or Linux
  • Docker, Kubernetes, Rancher, K8s
  • SQL Server or PostgreSQL
  • DNS, hostname mapping, proxy configuration
  • RabbitMQ
  • Redis
  • Elastic
  • Mail Server SMTP, POP3
  • Firewall and system hardning

Docker Container Images

Resgrid is split into 3 distinct Docker containers. All of our container images are available under the Resgrid, LLC organization on the Docker Hub.

resgridwebcore This is the web application docker image and is used to host the website application that users will interact with.

Docker Pull Command:

docker pull resgridllc/resgridwebcore

resgridwebservices This is the web api that is used by the website and applications to communicate with the Resgrid system

Docker Pull Command:

docker pull resgridllc/resgridwebservices

resgridworkersconsole This is the backend workers that are used to process operations from RabbitMQ or scheduled tasks.

Docker Pull Command:

docker pull resgridllc/resgridworkersconsole

Settings

To configure the Resgrid system in a Docker or Kubernetes context we recommend using environment variables. To see all the config options availabe you can take a look at our Github repo <https://github.com/Resgrid/Core/tree/master/Core/Resgrid.Config>, every static class in the Resgrid.Congfig project can be set by an environment variable.

The pattern for how Resgrid processes environment is as follows:

RESGRID__{CLASSNAME}__{PROPERTYNAME}

Resgrid at the start of the name must be in all caps, there are two (2) underscores seperating the parts, in between RESGRID and classname and classname and popertyname.

Resgrid Environment Variables
Variables Required Description
RESGRID__CacheConfig__RedisConnectionString Yes The full connection string to the Redis server or cluster
RESGRID__DataConfig__ConnectionString Yes The connection string to the Microsoft SQL Server
RESGRID__ExternalErrorConfig__ExternalErrorServiceUrl No Url for Sentry.io error reporting
RESGRID__InboundEmailConfig__DispatchDomain No Domain name to put at the end of the dispatch email address
RESGRID__InboundEmailConfig__GroupMessageDomain No Domain name to put at the end of the group message email address
RESGRID__InboundEmailConfig__GroupsDomain No Domain name to put at the end of the group dispatch email address
RESGRID__InboundEmailConfig__ListsDomain No Domain name to put at the end of the distribution list email address
RESGRID__ServiceBusConfig__RabbbitExchange Yes RabbitMQ exchange name (can be blank)
RESGRID__ServiceBusConfig__RabbitHostname Yes Hostname or IP Address of the RabbitMQ server or cluster
RESGRID__ServiceBusConfig__RabbitUsername Yes Login for RabbitMQ that has permissions to create queues and publish and recieve messages
RESGRID__ServiceBusConfig__RabbbitPassword Yes Password for the RabbitMQ login
RESGRID__SystemBehaviorConfig__ApiTokenEncryptionPassphrase Yes Passphrase to encrypt API tokens with
RESGRID__SystemBehaviorConfig__DoNotBroadcast Yes True/False prevents any communications from being sent if set to True
RESGRID__SystemBehaviorConfig__ResgridApiBaseUrl Yes URL for the Resgrid API for this Resgrid install
RESGRID__SystemBehaviorConfig__ResgridBaseUrl Yes Base url to access the web install of Resgrid

Note

The above is only a partial list to get the Resgrid system functional. You may need to set others to get the system fully operational within your environment. At a minimum, Microsoft SQL Server, Redis and RabbitMQ are required as well as setting the ResgridAPI url and ResgridBase web url.