# Getting Started | EchoHub Documentation

# Getting Started

## Install the Client

### Windows (Chocolatey)

    choco install echohub

### Linux / macOS

    curl -sSfL https://raw.githubusercontent.com/HueByte/EchoHub/master/scripts/install.sh | sh

To install a specific version or to a custom directory:

    curl -sSfL .../install.sh | sh -s -- --version 0.2.14
    curl -sSfL .../install.sh | sh -s -- --install-dir /opt/echohub

### Manual Download

Grab a self-contained binary from Releases -- no runtime needed.

## Host a Server

### Docker

The quickest way to host a server:

    cp .env.example .env
    docker compose up -d

See the Docker guide for configuration, pre-built images, and more.

### From Source

    dotnet run --project src/EchoHub.Server

Requires .NET 10 SDK.

On first run, the server automatically:

1. Creates `appsettings.json` from the example config
2. Generates a secure JWT secret
3. Creates the SQLite database with a `#general` channel

## Usage

After installing the client, run `echohub` (or `dotnet run --project src/EchoHub.Client` from source). Connect to a server, register an account, and start chatting.

## Connect via IRC

Enable the IRC gateway in the server's `appsettings.json`:

    {
      "Irc": {
        "Enabled": true,
        "Port": 6667
      }
    }

Then connect with any standard IRC client:

    irssi -c localhost -p 6667 -w <password> -n <username>

Your nick is your EchoHub username and the server password is your account password (`PASS`/`NICK`/`USER` or SASL PLAIN). Connecting with a new username registers the account. Messages flow bidirectionally between IRC and TUI clients.

For TLS, set `TlsEnabled: true`, `TlsPort: 6697`, and provide a PKCS#12 certificate path.

See the IRC Gateway guide for command mapping, attachment rendering, and limitations, or Architecture for how the gateway integrates with the chat service.

## Configuration

Server configuration is in `appsettings.json` (auto-generated on first run). You can also use environment variables or command-line arguments to override settings.

See the Configuration guide for the full reference and how it all works.

## Build from Source

    dotnet build src/EchoHub.slnx