This project is built with HOF and uses Docker.
Get the project from GitHub
$ git clone git@github.com:UKHomeOffice/rotm.git && cd rotmInstall the dependencies and build the project resources
$ yarnRun the services locally with Docker Compose
$ docker-compose upGetting your hands dirty (You'll need Redis for this)
$ yarn start:devFor anything else ROTM-related, look in package.json for a full list of scripts etc, and config.js for environment variables.
Otherwise, see HOF.
You'll need to set the following env vars to run the application:
NOTIFY_KEY | Your GOV.UK notify key NOTIFY_TEMPLATE | GOV.UK notify template ID for user authorisation email CASEWORKER_EMAIL | Caseworker email REFERRALS_EMAIL | Referrals email AWS_SECRET_ACCESS_KEY | AWS Secret Access Key AWS_ACCESS_KEY_ID | AWS Access Key ID FILE_VAULT_URL | The url that the file-vault service is running on KEYCLOAK_TOKEN_URL | The url of the keycloak server KEYCLOAK_CLIENT_ID | The client name used to authenticate with keycloak KEYCLOAK_SECRET | The secret used to authenticate with the keycloak client KEYCLOAK_USERNAME | Administrator username to authenticate with the keycloak client KEYCLOAK_PASSWORD | Administrator password used to authenticate with the keycloak client RECAPTCHA_SITE_KEY | Recaptcha site key RECAPTCHA_PROJECT_ID | Recaptcha project ID RECAPTCHA_THRESHOLD | Recaptcha threshold (defaults to 0)
To set up HAProxy and Openresty, you will need to set the following environment variables in your openresty deployment kube file: HAPROXY_UPSTREAM | HAProxy upstream configuration HAPROXY_UPSTREAM_SSL | HAProxy upstream configuration WAF_ADMIN_SALT | 32+ character random salt for password hashing WAF_ADMIN_PASSWORD | WAF Admin UI password
These are the microservices used as part of ROTM:
- File-vault - A simple REST service that allows POSTing a file to an S3 bucket.
- HOF Docker HAproxy - Global rate limiting with stick-table sync
- HOF Forms WAF - A comprehensive, multi-layer spam protection system for web forms using OpenResty (Lua) for intelligent form analysis. Features a modern React-based Admin UI for real-time configuration management.