Skip to content

Installation

Terminal window
docker run \
-p 6667:6667 -p 6697:6697 -p 8080:8080 -p 8443:8443 \
faelgabriel/elixircd
Terminal window
# Open an interactive Elixir shell connected to the running server
docker exec -it <container_name> ./bin/elixircd remote
# Gracefully stop the server
docker exec -it <container_name> ./bin/elixircd stop

  • Elixir 1.19 or newer
  • Erlang/OTP (compatible with your Elixir version)
  • Git

We recommend using asdf to manage Elixir and Erlang versions.

  1. Install asdf plugins

    Terminal window
    asdf plugin-add erlang
    asdf plugin-add elixir
  2. Clone the repository

    Terminal window
    git clone https://github.com/faelgabriel/elixircd.git
    cd elixircd
  3. Install the correct versions

    The .tool-versions file specifies the required Erlang and Elixir versions:

    Terminal window
    asdf install
  4. Install dependencies

    Terminal window
    mix deps.get
  5. Build a production release

    Terminal window
    APP_VERSION=1.0.0 MIX_ENV=prod mix release
  6. Start the server

    Terminal window
    _build/prod/rel/elixircd/bin/elixircd start

For development and debugging, start in interactive mode:

Terminal window
iex -S mix

This opens an IEx shell with the server running, allowing live interaction.

Terminal window
mix test --cover
Terminal window
mix quality

This runs compilation warnings, formatting, linting (Credo), security analysis (Sobelow), dependency audits, documentation checks, Dialyzer static analysis, and test coverage.


After installation, the server looks for config files in these locations:

FileLocationPurpose
elixircd.exsconfig/elixircd.exs (source) or /app/config/elixircd.exs (Docker)Main server configuration
motd.txtconfig/motd.txt or /app/config/motd.txtMessage of the Day
SSL certificatesdata/cert/ or /app/data/cert/TLS certificate files
PortProtocolPurpose
6667TCPIRC plaintext
6697TLSIRC with SSL/TLS
8080HTTPWebSocket (IRC over WS)
8443HTTPSWebSocket with SSL/TLS
Terminal window
docker build -t elixircd .
docker run -p 6667:6667 -p 6697:6697 -p 8080:8080 -p 8443:8443 elixircd