Skip to content

Self-Hosting Guide

This guide will walk you through the process of self-hosting the Community Signal Moderation Bot.

  • Docker and Docker Compose
  • A registered domain name (optional, but recommended for production)
  • A phone number for the bot
Terminal window
git clone https://github.com/your-username/Community-Signal-Moderation-Bot.git
cd Community-Signal-Moderation-Bot

Copy the .env.example file to .env:

Terminal window
cp .env.example .env

Now, open the .env file and fill in the required environment variables. Refer to the compose.yml file for a complete list of environment variables.

Important: You must set the BOT_NUMBER and SIGNAL_CLI_CONFIG_PATH variables.

VariableDescriptionDefault
COMMUNITY_DOMAINSComma-separated list of community domains to skip in auto-scraper. URLs from these domains won’t be auto-archived or processed.irregularpedia.org,irregularchat.com,irregular.chat,forum.irregularchat.com
MINIO_ENDPOINTInternal MinIO API endpoint-
MINIO_ACCESS_KEYMinIO access key-
MINIO_SECRET_KEYMinIO secret key-
MINIO_BUCKETMinIO bucket nameirregularchat
MINIO_PUBLIC_URLPublic URL for presigned links-
SHLINK_API_URLShlink URL shortener API endpoint-
SHLINK_API_KEYShlink API key-
SHLINK_PUBLIC_URLPublic base URL for shortened links-

Example COMMUNITY_DOMAINS configuration:

Terminal window
COMMUNITY_DOMAINS=irregularpedia.org,irregularchat.com,irregular.chat,forum.irregularchat.com,s3.irregular.chat,outline.irregularchat.com,wiki.irregularchat.com

Before you can use the bot, you need to register its phone number with Signal. You can do this using the signal-cli command-line tool.

First, build the signal-cli container:

Terminal window
docker compose build signal-cli

Then, run the registration command:

Terminal window
docker compose run signal-cli register --voice --number <YOUR_BOT_NUMBER>

Replace <YOUR_BOT_NUMBER> with the phone number you want to use for the bot. You will be prompted to enter the verification code you receive on your phone.

Once you have registered the bot, you can deploy the entire stack using the deploy.sh script:

Terminal window
./deploy.sh

This will start all the services defined in the compose.yml file, including the bot, the database, and the Redis cache.

You can check the logs of the bot to make sure it is running correctly:

Terminal window
docker compose logs -f signal-bot

You should see a message indicating that the bot has connected to the Signal network.

You can now start sending messages to the bot’s phone number.