Installation
Option 1: Docker (Recommended)
Section titled “Option 1: Docker (Recommended)”docker run \ -p 6667:6667 -p 6697:6697 -p 8080:8080 -p 8443:8443 \ faelgabriel/elixircddocker run \ -p 6667:6667 -p 6697:6697 -p 8080:8080 -p 8443:8443 \ -v ./elixircd.exs:/app/config/elixircd.exs \ -v ./motd.txt:/app/config/motd.txt \ faelgabriel/elixircddocker run \ -p 6667:6667 -p 6697:6697 -p 8080:8080 -p 8443:8443 \ -v ./elixircd.exs:/app/config/elixircd.exs \ -v ./cert/:/app/data/cert/ \ faelgabriel/elixircdDocker Remote Commands
Section titled “Docker Remote Commands”# Open an interactive Elixir shell connected to the running serverdocker exec -it <container_name> ./bin/elixircd remote
# Gracefully stop the serverdocker exec -it <container_name> ./bin/elixircd stopOption 2: Building from Source
Section titled “Option 2: Building from Source”Requirements
Section titled “Requirements”- Elixir 1.19 or newer
- Erlang/OTP (compatible with your Elixir version)
- Git
We recommend using asdf to manage Elixir and Erlang versions.
-
Install asdf plugins
Terminal window asdf plugin-add erlangasdf plugin-add elixir -
Clone the repository
Terminal window git clone https://github.com/faelgabriel/elixircd.gitcd elixircd -
Install the correct versions
The
.tool-versionsfile specifies the required Erlang and Elixir versions:Terminal window asdf install -
Install dependencies
Terminal window mix deps.get -
Build a production release
Terminal window APP_VERSION=1.0.0 MIX_ENV=prod mix release -
Start the server
Terminal window _build/prod/rel/elixircd/bin/elixircd start
Development Mode
Section titled “Development Mode”For development and debugging, start in interactive mode:
iex -S mixThis opens an IEx shell with the server running, allowing live interaction.
Running Tests
Section titled “Running Tests”mix test --coverCode Quality Checks
Section titled “Code Quality Checks”mix qualityThis runs compilation warnings, formatting, linting (Credo), security analysis (Sobelow), dependency audits, documentation checks, Dialyzer static analysis, and test coverage.
Configuration Files
Section titled “Configuration Files”After installation, the server looks for config files in these locations:
| File | Location | Purpose |
|---|---|---|
elixircd.exs | config/elixircd.exs (source) or /app/config/elixircd.exs (Docker) | Main server configuration |
motd.txt | config/motd.txt or /app/config/motd.txt | Message of the Day |
| SSL certificates | data/cert/ or /app/data/cert/ | TLS certificate files |
Default Ports
Section titled “Default Ports”| Port | Protocol | Purpose |
|---|---|---|
6667 | TCP | IRC plaintext |
6697 | TLS | IRC with SSL/TLS |
8080 | HTTP | WebSocket (IRC over WS) |
8443 | HTTPS | WebSocket with SSL/TLS |
Building the Docker Image Locally
Section titled “Building the Docker Image Locally”docker build -t elixircd .docker run -p 6667:6667 -p 6697:6697 -p 8080:8080 -p 8443:8443 elixircd