Skip to content

Shirakumo/ex-lichat

Repository files navigation

# ExLichat
This is an implementation of a "Lichat"(https://shirakumo.github.io/lichat) server in Elixir, providing a very robust, scalable, and extensible chat server implementation.

## Running a Development Server
Setting up a Lichat server is very simple.

::
pacman -S elixir
git clone https://github.com/shirakumo/ex-lichat
cd ex-lichat
mix deps.get
iex -S mix
::

You can configure and override settings from the ''config''(config/runtime.exs) in the ``config/secret.exs`` file.

## Running a Production Server
Download the latest ''release''(https://github.com/shirakumo/ex-lichat/releases/latest) tarball and extract it to somewhere on your server. We highly recommend creating a custom user for it as well. You can then use the ``bin/lichat help`` command to get information about what you can do to the server.

If you use Systemd, the distribution also includes a ``lichat.service`` file for you. It assumes that you created a user called ``lichat`` and that you extracted the release package to their home directory at ``/home/lichat``. You can then install the service to systemd with

::
ln -s /home/lichat/lichat.service /etc/systemd/system/
systemctl --now enable lichat
::

You'll likely also want to change the SSL keys in ``config/`` and configure the server with the ``config/secret.exs`` file. You can reference the ''``config/runtime.exs``''(link config/runtime.exs) file for the available options.

## Supported Extensions
In addition to the core protocol, ExLichat also supports many of the specified extensions:

- shirakumo-backfill
- shirakumo-block
- shirakumo-bridge
- shirakumo-channel-info
- shirakumo-channel-trees
- shirakumo-data
- shirakumo-edit
- shirakumo-emotes
- shirakumo-icon
- shirakumo-ip
- shirakumo-last-read
- shirakumo-link
- shirakumo-pause
- shirakumo-quiet
- shirakumo-reactions
- shirakumo-replies
- shirakumo-search
- shirakumo-server-management
- shirakumo-typing
- shirakumo-user-info