Skip to content
/ droits Public

The UK Government service for reporting wreck material to the Maritime and Coastguard Agency

Notifications You must be signed in to change notification settings

mcagov/droits

Repository files navigation

CI/CD Pipeline Staging pipeline Production pipeline

Droits reporting service

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:

  1. A public facing frontend.
    • Source code is in the webapp/ directory.
    • Application specific documentation is in the README.
  2. 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.

Architecture

Architecture diagram

Infrastructure-as-code remains the single source-of-truth for Droits infrastructure! Always check terraform/ if unsure.

Local development

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

Getting started

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.

Troubleshooting

  • Instance fails to start: If you ran docker compose up before creating and populating the .env.json and appsettings.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, run HOST_PORT=5002 docker compose up (or alternative port number)

Infrastructure-as-code

The Terraform directory contains the Terraform code for managing the infrastructure for the Droits reporting service.

Deployment

Automated testing, building and deployment is performed using GitHub Actions with configuration held in .github/workflows.

Development environment

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.

Staging environment

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.

Production environment

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

Secrets are set in the Repository and injected during deployment.

License

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.

About

The UK Government service for reporting wreck material to the Maritime and Coastguard Agency

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 12