# Infrastructure

## Overview

This page will outline the specifications for the infrastructure. It is very important that a strong infrastructure is used to facilitate better scalability, better developer experience and a better user experience. Most infrastructure will remain inaccessible to the general public. The infrastructure will be split up into different "stacks".

All infrastructure containers will be the official images or will be based off of the official docker images

## Logging/Metrics

### Logging

For logging, the GELF stack will be used (Graylog, elasticsearch, mongodb).

### Metrics

For metric capturing the GIT stack will be used (Grafana, InfluxDB, Telegraf)

## Identity/Authentication

OpenLDAP and Keycloak will be used for both authentication and authorization. Accounts will be created in OpenLDAP and not Keycloak in most cases

## Database

Postgres will be the database of choice for all infrastructure services and application containers. Redis will also be use for caching

## File storage

Minio will be used for storing and retrieving files. It is an S3 complaint file system