Skip to content
/ JChad Public

A free, open source and privacy focused chat server hosting solution.

License

Notifications You must be signed in to change notification settings

Randware/JChad

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JChad 🗿

A free and open-source, cross-platform chatting platform where you can host servers yourself. Written in Java.

Features

This project includes three components:

  • The JChad server
  • A client for connecting to a JChad server
  • An installer which can be used to install the newest server or client software

Each of these components can be either run through a graphical user interface or just on the command-line. Simply use the -cl argument on start.

Note

Keep in mind that the client GUI is currently still being worked on.

The main component, the server, includes the following features:

  • An almost entirely configurable server.
  • Full message and communication encryption.
  • Password protected servers.
  • A whitelist and blacklist feature.
  • Multiple chats per server with their own configuration.
  • Anonymous chat functionality, where neither the username nor IP address of clients will be stored.
  • A kick command, live configuration updating, impressive performance, and more!

Installation

Tip

There is an official docker image for the JChad server available. Visit our Docker repository for step-by-step installation instructions.

Keep in mind, that JChad is written in Java. That means you need to have a Java runtime installed on your machine.

The JChad installer makes it easy to install the desired components on your machine! It supports both a graphical and cli installation.

Simply head to the releases page to get it. You can also get the other components as standalone .jar files from there, if desired.

To run in GUI mode, simply double click the .jar file. To run it in the terminal, use the -cl launch argument:

java -jar JChad-server.jar -cl

Build from Source Code

Prerequisites

To build JChad from source, you need to install the following tools:

  • Git (To clone the repository)
  • Maven (To build the project)
  • JDK21 (Using a newer java version may work)

Step-by-Step guide

To build the project follow these steps along in your terminal:

  1. Clone the repository
git clone https://github.com/Randware/JChad
  1. Change to the repository directory
cd ./JChad
  1. Build the desired component of JChad choose between client, server or installer
mvn install -P <client|server|installer>
  1. Change to the target directory where the jar file was built
cd ./target
  1. You are now ready to use JChad
    ENJOY!

  2. (Optional) To open the jar in the terminal:

java -jar JChad-<client|server|installer>.jar -cl

Configuration

Configuring your JChad server instance is easy:

The server will automatically generate all config files with sensible default values when you run it for the first time. They are stored in the same directory the .jar file is in. Most values can be modified during runtime. The server detects changes made in those files, and automatically reloads them. There are some exceptions though, like the "port" and encryption related settings.

There are 2 folders:

  • configs
  • chats

The "configs" folder includes configuration files for the server.

The "server-settings.yml" file stores general server settings, which you are likely to change.

The "internal-settings.yml" file stores values the server uses internally to operate. You don't have to change those, as they are sensible by default, but you can. But be careful, some values could make the server act in unexpected ways.

Additionally, if you enable the "whitelist" or "blacklist" feature in the "server-settings.yml" file, the server will generate separate "whitelisted-ips.yml" and "blacklisted-ips.yml" files. You can put IP addresses in those, to either whitelist or blacklist them.

The "chats" folder stores the chats of a server.

To create a new chat, simply create a folder in this "chats" directory. The server will then load every folder as a seperate chat. This also works when the server is running.

As soon as the server loads a chat from its folder, it will create 2 files inside it:

  • The "config.yml" file
  • The "messages.json" file

The "config.yml" file stores the configuration for this specific chat. It can also be modified during runtime.

The "messages.json" file stores messages and their related data sent by clients. It is not recommended to modify this file, unless you know what you are doing!

TODO: Create table with all configuration values

About JChad

JChad was developed by the Randware organization and licensed under the MIT license.

Feel free to contribute to this project with your own code, or by reporting bugs and issues on our GitHub Issues page.

Note

This project is very new, so expect some bugs and issues. Make sure to report them to us, so we can fix them.

About

A free, open source and privacy focused chat server hosting solution.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages