Skip to content

openownership/register

Repository files navigation

Register

Register is a web app for the Open Ownership Register project.

This repository contains the code which powers https://register.openownership.org, Open Ownership's demonstration of a global beneficial ownership register.

The website uses Ruby on Rails and runs on Heroku.

This README mainly provides instructions for running and maintaining the live website. If you want to reuse the code for other projects, please feel free to contact us on tech@openownership.org and we'd be happy to advise.

Installation

Configure your environment using the example file (e.g. Heroku openownership-register-stg app config, if you have access):

cp .env.example .env

Install and boot:

docker compose up

Wait for the healthchecks to become healthy:

watch docker ps

Visit the app in your browser (for a different port, override WEB_PORT):

http://localhost:14972

Testing

Run the tests:

docker compose exec web test

Development

If you need to run Rails commands (e.g. to get a Rails console), there's no need to prefix with bundle exec or bin/:

docker compose exec web rails c

The app depends on a number of libraries which are included as Ruby gems in Gemfile. If you're working on code spanning multiple repositories, it can be convenient to be able to override the libraries and mount your latest code within the containers. To do so, set the DC_WEB_LIB_* env vars (see .env.example), and restart the services. Note that changes to local gem libraries do not get automatically detected, so if you need them to update, restart the services manually. If you want to restore things to a clean state, simply ensure that DC_WEB_LIB_* are not set, rebuild, and restart the services.

Related repositories

This repository contains only the web app. There are a number of related repositories within this project, including:

Libraries

Ingesters

Transformers

Archived documentation

This project has quite an extensive history, and a lot has changed over that time. Register 1 used MongoDB, and contained most things within a single repository. Register 2 saw extensive rearchitecture, splitting out the data ingestion and transformation into multiple repositories, and moving to Elasticsearch and AWS S3 with read-only access. Because of this, much of the documentation which used to be in this README is no longer relevant, so it has been removed. If you want to read it, you can view archived documentation.