The Droits reporting service enables:
- Salvage owners to report their findings with the Maritime & CoastGuard Agency
- Receivers of Wreck to manage these reports
It comprises two applications:
- A public facing frontend.
- Source code is in the
webapp/
directory. - Application specific documentation is in the README.
- Source code is in the
- The backoffice API which handles the incoming registrations and is an admin application to handle the reports
- Source code is in the
backoffice/
directory. - Application specific documentation is in the README.
- Source code is in the
Infrastructure-as-code remains the single source-of-truth for Droits infrastructure! Always check terraform/
if
unsure.
dependency | version |
---|---|
python | 3.10.17 |
dotnet | 8.0.409 |
nvm | 0.39.5 |
node | 18.17.0 |
terraform | 1.4.6 |
Docker desktop | Latest |
To install the dependencies, follow this guide
To run the application, you'll need the following configuration files:
webapp/.env.json
backoffice/src/appsettings.json
The contents for these files are stored in 1Password
. Please request access from the team if you do not already have it.
Once you have these files in place, you can start the application by running docker compose up
.
-
Instance fails to start: If you ran
docker compose up
before creating and populating the.env.json
andappsettings.json
files, this will cause the instance to fail. To resolve this, clean up the environment and run the command again. -
Port 5005 is unavailable: If you encounter a port binding error, port
5005
is already in use. To solve this, runHOST_PORT=5002 docker compose up
(or alternative port number)
The Terraform directory contains the Terraform code for managing the infrastructure for the Droits reporting service.
Automated testing, building and deployment is performed using GitHub Actions with configuration held in
.github/workflows
.
A build and deployment to the development environment is triggered on each push to main
. Docker images are tagged
with the hash of the triggering commit and published to AWS Elastic Container Registry. Images built and deployed to
for the development environment are ephemeral and not used anywhere else.
A build and deployment to the staging environment is triggered on a manual release set to "pre-release". Docker images are tagged with the hash of the triggering commit and published to AWS Elastic Container Registry. Images built and deployed to for the staging environment are ephemeral and not used anywhere else.
A build and deployment to the production environment is triggered on a manual release set to "release". Docker images are tagged with the hash of the triggering commit and published to AWS Elastic Container Registry. Images built and deployed to for the production environment are ephemeral and not used anywhere else.
Secrets are set in the Repository and injected during deployment.
Unless stated otherwise, the codebase is released under the MIT License. This covers both the codebase and any sample code in the documentation.
The documentation is © Crown copyright and available under the terms of the Open Government 3.0 licence.