--- 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 ```