Build Status

Hub of All Things

This repository contains an implementation of the Hub-of-All-Things HAT Microserver project.

Releases

The current project version is 2.6.9: HAT 2.6.9.

About the project

The Hub-of-All-Things is a HAT Microserver for individuals to own, control and share their data.

A Personal Microserver (“the HAT”) is a personal single tenant (“the individual self”) technology system that is fully individual self-service, to enable an individual to define a full set of “meta-data” defined as a specific set of personal data, personal preferences and personal behaviour events.

The HAT enables individuals to share the correct information (quality and quantity), with the correct people, in the correct situations for the correct purposes and to gain the benefits.

Technology stack

This HAT Microserver implementation is written in Scala (2.12.11) uses the following technology stack:

Running the project - Either via docker-compose (recommended) or building locally

1. Get the Source and the submodules for both of the methods

> git clone https://github.com/Hub-of-all-Things/HAT2.0.git
> cd HAT2.0
> git submodule init 
> git submodule update

2. Configure your /etc/hosts

127.0.0.1   bobtheplumber.hat.org
127.0.0.1   bobtheplumber.example.com

3a. Using docker-compose

> cd <DIRECTORY_YOU_CHECKED_OUT_INTO>/deployment/docker
> docker-compose up

When the build finishes, open https://bobtheplumber.example.com:9001 in a browser. Standard account login password is testing.

3b. Building locally

HAT Setup

HAT runs as a combination of a backing PostgreSQL database (with a public schema for flattened data storage) and a software stack that provides logic to work with the schema using HTTP APIs.

To run it from source in a development environment two sets of tools are required:

To launch the HAT, follow these steps:

  1. Create the database, which we assume is available as localhost:
    > createdb testhatdb1
    > createuser testhatdb1
    > psql postgres -c "GRANT CREATE ON DATABASE testhatdb1 TO testhatdb1"
  2. Compile the project:
    > make dev
  3. Add custom local domain mapping to your /etc/hosts file. This will make sure when you go to the defined address from your machine you will be pointed back to your own machine. E.g.:
    127.0.0.1   bobtheplumber.hat.org
    127.0.0.1   bobtheplumber.example.com
  4. Run the project:
    > make run-dev
  5. Go to http://bobtheplumber.example.com:9000

You're all set!

Customising your development environment

Your best source of information on how the development environment could be customised is the hat/conf/dev.conf configuration file. Make sure you run the project locally with the configuration enabled (using the steps above) or it will just show you the message that the HAT could not be found.

Among other things, the configuration includes:

Specifically, it has 4 major sections:

Using docker-compose

We have put together a docker-compose file that will allow you to run a PostgreSQL node and a HAT node easily.

Get the Source and the submodules

> git clone https://github.com/Hub-of-all-Things/HAT2.0.git
> cd HAT2.0
> git submodule init 
> git submodule update
> cd deployment/docker
> docker-compose up
> open [https://bobtheplumber.example:9001](https://bobtheplumber.example:9001)

Additional information

License

HAT including HAT Schema and API is licensed under AGPL - GNU AFFERO GENERAL PUBLIC LICENSE