Skip to content

FAForever/faf-icebreaker

Repository files navigation

faf-icebreaker

The FAF ICE server broker that returns access to TURN and STUN servers both static (self-hosted coturn) and dynamically (Xirsys).

The available environment variables for configuration can be found in src/main/resources/application.yaml. Variables are declared like ${ENV_VARIABLE_NAME:fallback-value}.

This application makes use of the GeoLite2 database to search for the closest Xirsys server according to the users ip address. The file must be present on startup or all requests will fall back to Frankfurt, Germany.

Running the application in dev mode

You can run your application in dev mode that enables live coding using:

./gradlew quarkusDev

NOTE: Quarkus now ships with a Dev UI, which is available in dev mode only at http://localhost:8080/q/dev/.

Packaging and running the application

The application can be packaged using:

./gradlew build

It produces the quarkus-run.jar file in the build/quarkus-app/ directory. Be aware that it’s not an über-jar as the dependencies are copied into the build/quarkus-app/lib/ directory.

The application is now runnable using java -jar build/quarkus-app/quarkus-run.jar.

If you want to build an über-jar, execute the following command:

./gradlew build -Dquarkus.package.type=uber-jar

The application, packaged as an über-jar, is now runnable using java -jar build/*-runner.jar.

Creating a native executable

You can create a native executable using:

./gradlew build -Dquarkus.package.type=native

Or, if you don't have GraalVM installed, you can run the native executable build in a container using:

./gradlew build -Dquarkus.package.type=native -Dquarkus.native.container-build=true

You can then execute your native executable with: ./build/icebreaker-1.0.0-SNAPSHOT-runner

If you want to learn more about building native executables, please consult https://quarkus.io/guides/gradle-tooling.

Related Guides

  • Hibernate ORM with Panache and Kotlin (guide): Define your persistent model in Hibernate ORM with Panache
  • JDBC Driver - MariaDB (guide): Connect to the MariaDB database via JDBC
  • Kotlin (guide): Write your services in Kotlin
  • SmallRye JWT (guide): Secure your applications with JSON Web Token
  • SmallRye Health (guide): Monitor service health

Provided Code

Hibernate ORM

Create your first JPA entity

Related guide section...

Related Hibernate with Panache in Kotlin section...

RESTEasy Reactive

Easily start your Reactive RESTful Web Services

Related guide section...

SmallRye Health

Monitor your application's health using SmallRye Health

Related guide section...