Liking cljdoc? Tell your friends :D

Yetibot on Docker

The official Yetibot image is yetibot/yetibot. It's built on the official Clojure image.

Configuration

Configuration can be specified as env vars or passed in via a mounted volume. See CONFIGURATION docs for more info.

Ports

Yetibot runs a webapp on port 3000. You may optionally expose it via -P or -p to choose your own host port mapping.

Running

The most minimal incantation to run a Yetibot is:

docker run -it --rm -e YB_ADAPTERS_IRC_TYPE="irc" yetibot/yetibot

This will join Freenode with a username like yetibot_$rand where $rand is a random number between 0 and 1000. Watch the logs to see which was assigned. Once it's connected, join freenode and:

/msg yetibot_$rand !echo i'm alive!

To start up Yetibot in detached mode with port 3000 mapped, IRC with SSL, and a PostgreSQL connection string, you could use:

docker run --name yetibot \
  -d -p 3000:3000 \
  -e YB_ADAPTERS_IRC_TYPE="irc" \
  -e YB_ADAPTERS_IRC_HOST="chat.freenode.net" \
  -e YB_ADAPTERS_IRC_PORT="7070" \
  -e YB_ADAPTERS_IRC_SSL="true" \
  -e YB_ADAPTERS_IRC_USERNAME="yetibot_`whoami`" \
  -e YB_DB_URL="postgresql://localhost:5432/yetibot" \
  yetibot/yetibot

Note, if you're using Docker Machine, you can view the webapp at its IP rather than localhost.

Tail its logs:

docker logs -f yetibot

Mostly configured "oneliner"

A more complete example (though some config is still omitted):

docker run -d -p 80:3000 \
  --restart "always" \
  -e YB_ADAPTERS_IRC_USERNAME "yetibot" \
  -e YETIBOT_ADAPTERS_SLACK_TYPE "slack" \
  -e YETIBOT_ADAPTERS_SLACK_TOKEN "xoxb-123123" \
  -e YB_DB_URL="postgresql://localhost:5432/yetibot" \
  -e YETIBOT_URL "http://..." \
  -e YETIBOT_GIPHY_KEY "" \
  -e YETIBOT_IMGFLIP_USERNAME "" \
  -e YETIBOT_IMGFLIP_PASSWORD "" \
  -e YETIBOT_EBAY_APPID "" \
  -e YETIBOT_TWITTER_CONSUMER_KEY "" \
  -e YETIBOT_TWITTER_CONSUMER_SECRET "" \
  -e YETIBOT_TWITTER_TOKEN "" \
  -e YETIBOT_TWITTER_SECRET "" \
  -e YETIBOT_TWITTER_SEARCH_LANG "" \
  -e YETIBOT_BING_SEARCH_KEY "" \
  -e YETIBOT_GOOGLE_API_KEY "" \
  -e YETIBOT_GOOGLE_CUSTOM_SEARCH_ENGINE_ID "" \
  -e YETIBOT_GOOGLE_OPTIONS_SAFE "" \
  -e YETIBOT_EVAL_PRIV_0 "" \
  -e YETIBOT_FEATURES_GITHUB_REPO "" \
  -e YETIBOT_FEATURES_GITHUB_TOKEN "" \
  -e YETIBOT_FEATURES_GITHUB_USER "" \
  -e YETIBOT_WEATHER_WUNDERGROUND_KEY "" \
  -e YETIBOT_WEATHER_WUNDERGROUND_DEFAULT_ZIP "" \
  -e YETIBOT_WOLFRAM_APPID "" \
  -e YETIBOT_WORDNIK_KEY "" \
  yetibot/yetibot

Yetibot can also be configured via an EDN config file instead of env. For full config options see the CONFIGURATION docs.

Troubleshooting

To run an ephemeral interactive shell and poke around instead of running Yetibot:

docker run --rm -it --name yetibot \
  -e YETIBOT_LOG_LEVEL="trace" \
  -e YETIBOT_ADAPTERS_IRC_TYPE="irc" \
  -e YETIBOT_ADAPTERS_IRC_HOST="chat.freenode.net" \
  -e YETIBOT_ADAPTERS_IRC_PORT="7070" \
  -e YETIBOT_ADAPTERS_IRC_SSL="true" \
  -e YETIBOT_ADAPTERS_IRC_USERNAME="yetibot_`whoami`" \
  yetibot/yetibot \
  /bin/bash

Can you improve this documentation?Edit on GitHub

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close