Skip to content

wodencafe/ircafe

Repository files navigation

IRCafe

IRCafe is a Java 21 desktop IRC client with a Swing UI and a Spring Boot backend.

Screenshot_20260123_141509

Requirements

  • Java 21

Run from source

From the project root:

./gradlew bootRun

This launches the Swing UI.

Build a runnable jar

./gradlew bootJar
java -jar build/libs/*.jar

Configuration

Runtime configuration (preferred)

When running IRCafe as a packaged jar, edit the runtime config file (loaded on startup and overrides the defaults in application.yml):

  • Default path: ~/.config/ircafe/ircafe.yml (i.e. ${user.home}/.config/ircafe/ircafe.yml)

To use a different location, set ircafe.runtime-config (environment variable: IRCAFE_RUNTIME_CONFIG) or pass it on the command line:

IRCAFE_RUNTIME_CONFIG=/path/to/ircafe.yml java -jar build/libs/ircafe-*.jar
# or:
java -jar build/libs/ircafe-*.jar --ircafe.runtime-config=/path/to/ircafe.yml

The IRC settings use the prefix irc.server.

Example:

irc:
  server:
    host: "irc.libera.chat"
    port: 6697
    tls: true

    # Optional: IRC PASS / server password (commonly needed for bouncers like ZNC)
    # ZNC examples: "username:password" or "username/network:password"
    serverPassword: "${IRCAFE_SERVER_PASSWORD:}"

    nick: "${IRCAFE_NICK:IRCafeUser}"
    login: "${IRCAFE_IDENT:ircafe}"
    realName: "${IRCAFE_REALNAME:IRCafe User}"

    sasl:
      enabled: false
      username: "${IRCAFE_SASL_USERNAME:}"
      password: "${IRCAFE_SASL_PASSWORD:}"
      mechanism: "PLAIN"

    autoJoin:
      - "#test"

Environment variables

The default application.yml uses these environment variables:

  • IRCAFE_NICK (defaults to IRCafeUser)
  • IRCAFE_IDENT (defaults to ircafe)
  • IRCAFE_REALNAME (defaults to IRCafe User)
  • IRCAFE_SERVER_PASSWORD (no default) — IRC PASS / server password (useful for ZNC: username:password or username/network:password)
  • IRCAFE_SASL_USERNAME (no default)
  • IRCAFE_SASL_PASSWORD (no default)

You can set them for a single run:

IRCAFE_NICK=myNick ./gradlew bootRun

Or export them in your shell:

export IRCAFE_NICK=myNick
export IRCAFE_IDENT=myIdent
export IRCAFE_REALNAME="My IRC Client"

To enable SASL, set irc.server.sasl.enabled: true in application.yml and set IRCAFE_SASL_USERNAME and IRCAFE_SASL_PASSWORD.

License

GPL-3.0. See LICENSE.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages