The backend for the Teamgochi project, build with the Quarkus Java Framework.
Explore the docs
The development environment can be started by using the Quarkus CLI,
the .\mvnw.cmd
script (Windows) or the equivalent ./mvnw
(Linux).
quarkus dev
# Maven
./mvnw compile quarkus:dev
.\mvnw.cmd compile quarkus:dev
Run quarkus --help
, ./mvnw quarkus --help
or .\mvnw.cmd quarkus --help
to display help and all available commands.
Read more about the development mode or
about the command line interface in general.
The following table contains all used Quarkus Extensions.
Name | Links | Why? |
---|---|---|
REST | Docs, Info | Create and provide REST services |
REST Jackson | Docs, Info | Jackson serialization (JSON) support for REST extension |
REST Client | Docs, Info | Call REST services, support receiving Server-sent events (SSE) |
REST Client Jackson | Info | Jackson serialization (JSON) support for the REST Client |
Hibernate ORM with Panache | Docs, Info | Domain model persistence for relational databases using the the repository pattern |
JDBC Driver - PostgreSQL | Docs, Info | Connect to the PostreSQL database via JDBC |
JDBC Driver - H2 | Docs, Info | Connect to the H2 database via JDBC |
Container Image Docker | Docs, Info | Build container images of your application using Docker |
OpenID Connect | Docs, Info | Verify Bearer access tokens and authenticate users with Authorization Code Flow |
Keycloak Authorization | Docs, Info | Policy enforcer using Keycloak-managed permissions to control access to protected resources |
SmallRye JWT | Docs, Info | Secure your applications with JSON Web Token |
SmallRye OpenAPI | Docs, Info | Document your REST APIs with OpenAPI - comes with Swagger UI |
Scheduler - tasks | Docs, Info | Schedule jobs and tasks |
The image is build with the quarkus-container-image-docker
extension
using the configuration in src/main/resources/application.properties
.
See the official guide.
To build the image locally, run install
with the prod
profile. Tests can be skipped to minimize the build time.
./mvnw install -DskipTests -Dquarkus.profile=prod
The image can be pushed to the GitHub container registry,
but a login is required. Publishing is enabled by adding the publish
profile.
echo $PERSONAL_ACCESS_TOKEN | docker login ghcr.io -u <USERNAME> --password-stdin
# Build and publish
./mvnw install -Dquarkus.profile=prod,publish