Giter VIP home page Giter VIP logo

hermes-internal-front-end's Introduction

Hermes Internal Front-End

Purpose

This service aims to provide a web UI to the internal users of Hermes.

Note that Hermes is an educational project.

External Dependencies

To be fully operational, this service requires:

  • A Keycloak instance (and more specifically - our customized hermes-keycloak image) to handle authentication / authorization.
  • A hermes-backend instance to handle appointment applications.

Environmental Variables

  • HERMES_BACKEND_URL (required) : An IP or FQDN that points to the backend instance.
  • KEYCLOAK_AUTH_SERVER_URL (required): An IP or FQDN that points to the Keycloak instance. Note that it must be publicly accessible as users will be redirected there to login.
  • KEYCLOAK_CREDENTIALS_SECRET (required): For security reasons, this client requires a secret to initiate login protocol. This secret is provided by Keycloak.
  • KEYCLOAK_ADMIN_CLIENTID (required): The client id of a Keycloak client that has realm-management service account client roles and will be used to manage some resources of the server where a user does not have access. Note that this service account must have administrative privileges.
  • KEYCLOAK_ADMIN_CLIENTSECRET (required): The secret of the service account client.

Testing

This project does not have any unit, integration, or E2E tests yet.

Observability

This service exposes some basic health check endpoints backed by Spring Boot Actuator:

Docker

You can create a HEALTHCHECK by using the endpoint http://localhost:9001/actuator/health :

HEALTHCHECK --interval=5s --timeout=20s \
  CMD curl -f http://localhost:9001/actuator/health || exit 1

Kubernetes

Spring Boot Actuator detects when an app is deployed on Kubernetes, and when it does, it exposes 2 additional endpoints which support the readiness and liveness probes in Kubernetes.

Add the following lines to your kubernetes resource file:

livenessProbe:
  httpGet:
    path: /actuator/health/liveness
    port: 9001
  initialDelaySeconds: 20
  periodSeconds: 5
readinessProbe:
  httpGet:
    path: /actuator/health/readiness
    port: 9001
  initialDelaySeconds: 20
  periodSeconds: 5

Please note that on both cases, port 9001 must not be exposed to the public internet.

Deployment Options

There are 2 deployment options:

  • A docker-compose.yaml file can be found here. It will deploy the whole application along with the backend.

  • Kubernetes manifest files can also be found under /k8s.

Documentation (in Greek)

You may find more detailed documentation (in Greek) regarding this project here.

Contributors

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.