From 30e7efae90ae44101eae18658bed96c9b5b8917e Mon Sep 17 00:00:00 2001 From: Shawn Jackson Date: Wed, 10 Jul 2024 14:12:39 -0700 Subject: [PATCH] Documentation updates --- docs/configuration/adding-personnel.md | 10 ++ docs/configuration/adding-units.md | 6 ++ docs/configuration/audio.md | 5 + docs/configuration/calendar-types.md | 8 ++ docs/configuration/call-import.md | 5 + docs/configuration/custom-statuses.md | 71 ++++++++++++++ docs/configuration/department-settings.md | 5 + docs/configuration/distribution-lists.md | 5 + docs/configuration/forms.md | 5 + docs/configuration/inventory-types.md | 8 ++ docs/configuration/links.md | 5 + docs/configuration/mapping-layers.md | 6 ++ docs/configuration/notifications.md | 5 + docs/configuration/permissions.md | 5 + docs/configuration/personnel-roles.md | 7 ++ docs/configuration/protocols.md | 5 + docs/configuration/stations-groups.md | 5 + docs/configuration/templates.md | 5 + docs/configuration/text-messaging.md | 5 + docs/self-hosted/installation.md | 77 ++++++++++++++- docs/self-hosted/quick-start.md | 112 +++++++++++++--------- 21 files changed, 321 insertions(+), 44 deletions(-) create mode 100644 docs/configuration/adding-personnel.md create mode 100644 docs/configuration/adding-units.md create mode 100644 docs/configuration/audio.md create mode 100644 docs/configuration/calendar-types.md create mode 100644 docs/configuration/call-import.md create mode 100644 docs/configuration/custom-statuses.md create mode 100644 docs/configuration/department-settings.md create mode 100644 docs/configuration/distribution-lists.md create mode 100644 docs/configuration/forms.md create mode 100644 docs/configuration/inventory-types.md create mode 100644 docs/configuration/links.md create mode 100644 docs/configuration/mapping-layers.md create mode 100644 docs/configuration/notifications.md create mode 100644 docs/configuration/permissions.md create mode 100644 docs/configuration/personnel-roles.md create mode 100644 docs/configuration/protocols.md create mode 100644 docs/configuration/stations-groups.md create mode 100644 docs/configuration/templates.md create mode 100644 docs/configuration/text-messaging.md diff --git a/docs/configuration/adding-personnel.md b/docs/configuration/adding-personnel.md new file mode 100644 index 0000000..3363637 --- /dev/null +++ b/docs/configuration/adding-personnel.md @@ -0,0 +1,10 @@ +--- +sidebar_position: 15 +--- + +# Adding Personnel + +## Add a Person + +## Manage Invites + diff --git a/docs/configuration/adding-units.md b/docs/configuration/adding-units.md new file mode 100644 index 0000000..5b3cd24 --- /dev/null +++ b/docs/configuration/adding-units.md @@ -0,0 +1,6 @@ +--- +sidebar_position: 17 +--- + +# Adding Units + diff --git a/docs/configuration/audio.md b/docs/configuration/audio.md new file mode 100644 index 0000000..57f5047 --- /dev/null +++ b/docs/configuration/audio.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 12 +--- + +# Audio and Push To Talk diff --git a/docs/configuration/calendar-types.md b/docs/configuration/calendar-types.md new file mode 100644 index 0000000..33108fe --- /dev/null +++ b/docs/configuration/calendar-types.md @@ -0,0 +1,8 @@ +--- +sidebar_position: 19 +--- + +# Calendar Types + +Calendar->Manage Types + diff --git a/docs/configuration/call-import.md b/docs/configuration/call-import.md new file mode 100644 index 0000000..7042924 --- /dev/null +++ b/docs/configuration/call-import.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 4 +--- + +# Call Import diff --git a/docs/configuration/custom-statuses.md b/docs/configuration/custom-statuses.md new file mode 100644 index 0000000..6ab0fe7 --- /dev/null +++ b/docs/configuration/custom-statuses.md @@ -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 | \ No newline at end of file diff --git a/docs/configuration/department-settings.md b/docs/configuration/department-settings.md new file mode 100644 index 0000000..7cff6dd --- /dev/null +++ b/docs/configuration/department-settings.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 2 +--- + +# Department Settings diff --git a/docs/configuration/distribution-lists.md b/docs/configuration/distribution-lists.md new file mode 100644 index 0000000..4fd2db7 --- /dev/null +++ b/docs/configuration/distribution-lists.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 10 +--- + +# Distribution Lists diff --git a/docs/configuration/forms.md b/docs/configuration/forms.md new file mode 100644 index 0000000..153838f --- /dev/null +++ b/docs/configuration/forms.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 9 +--- + +# Forms diff --git a/docs/configuration/inventory-types.md b/docs/configuration/inventory-types.md new file mode 100644 index 0000000..53417e0 --- /dev/null +++ b/docs/configuration/inventory-types.md @@ -0,0 +1,8 @@ +--- +sidebar_position: 20 +--- + +# Inventory Types + +Inventory->Manage Types + diff --git a/docs/configuration/links.md b/docs/configuration/links.md new file mode 100644 index 0000000..377e76a --- /dev/null +++ b/docs/configuration/links.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 13 +--- + +# Department Links diff --git a/docs/configuration/mapping-layers.md b/docs/configuration/mapping-layers.md new file mode 100644 index 0000000..1fa5f14 --- /dev/null +++ b/docs/configuration/mapping-layers.md @@ -0,0 +1,6 @@ +--- +sidebar_position: 18 +--- + +# Mapping Layers + diff --git a/docs/configuration/notifications.md b/docs/configuration/notifications.md new file mode 100644 index 0000000..d90548c --- /dev/null +++ b/docs/configuration/notifications.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 14 +--- + +# Notifications diff --git a/docs/configuration/permissions.md b/docs/configuration/permissions.md new file mode 100644 index 0000000..568d58b --- /dev/null +++ b/docs/configuration/permissions.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 11 +--- + +# Security and Permissions diff --git a/docs/configuration/personnel-roles.md b/docs/configuration/personnel-roles.md new file mode 100644 index 0000000..e7d2082 --- /dev/null +++ b/docs/configuration/personnel-roles.md @@ -0,0 +1,7 @@ +--- +sidebar_position: 16 +--- + +# Personnel Roles + +Personnel Module->Manage Roles diff --git a/docs/configuration/protocols.md b/docs/configuration/protocols.md new file mode 100644 index 0000000..7654b90 --- /dev/null +++ b/docs/configuration/protocols.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 8 +--- + +# Protocols diff --git a/docs/configuration/stations-groups.md b/docs/configuration/stations-groups.md new file mode 100644 index 0000000..fbcb575 --- /dev/null +++ b/docs/configuration/stations-groups.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 3 +--- + +# Stations and Groups diff --git a/docs/configuration/templates.md b/docs/configuration/templates.md new file mode 100644 index 0000000..970378d --- /dev/null +++ b/docs/configuration/templates.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 7 +--- + +# Templates diff --git a/docs/configuration/text-messaging.md b/docs/configuration/text-messaging.md new file mode 100644 index 0000000..864107a --- /dev/null +++ b/docs/configuration/text-messaging.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 6 +--- + +# Text Messaging diff --git a/docs/self-hosted/installation.md b/docs/self-hosted/installation.md index e8e9290..a4ac5b9 100644 --- a/docs/self-hosted/installation.md +++ b/docs/self-hosted/installation.md @@ -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 @@ -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 +``` + diff --git a/docs/self-hosted/quick-start.md b/docs/self-hosted/quick-start.md index 2f13882..90a52b7 100644 --- a/docs/self-hosted/quick-start.md +++ b/docs/self-hosted/quick-start.md @@ -20,7 +20,7 @@ In this quick start we will get Resgrid up in running via Docker Compose for tes 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 and after you install Resgrid. Below is a list of technologies that you should have skilled professionals available to you or requisite knowledge before installing. Resgrid does not provide support or configuration guidance for those systems outside of the minimum needed to get the system functional. -- Windows or Linux +- Linux Server (Ubuntu) - Docker, Kubernetes - MS SQL Server - DNS, hostname mapping, proxy configuration @@ -33,7 +33,7 @@ It is highly recommended that Resgrid is installed and setup by an IT Profession ## System Requirements -The quick-start installation is suitable for a department of around 50 personnel on a machine with 32GB of RAM, 500GB of storage and a 8 logical processors. But depending on call volume or user interaction patterns may require more. +The quick-start installation is suitable for a department of around 50 personnel on a machine with 32GB of RAM, 500GB of storage and a 8 logical processors. But depending on call volume or user interaction patterns may require more. You can run Resgrid on a lower-spec machine but it's not recommended. We do not recommend that mission critical systems be installed on a single machine. Resgrid is split into multiple containers to allow for multiple machines to be used to ensure the system is resilient to failure of one of it's components. Each dependency also needs to be resilient in that case, for example Clustered SQL Servers, RabbitMQ, Redis, etc. @@ -42,12 +42,12 @@ We do not recommend that mission critical systems be installed on a single machi To run the Resgrid containers you will Docker, install Docker . You will also need Docker Compose, Install Docker Compose , the guide below will assume the docker-compose executable is installed. :::tip Note -The guide below assumes a Linux server. We test our containers on Ubuntu 20.04 as part of our normal releases. But other Linux distros that support docker should work just fine. You may have to translate some commands, or come options may not apply. +The guide below assumes a Linux server. We test our containers on Ubuntu 24.04 as part of our normal releases. But other Linux distros that support docker should work just fine. You may have to translate some commands, or some options may not apply. We do not provide assistance for any OS that isn't the one above. ::: -- Open Ports 80 and 443 and pass to the server +- Open Ports 80 and 443 and pass to the server (if you want it to be externally accessible) - SMTP Server for sending email -- 3 Publicly Available URLs +- 3 Publicly Available URLs (if you want valid, non self-signed certs) - Main Web App (i.e. rg.mycompany.com) - API (i.e. rgapi.mycompany.com) - Events (i.e. rgevents.mycompany.com) @@ -56,14 +56,17 @@ The guide below assumes a Linux server. We test our containers on Ubuntu 20.04 a Any correctly configured SMTP server will work if it’s local or not. If you have an SMTP server provided by your ISP or provider that will also work. ::: -Install Docker-CE on Ubuntu 22.04 -https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-22-04 +Install Docker-CE on Ubuntu 24.04 +https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository -Install Docker Compose on Ubuntu 22.04 -https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-compose-on-ubuntu-22-04 +Allow running of docker for non-root users +https://docs.docker.com/engine/install/linux-postinstall/ + +Install Docker Compose on Ubuntu 24.04 +https://docs.docker.com/compose/install/linux/ :::tip Note -We recommend using Docker (or Docker-CE) as the container system as it's what we use in production. Other container engines should work, but we are unable to verify if there are any issues with them. If you run into issues please try using Docker (or Docker-CE) before submitting a support request. +We recommend using Docker (or Docker-CE) as the container system as it's what we use in production. Other container engines should work, but we are unable to verify if there are any issues with them. If you run into issues please try using Docker (or Docker-CE) and ensure your using the correct version of Ubuntu before submitting a support request. ::: ## Docker Compose Setup @@ -110,7 +113,7 @@ vm.max_map_count=262144 Edit the environment file: ```bash -nano resgrid.env +nano .env ``` You will need to set at a minimum the following top 7 variables in the resgrid.env file. @@ -121,45 +124,34 @@ You will need to set at a minimum the following top 7 variables in the resgrid.e | NGINX_RESGRID_API_URL | The FQDN of the server for Resgrid api | | NGINX_RESGRID_EVENTS_URL | The FQDN of the server for Resgrid Event hub | | NGINX_LETSENCRYPT_EMAIL | Your email address used for LetsEncrypt | -| RESGRID__SystemBehaviorConfig__ResgridApiBaseUrl | Same FQDN as NGINX_RESGRID_API_URL prefixed with https:// | -| RESGRID__SystemBehaviorConfig__ResgridBaseUrl | Same FQDN as NGINX_RESGRID_WEB_URL prefixed with https:// | -| RESGRID__SystemBehaviorConfig__ResgridEventingBaseUrl | Same FQDN as NGINX_RESGRID_EVENTS_URL prefixed with https:// | +| NGINX_RESGRID_WEB_IP | This can be an internal (LAN) IP or a public one, but needs to be the IP that the proxy is serving SSL | +| NGINX_RESGRID_API_IP | This can be an internal (LAN) IP or a public one, but needs to be the IP that the proxy is serving SSL | +| NGINX_RESGRID_EVENTS_IP | This can be an internal (LAN) IP or a public one, but needs to be the IP that the proxy is serving SSL | + + +Once those are set to real and correct values you can continue on for initial testing and validation. But to use the system for anything other then quick testing you should review and change any environment variables in the .env file that has **(REQUIRED)** text in the comment. -Once those are set to real and correct values you can continue on for initial testing and validation. But to use the system for anything other then quick testing you should review and change any environment variables in the resgrid.env file that has **(REQUIRED)** text in the comment. +If you set the **NGINX_LETSENCRYPT_EMAIL** variable value to **internal** that will have Caddy Proxy generate a self-signed certificate. This allows you to test out Resgrid in an internal or air-gapped environment. But depending on your browser's security settings this may make the system not work correctly. We recommend using a publicly accessible URLs or use your own proxy server. :::danger Note -Failure to review and change the values inside the resgrid.env file for a development, production, testing or staging system could lead to issues, service disruption and potential security issues (i.e. utilizing the default encryption keys in the file). +Failure to review and change the values inside the .env file for a development, production, testing or staging system could lead to issues, service disruption and potential security issues (i.e. utilizing the default encryption keys in the file). ::: ## External Networking -This setup script assumes you are forwarding TCP port 80 and TCP port 443 from the Internet to the server you are running the script on. This docker setup comes with an NGINX reverse proxy for the web components (Web, Api and Events). If you are using a firewall or another proxy; i.e. HAProxy, NGINX, etc. You may need to modify the 'resgrid-ssl.template' file under docker-data\nginx if all you see is an NGINX 404 error when navigating to the web app. - -Modify the 'listen' lines like follows: - -FROM -```bash -listen 80; -... -listen 443 ssl; -``` - -TO -```bash -listen 80 proxy_protocol; -... -listen 443 ssl proxy_protocol; -``` - -## Run LetsEncrypt Initialization Script +This setup script assumes you are forwarding TCP port 80 and TCP port 443 from the Internet to the server you are running the script on. This docker setup comes with a Caddy reverse proxy for the web components (Web, Api and Events). If you are using a firewall or another proxy; i.e. HAProxy, NGINX, etc. You can forward directly to the ports for each component. -1. Execute the LetsEncrypt initialization script: +| Port | Description | +| ----------------------------- | --------------------------------------------------------- | +| 5151 | Main Resgrid web app | +| 5152 | Resgrid api | +| 5153 | Resgrid Event hub | -```bash -./init-letsencrypt.sh -``` +Setting **NGINX_RESGRID_WEB_IP**, **NGINX_RESGRID_API_IP** and **NGINX_RESGRID_EVENTS_IP** in the .env file will then point to your firewall/load balancer or proxy. -This script will create the initial certificates to request the SSL certificates from LetsEncrypt. Ensure it completes successfully before continuing on. Common failures here are not properly mapping the FQDN (Fully Qualified Domain Names) defined above to the server you are trying to run the script on (i.e. firewall blocking port 80 and 443, DNS record not pointing to the correct server) +:::tip Note +The Resgrid Event Hub (5153) is a SignalR hub that utilized Web Sockets for realtime updates of UI components. Your proxy will need to upgrade/handle and pass those socket calls. +::: ## Run the Docker Compose @@ -178,12 +170,46 @@ docker compose up -d ``` The Resgrid system will take about 5 minutes to start up fully, this is due to the startup order of the containers. The last container to startup will be the web container, once that one is ready, you can now access the system. -Important Note About Support + + +## Important Note About Support Resgrid is a complex system that can scale from a single instance to dozens of systems to service thousands of users. These installation setups get your system into a state where you can test and validate locally on the install system. To get Resgrid up and running to service non-local users you will need to reconfigure and harden the system. To complete those steps and configuration the system to your organizational needs you will require an IT professional. We do not provide installation support outside this guide via our Github page. -Initial Web Login -Once you have completed the steps above you will be able to log into the web applications user interface. Open up a web browser and navigate to the URL you specified in **RESGRID__SystemBehaviorConfig__ResgridBaseUrl**, you will then be prompted by the login screen. Your default administrator credentials are **admin/changeme1234**. Once you log into the system it’s recommended that you change your admin password from the Edit Profile page by clicking on the Administrator name in the upper left hand corner. + +## Initial Web Login + +Visit all of the URLs you specified above in a web browser **NGINX_RESGRID_WEB_URL**, **NGINX_RESGRID_API_URL** and **NGINX_RESGRID_EVENTS_URL** over https:// and ensure they load correctly. If you are using an internal/air-gapped install with self-signed certificates you will need to accept the self-signed cert for each url and add exceptions in the browsers. + +:::tip Note +If you are using an internal/air-gapped install we recommend adding **NGINX_RESGRID_WEB_URL**, **NGINX_RESGRID_API_URL** and **NGINX_RESGRID_EVENTS_URL** to the hosts file or your internal network DNS server as you should access all of those URLs via their name and not your machines IP address. View instructions on setting up hosts files here https://linuxize.com/post/how-to-edit-your-hosts-file/. + +You will also need a valid certificate for running fully air-gapped. We recommend Step-CA server https://smallstep.com/docs/step-ca/ for running your own Certificate Authority and syncing the certificates from that with all your workstations so you don't get certificate errors. You will configure the Caddy proxy to get ACME certificates from Step-CA https://smallstep.com/docs/tutorials/acme-protocol-acme-clients/#caddy-v2 +::: + +Once you have completed the steps above you will be able to log into the web applications user interface. Open up a web browser and navigate to the URL you specified in **NGINX_RESGRID_WEB_URL**, you will then be prompted by the login screen. Your default administrator credentials are **admin/changeme1234**. Once you log into the system it’s recommended that you change your admin password from the Edit Profile page by clicking on the Administrator name in the upper left hand corner. + +## Updating + +To update Resgrid you'll need to stop the system, clear the current containers and restart. + +Stop all running containers. + +```bash +docker compose down +``` + +Remove all cached images (to ensure we get new ones). + +```bash +docker rmi -f $(docker images -aq) +``` + +Restart the containers and they will pull new containers. + +```bash +docker compose up -d +``` ## What's Next?