Since Charlesbot is a published PyPI package, you have the choice of installing and running it whichever way works for you. If you already have a Docker environment setup, I highly recommend you use that to run your Charlesbot instance. It will make your life a whole lot easier.

The PyPI way is perfectly reasonable, too, should you choose!

Config File

You will first need to create a config.yaml file similar to:

  slackbot_token: 'xoxb-...'

You will also need a valid Slack Bot Token, if you don’t already have one.

For the most up-to-date example, see the config.yaml.example file in the Charlesbot source tree.


By default, Charlesbot does not ship with any useful plugins. You will need to install and enable these plugins separately.

Installation Using PyPI


Base Installation

export CHARLESBOT_SETTINGS_FILE=/path/to/your/config.yaml
pyvenv-3.4 charlesbot-env
charlesbot-env/bin/pip install charlesbot
# charlesbot-env/bin/pip install charlesbot-plugin-xx..

Installation Using Docker


Sample Dockerfile

FROM ubuntu:14.04

# Add the trusty-proposed repo
RUN echo "deb trusty-proposed restricted main multiverse universe" >> /etc/apt/sources.list

# Set up the environment
RUN mkdir /src

# Install python
RUN apt-get update \
  && apt-get install -y g++ git python3 python3-dev libmysqlclient-dev python3.4-venv \
  && apt-get clean autoclean \
  && apt-get autoremove -y --purge \
  && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
  && rm -rf /var/lib/{apt,dpkg,cache,log}/

# Install charlesbot
RUN cd /src \
  && pyvenv-3.4 env \
  && env/bin/pip install charlesbot \
  # && env/bin/pip install charlesbot-plugin-xx... \
  && echo "Installation complete"

ENTRYPOINT ["/src/env/bin/charlesbot"]

Build and run your local docker container

docker build -t local/charlesbot .
docker run \
  -d \
  -e "CHARLESBOT_SETTINGS_FILE=/config.yaml" \
  -v /path/to/your/config.yaml:/config.yaml \
  -v /etc/localtime:/etc/localtime:ro  \
  --name="charlesbot" \