Simple Slack chatbot that responds to predefined commands.
You must have docker and docker-compose installed.
Meowbot is configured to use Nginx as a reverse-proxy with uWSGI.
- Instructions available at https://github.com/nginx-proxy/nginx-proxy
- Meowbot expects that this runs on a Docker network named
nginx-proxy
You'll also need an existing Slack workspace to connect to meowbot. Create one here.
Create a new Slack app at https://api.slack.com/app.
- Go to
Features → Event Subscriptions
- Enable events for
https://$(MEOWBOT_HOST)/meow
- Subscribe to the following Bot Events:
message.channels
- A message was posted to a channelmessage.groups
- A message was posted to a private channelmessage.im
- A message was posted in a direct message channelmessage.mpim
- A message was posted in a multiparty direct message channelreaction_added
- A member has added an emoji reaction to an item
- Enable events for
- Go to
Features → App Home
- Create a bot user with display name and username
meowbot
- Create a bot user with display name and username
- Go to
Features → OAuth & Permissions
- Add a Redirect URL for
https://$(MEOWBOT_HOST)/authorize
- Under Scopes, add the scope
bot
- Note: this scope is deprecated. Instructions for granular permissions will be added in the future
- Add a Redirect URL for
- Go to
Settings → Basic Information
- You'll need the Client ID, Client Secret, and Signing Secret for the next step
Update config.yaml
- Get
signing_secret
,client_id
andclient_secret
from the Slack Setup above - Sign up for the free APIs listed and paste in your API keys
- Set your
default_zip_code
- This will be used for commands such as
weather
andairquality
when no location is specified
- This will be used for commands such as
- Set your
admin_username
andadmin_password
- Currently only used for viewing the RQ Dashboard
- Set the
default_tv_channel
- Must be one of the keys in channels.json
Update .env
- Change
MEOWBOT_HOST
to the hostname you would like to use for meowbot.
[optional] Update channels.json
- Add your favorite live YouTube streams or other videos
- Full-screen embedded players work best
Start meowbot by running:
docker-compose up -d
Stop it by running:
docker-compose down
- Flask - Python web app framework
- Redis - In-memory data structure store
- RQ (Redis Queue) - Python task queue library
- uWSGI - WSGI server
- Docker / Docker Compose - Multi-container platform
- TheCatAPI - Cats as a Service
- Petfinder - Pet adoption database
- Dark Sky - Weather conditions & forecasts
- AirNow - Air quality information
- Nominatim - OpenStreetMap geocoder
- Strava - Social fitness tracker
- Peter Huss - pbhuss
See also the list of contributors who participated in this project.
This project is licensed under the MIT License - see LICENSE.md for details.