The Session Service is a Quarkus-based backend application that facilitates session management for the Food2Gether platform. It provides RESTful APIs to handle sessions and orders efficiently using Hibernate ORM, Panache repositories, and other Quarkus features.
- Java 17+
- Maven 3.9+
- Docker (optional, for containerized development or for running quarkus in dev mode)
- Kubernetes (optional, for local cluster testing)
Run the application in development mode:
./mvnw quarkus:devAccess the DevUI at http://localhost:8080/q/dev/
The API will be available at http://localhost:8080/api/v1/sessions
- Build the Quarkus application:
./mvnw package
- Build and tag the Docker image:
docker build -f src/main/docker/Dockerfile.jvm -t ghcr.io/food2gether/session-service:jvm . - Run the container:
docker run -i --rm -p 8080:8080 ghcr.io/food2gether/session-service:jvm
- Build the Quarkus application:
./mvnw package -Pnative -Dquarkus.native.container-build=true
- Build and tag the Docker image:
docker build -f src/main/docker/Dockerfile -t ghcr.io/food2gether/session-service . - Run the container:
docker run -i --rm -p 8080:8080 ghcr.io/food2gether/session-service
- Ensure you have
kubectlandkustomizeinstalled. - Deploy to Kubernetes:
kubectl apply -k k8s/deploy
- Verify the deployment:
kubectl get pods -n food2gether
- Expose the service:
kubectl port-forward service/session-service 8080:80 -n food2gether
- Access the API at http://localhost:8080/api/v1/sessions
For more details, refer to the Quarkus documentation.