Skip to content

Documentation updates #26

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions docs/configuration/adding-personnel.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
sidebar_position: 15
---

# Adding Personnel

## Add a Person

## Manage Invites

6 changes: 6 additions & 0 deletions docs/configuration/adding-units.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
sidebar_position: 17
---

# Adding Units

5 changes: 5 additions & 0 deletions docs/configuration/audio.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
sidebar_position: 12
---

# Audio and Push To Talk
8 changes: 8 additions & 0 deletions docs/configuration/calendar-types.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
sidebar_position: 19
---

# Calendar Types

Calendar->Manage Types

5 changes: 5 additions & 0 deletions docs/configuration/call-import.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
sidebar_position: 4
---

# Call Import
71 changes: 71 additions & 0 deletions docs/configuration/custom-statuses.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
---
sidebar_position: 5
---

# Custom Statuses and Staffing

Custom Statuses and Staffing allow you have your own actions for personnel and units to perform when using the apps. For example if you didn't want the Default Resgrid statuses for Personnel (i.e. Responding, Not Responding, On Scene, etc) you could create a custom Personnel Status set with your own options (Yes, No, Coming, Not Coming, etc).

## Default Statuses and Staffing Levels
Resgrid default custom Statuses and Staffings are as follows

### Default Personnel Statuses

Statuses are actions your personnel are currently or about to take. Or their current status (for example standing by).

| Status Name | Description |
| -------------------- | --------------------------------------------------------- |
| Responding | You are responding (going to) a call or station |
| Not Responding | You are not responding (not going to) a call |
| On Scene | You are at the scene/location of call |
| Standing By | You are standing by (available) or available at a station |


### Default Personnel Staffing Levels

Staffing Levels reflect the readiness of your personnel to respond to calls or other events. These ideally map back to expected response times for your organization. For example if someone has their staffing level as "Available" they should be able to respond to call within 15 minutes, whereas if they are Delayed it's 30 minutes and On Shift is 5 minutes.

| Staffing Name | Description |
| -------------------- | --------------------------------------------------------- |
| Available | You are available to respond to calls |
| Delayed | You are available to respond to calls but may be delayed |
| Unavailable | You cannot respond to calls |
| Committed | You are committed to an event or call and cannot respond |
| On Shift | You are actively on shift and can rapidly respond |


### Default Unit Statuses

Unit Statuses are actions your Units (Apparatuses or Teams) are currently or about to take. Or their current status (for example Available).

| Status Name | Description |
| -------------------- | --------------------------------------------------------- |
| Responding | Unit is Responding to a call |
| Available | Unit is available to take a call |
| Committed | Unit is currently committed and cannot take a call |
| On Scene | Unit is on scene (location) of a call |
| Staging | Unit is Staging at a call location or Station |
| Returning | Unit is currently returning from a call to station |
| Out of Service | Unit is Out of Service and cannot respond to calls |


### Base Status Types

When you are creating your own Custom Statuses for Both Personnel and Units you can select a 'base' type. This allows Resgrid to 'understand' the meaning of what the statuses are in your organization back to ones that Resgrid knows. For example if you have a Unit status that is "Lunch" Resgrid doesn't know what that means and this cannot perform automatic actions against or with that status. But if you assign the base status of "Lunch" to "Unavailable" Resgrid knows that the unit in the custom "Lunch" status is not available to respond to a call.

Here are the current Base Statuses that you can assign to your own Custom Statuses.

| Status Name | Description |
| -------------------- | ------------------------------------------------------------ |
| None | This Custom Status does not equate to a base type |
| Available | Status equates to an Available to respond to calls |
| NotResponding | Status equates to an Not Responding to a call |
| Responding | Status equates to Responding to an active call |
| OnScene | Status equates to is at the Scene/Location of a call |
| MadeContact | Status equates to making contact with RP or patient |
| Investigating | Status equates to investigating in the area of a call |
| Dispatched | Status equates to being dispatched to a call |
| Cleared | Status equates to being cleared of a call |
| Returning | Status equates to returning from a call to a station |
| Staging | Status equates to being staged at a call location or station |
| Unavailable | Status equates to being Out of Service; unable to take calls |
5 changes: 5 additions & 0 deletions docs/configuration/department-settings.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
sidebar_position: 2
---

# Department Settings
5 changes: 5 additions & 0 deletions docs/configuration/distribution-lists.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
sidebar_position: 10
---

# Distribution Lists
5 changes: 5 additions & 0 deletions docs/configuration/forms.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
sidebar_position: 9
---

# Forms
8 changes: 8 additions & 0 deletions docs/configuration/inventory-types.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
sidebar_position: 20
---

# Inventory Types

Inventory->Manage Types

5 changes: 5 additions & 0 deletions docs/configuration/links.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
sidebar_position: 13
---

# Department Links
6 changes: 6 additions & 0 deletions docs/configuration/mapping-layers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
sidebar_position: 18
---

# Mapping Layers

5 changes: 5 additions & 0 deletions docs/configuration/notifications.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
sidebar_position: 14
---

# Notifications
5 changes: 5 additions & 0 deletions docs/configuration/permissions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
sidebar_position: 11
---

# Security and Permissions
7 changes: 7 additions & 0 deletions docs/configuration/personnel-roles.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
sidebar_position: 16
---

# Personnel Roles

Personnel Module->Manage Roles
5 changes: 5 additions & 0 deletions docs/configuration/protocols.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
sidebar_position: 8
---

# Protocols
5 changes: 5 additions & 0 deletions docs/configuration/stations-groups.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
sidebar_position: 3
---

# Stations and Groups
5 changes: 5 additions & 0 deletions docs/configuration/templates.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
sidebar_position: 7
---

# Templates
5 changes: 5 additions & 0 deletions docs/configuration/text-messaging.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
sidebar_position: 6
---

# Text Messaging
77 changes: 76 additions & 1 deletion docs/self-hosted/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ The overall installation of Resgrid is tailored to your specific usage scenarios

## Prerequisites

Resgrid's recommended install is on Ubuntu 20.04 with Docker to meet the Small sizing install requirements you will need a minimum of 5 servers:
Resgrid's recommended install is on Ubuntu 24.04 with Docker to meet the Small sizing install requirements you will need a minimum of 5 servers:

- 1 Web Server
- 1 Api Server
Expand All @@ -35,3 +35,78 @@ For contrast a mission-critical production environment will require a minimum of
Some services installed as part of this process; MSSQL, RabbitMQ, Redis and MongoDb are configured as single instances. This is not the ideal configuration if you are trying to get a high availability system. All of those services can be setup in HA configurations, but it is outside of the scope of this guide.
:::

- Open Ports 80 and 443 and pass to the server (or utilize your firewall/load balancer or proxy server)
- SMTP Server for sending email
- 3 Urls provisioned (externally available, internal DNS, etc)
- Main Web App (i.e. rg.mycompany.com)
- API (i.e. rgapi.mycompany.com)
- Events (i.e. rgevents.mycompany.com)

## Dependency Setup

You will need to get the required dependencies servers setup and online. You can utilize Docker versions, bare metal installs or even cloud hosted versions of these services for your installation.

### Microsoft SQL Server

Install and configure Microsoft SQL Server 2022 on the server of your choice or if you are on a Cloud provider use their MS-SQL implementation. You will need to create 3 databases and 3 accounts. Use server defaults for collation.

- **Resgrid** database and user with DB Owner for that database
- **ResgridWorkers** database and user with DB Owner for that database
- **ResgridOIDC** database and user with DB Owner for that database

### MongoDb

Install and configure MongoDb on the server of your choice or if you are on a Cloud provider use their Mongo implementation. You will need to create 1 databases and 1 login.

- **resgrid** database and user credentials for that db

### Redis

Install and configure Redis on the server of your choice or if you are on a Cloud provider use their Redis implementation.


### RabbitMQ

Install and configure RabbitMQ on the server of your choice or if you are on a Cloud provider use their RabbitMQ implementation. You will need to create a login for rabbit that allows the creation of exchanges, topics and queues.


### Proxy

Resgrid requires SSL and our containers are built with SSL Termination/Offloading in mind. You will need to setup a Proxy server that supports SSL Termination/Offloading to forward traffic to the 3 web accessible Resgrid containers. We use Caddy v2 in our system but you can use any proxy that supports the features (NGINX, HAProxy, Trafik, etc).

### Mail Server

Resgrid sends out emails to users to inform them of events and correspondence. Have a dedicated (DO-NOT-RESPOND) style email and login to allow Resgrid to send emails.

### Sentry

This step is optional but we recommending using the https://sentry.io cloud service or their open-source on-prem version https://develop.sentry.dev/self-hosted/. This would replace Elk for all logging, error and session tracking.

You should now have your Proxy setup for handling SSL traffic, a Microsoft SQL Server setup with 3 databases and 3 db owner logins, MongoDb setup with 1 database and 1 login, Redis and RabbitMQ with a login that can create exchanges, topics and queues. Now you can work on setting up the Resgrid containers.

## Resgrid Container Setup

You will need a good text editor, Notepad++ on Windows or Nano if your doing this from the Linux CLI.

1. Clone the setup scripts for the multi install:

```bash
git clone --branch multi https://github.com/Resgrid/resgrid-setup.git resgrid
```

You should now have a folder called resgrid in your current directory.

2. Open the resgrid directory:

```bash
cd resgrid
```
You will need to clone this repo into all the servers running the Resgrid containers. But we are going to edit the .env file here and it'll need to be copied to every server running the Resgrid containers, this keeps the Resgrid settings consistent for every server.


Edit the environment file with Nano (or if you cloned in a Desktop environment with your text editor of choice):

```bash
nano .env
```

Loading
Loading