Deploying Conduwuit with Docker

This guide covers deploying Conduwuit using Docker and Docker Compose, with several options for reverse proxy configurations.

Container Images

Official Conduwuit images are available from GitHub's container registry:

ImageNotes
ghcr.io/girlbossceo/conduwuit:latestStable releases, recommended for production
ghcr.io/girlbossceo/conduwuit:mainLatest features, suitable for personal servers

While the :latest tag is recommended for production use, the :main tag provides access to the latest features and fixes. The main branch undergoes significant testing before changes are merged, making it reliable for personal use while not necessarily "stable" for production environments.

Quick Start

The simplest way to run Conduwuit is with a basic Docker command:

docker run -d -p 8448:6167 \
    -v db:/var/lib/conduwuit/ \
    -e CONDUWUIT_SERVER_NAME="your.server.name" \
    -e CONDUWUIT_ALLOW_REGISTRATION=false \
    --name conduwuit ghcr.io/girlbossceo/conduwuit:latest

However, for production deployments, we recommend using Docker Compose for better maintainability.

Docker Compose Deployment

We provide two main deployment patterns, depending on how you want to connect to your reverse proxy:

TCP Port Configuration

This configuration exposes Conduwuit on a TCP port, suitable for when your reverse proxy is on a different host or when using Kubernetes:

version: '3.8'

services:
  conduwuit:
    cpus: 3
    image: ghcr.io/girlbossceo/conduwuit:latest
    environment:
      CONDUWUIT_CONFIG: '/var/lib/conduwuit/conduwuit.toml'
    mem_limit: 4G
    ports:
      - "6167:6167"
    restart: unless-stopped
    volumes:
      - ./data:/var/lib/conduwuit

Unix Socket Configuration

This configuration uses Unix sockets for improved performance when your reverse proxy is on the same host:

version: '3.8'

services:
  conduwuit:
    cpus: 3
    image: ghcr.io/girlbossceo/conduwuit:latest
    environment:
      CONDUWUIT_CONFIG: '/var/lib/conduwuit/conduwuit.toml'
    mem_limit: 4G
    restart: unless-stopped
    volumes:
      - ./data:/var/lib/conduwuit
      - /run/conduwuit:/run/conduwuit

For both configurations, create a configuration file in the data directory:

curl -o data/conduwuit.toml https://raw.githubusercontent.com/girlbossceo/conduwuit/main/conduwuit-example.toml

See the configuration guide for more information on configuring Conduwuit, and the reverse proxy guide for more information on how to set up a reverse proxy to handle inbound connections to the server.

Starting the Server

Once you've chosen and configured your setup:

# Start the services
docker compose up -d

# View the logs
docker compose logs -f