Quarkus Banner

Generate a FIGlet ASCII-art startup banner for your Quarkus application — rendered at build time from a piece of text and a font, and shown at start-up the same way Quarkus renders its own banner.

  __  __         ____                  _
 |  \/  |_   _  / ___|  ___ _ ____   _(_) ___ ___
 | |\/| | | | | \___ \ / _ \ '__\ \ / / |/ __/ _ \
 | |  | | |_| |  ___) |  __/ |   \ V /| | (_|  __/
 |_|  |_|\__, | |____/ \___|_|    \_/ |_|\___\___|
         |___/

                         Powered by Quarkus 3.x.x

How it works

At build time the extension renders your text into ASCII art with one of the ~250 bundled FIGlet fonts and installs it as a TextBannerFormatter on the console log handler — the exact mechanism Quarkus uses for its own banner. This means:

  • the banner appears as a header above the log output and honours your console format and colour settings;

  • Quarkus' built-in banner is replaced automatically (you do not need to set quarkus.banner.enabled=false);

  • if generation is disabled, or the text cannot be rendered, the default Quarkus banner is left untouched.

Unlike Quarkus' own banner, the generated banner is also shown when running tests.

Because the banner is baked at build time, changing the text or font requires a rebuild (or a live-reload in dev mode).

Installation

To use this extension, add the io.quarkiverse.quarkus-banner:quarkus-banner dependency to your build file.

With Maven, add the following to your pom.xml:

<dependency>
    <groupId>io.quarkiverse.quarkus-banner</groupId>
    <artifactId>quarkus-banner</artifactId>
    <version>1.0.0</version>
</dependency>

With Gradle, add the following to your build.gradle:

implementation("io.quarkiverse.quarkus-banner:quarkus-banner:1.0.0")

Usage

Configure the banner in your application.properties:

# The text to render (defaults to quarkus.application.name, or "Quarkus")
quarkus.banner-generator.text=My Service

# One of the bundled fonts (defaults to "standard")
quarkus.banner-generator.font=doom

The available configuration properties are listed in the Configuration Reference. All of them are fixed at build time.

Fonts

quarkus.banner-generator.font must be one of the 246 FIGlet fonts bundled with, and tested against, this extension — for example standard, slant, doom, big, colossal, banner3-D or 3d_diagonal. The value is matched to a font by name, case-insensitively.

Only bundled fonts are accepted; arbitrary classpath resources, file paths and remote URLs are intentionally not supported, and an unknown font name is reported as an error at build time, so typos are caught immediately.

The full list of bundled fonts and their authors is in the FIGLET-FONTS.md file at the root of the repository.

The bundled fonts originate from the FIGlet font collection and are authored by many individuals under varied terms. Each font’s original header (including author credit) is preserved in the .flf file; they are redistributed on that basis and are not relicensed under this extension’s Apache-2.0 license. Review individual font headers before redistributing.

Dev mode

Quarkus' interactive dev console (quarkus:dev) repaints its pinned prompt and can erase the start-up banner on narrow terminals. This affects Quarkus' own banner too, not just this extension.

If you want the banner to survive in dev mode regardless of terminal width, use the basic console for the dev profile only:

%dev.quarkus.console.basic=true

This has no effect in production — the interactive console only runs in dev and test modes.