IRCafe is a Java 21 desktop IRC client with a Swing UI and a Spring Boot backend.
- Java 21
From the project root:
./gradlew bootRunThis launches the Swing UI.
./gradlew bootJar
java -jar build/libs/*.jarWhen 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.ymlThe 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"The default application.yml uses these environment variables:
IRCAFE_NICK(defaults toIRCafeUser)IRCAFE_IDENT(defaults toircafe)IRCAFE_REALNAME(defaults toIRCafe User)IRCAFE_SERVER_PASSWORD(no default) — IRCPASS/ server password (useful for ZNC:username:passwordorusername/network:password)IRCAFE_SASL_USERNAME(no default)IRCAFE_SASL_PASSWORD(no default)
You can set them for a single run:
IRCAFE_NICK=myNick ./gradlew bootRunOr 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.
GPL-3.0. See LICENSE.