---
hide:

- navigation

---

# Getting Started

!!! abstract "Abstract"

    In this short getting started guide we show the dependencies to run the database repository and perform a small, 
    local, test deployment for quickly trying out the features that the repository offers.

## Requirements

### Hardware

For this small, local, test deployment any modern hardware would suffice, we recommend a machine with at least:

- 8 Cores (can be virtual cores)
- 16GB RAM
- 100GB SSD memory
- Fast internet connection

### Software

Install [:fontawesome-brands-docker: Docker Engine](https://docs.docker.com/engine/install/) for your OS.

## Deployment

We currently maintain 14 images on [Dockerhub](https://hub.docker.com/u/dbrepo).

### Docker

=== ":fontawesome-brands-linux: Linux"

    Download the latest [`docker-compose.yml`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/docker-compose.prod.yml) 
    and [`.env`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/.env.unix.example) 
    
        $ curl -o docker-compose.yml https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/docker-compose.prod.yml
        $ curl -o .env https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/.env.unix.example

    Start the services

        $ docker-compose up -d

[//]: # (=== ":fontawesome-brands-windows: Windows")

[//]: # ()
[//]: # (    Download the latest [`docker-compose.yml`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/docker-compose.prod.yml) )

[//]: # (    and [`.env`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/.env.win.example) )

[//]: # (    )
[//]: # (        $ curl.exe -o docker-compose.yml https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/docker-compose.prod.yml)

[//]: # (        $ curl.exe -o .env https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/.env.win.example)

[//]: # ()
[//]: # (    Start the services)

[//]: # ()
[//]: # (        $ docker-compose up -d)

=== ":fontawesome-brands-apple: macOS"

    Download the latest [`docker-compose.yml`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/docker-compose.prod.yml) 
    and [`.env`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/.env.unix.example) 
    
        $ curl -o docker-compose.yml https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/docker-compose.prod.yml
        $ curl -o .env https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/.env.unix.example

    Start the services

        $ docker-compose up -d

The system is auto-configured for a small, local, test deployment. You need to place the `.env` file in the same
directory as the `docker-compose.yml`.

### Firewall

Make sure the following ports can pass through your firewall from the open Internet `0.0.0.0/0`:

* `80/tcp` for the frontend, will be redirected when a SSL/TLS certificate is installed
* `443/tcp` for the frontend
* `9095/tcp` for the Gateway Service, exposing the HTTP API
* `5672/tcp` for the AMQP API

Activate them both in your virtualization infrastructure and the local firewall on your virtual machine:

```console
firewall-cmd --add-port="{80/tcp,443/tcp,9095/tcp,5672/tcp}" --permanent
firewall-cmd --reload
```

## Development

We invite all open-source developers to help us fixing bugs and introducing features to the source code. Get involved by
sending a mail to Prof. Andreas Rauber and Projektass. Martin Weise. Clone the repository and create a feature branch
from `dev` and implement your changes.

### Software

We develop all packages with the following software requirements:

1. [Java OpenJDK](https://openjdk.java.net/) 11
2. [Maven](https://maven.apache.org/) 3.0.0+
3. [Node.js](https://nodejs.org/en/) 14+
3. [Yarn](https://yarnpkg.com/getting-started/install#nodejs-1610-1) 1.21.0+
4. [Postgres](https://www.postgresql.org/) 12+
5. [MariaDB](https://mariadb.org/) 10+

### Building

For local development you need to install the entities from the metadata database and the general DTOs that are
exchanged between the services by installing the package:

```console
mvn -f ./fda-metadata-db/pom.xml clean install
```

All other services depend on this package. You have to build them later:

```console
mvn -f ./fda-container-service/pom.xml clean package -DskipTests
...
```

Conviniently, you can build them all through [`make`](https://www.gnu.org/software/make/):

```console
make build-backend
```