Git Product home page Git Product logo

opsdroid's Introduction

Opsdroid Logo

An open source chat-ops bot framework

Current version of pypi Build Status Build status codecov BCH compliance Updates Docker Build Docker Image Docker Layers Documentation Status Matrix Chat Gitter Badge Backers on Open Collective Sponsors on Open Collective Open Source Helpers


ChatOps β€’ Why use opsdroid? β€’ Quick Start β€’ Installation Guide β€’ Usage β€’ Contributing β€’ Backers β€’ Sponsers


An open source chat bot framework written in Python. It is designed to be extendable, scalable and simple.

This application is designed to take messages from chat services and execute Python functions (skills) based on their contents. Those functions can be anything you like, from simple conversational responses to running complex tasks. The true power of this project is to act as a glue library to bring the multitude of natural language APIs, chat services and third party APIs together.

Help support opsdroid in one click by pressing Tweet

ChatOps

"ChatOps is an operational paradigm where work that is already happening in the background today is brought into a common chatroom. By doing this, you are unifying the communication about what work should get done with actual history of the work being done." - StackStorm

In this new frontier of DevOps, it is becoming more and more popular to interact with your automation tools via an instant messenger. Opsdroid is a framework to make creating and extending your ChatOps workflows powerful but simple.

Why use opsdroid?

  • It's open source
  • Simple to modify and extend
  • Add your own skills in under 10 lines of Python
  • Easy to install
  • Designed with Docker in mind for simple deployment
  • Configurable with a single YAML file
  • Can connect to multiple chat services simultaneously
  • No coding necessary if using the official modules

Quick start

$ pip3 install opsdroid
$ opsdroid start

Installation Guide

Check out the Getting Started video series on YouTube. The video series demonstrates how to install and configure opsdroid and opsdroid desktop on Ubuntu 16.04. It also demonstrates how to create your own skill in opsdroid

Docker Image

# Pull the container image
$ docker pull opsdroid/opsdroid:latest

# Run the container
$ docker run --rm -it -v /path/to/config_folder:/root/.config/opsdroid opsdroid/opsdroid:latest

Docker Service

# Create the opsdroid config file
$ docker config create OpsdroidConfig /path/to/configuration.yaml

# Create the service
$ docker service create --name opsdroid --config source=OpsdroidConfig,target=/root/.config/opsdroid/configuration.yaml --mount 'type=volume,src=OpsdroidData,dst=/root/.config/opsdroid' opsdroid/opsdroid:latest

Docker Swarm

# Create Directory Structure
β”œβ”€β”€ config
β”‚Β Β  β”œβ”€β”€ configuration.yaml
└── docker-compose.yml
# docker-compose.yml
version: "3.5"

services:

  opsdroid:
    image: opsdroid/opsdroid:latest
    networks:
      - opsdroid
    volumes:
      -  opsdroid:/root/.config/opsdroid
    configs:
      -  source: opsdroid_conf
         target: /root/.config/opsdroid/configuration.yaml
    deploy:
      restart_policy:
        condition: any
        delay: 10s
        max_attempts: 20
        window: 60s

networks:
  opsdroid:
    driver: overlay

configs:
  opsdroid_conf:
    file: ./config/configuration.yaml

volumes:
  opsdroid:
# Deploy to swarm
docker stack deploy --compose-file docker-compose.yml opsdroid

Ubuntu 16.04 LTS

# Update apt-get
$ sudo apt-get update

# Install pip for Python 3 and locales
$ sudo apt-get install python3-pip language-pack-en git

# Ensure pip is up-to-date
$ pip3 install --upgrade pip

# Install opsdroid
$ sudo pip3 install opsdroid

# Run opsdroid
$ opsdroid start

Usage

When running the opsdroid command with no arguments the bot framework will start using the configuration in ~/.opsdroid/configuration.yaml. Beginners should check out the introduction tutorial for information on how to configure opsdroid.

For information on arguments that you can pass to opsdroid run opsdroid --help.

$ opsdroid --help
Usage: opsdroid [OPTIONS] COMMAND [ARGS]...

  Opsdroid is a chat bot framework written in Python.

  It is designed to be extendable, scalable and simple. See
  https://opsdroid.github.io/ for more information.

Options:
  --help             Show this message and exit.

Commands:
  config   Subcommands related to opsdroid configuration.
  logs     Open opsdroid logs with your favorite editor and exits.
  start    Start the opsdroid bot.
  version  Print the version and exit.

Contributing

Contributing to the opsdroid ecosystem is strongly encouraged and every little bit counts! We even send sticker packs to our contributors to say thank you! There are so many ways to contribute to opsdroid:

To get started see the contribution guide.

Do you need help? Do you want to chat? Join our Matrix channel


* databases are optional, however bot memory will not persist between different connectors or system reboots without one

Contributors

This project exists thanks to all the people who contribute. [Contribute].

Backers

Thank you to all our backers! πŸ™ [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

opsdroid's People

Contributors

pyup-bot avatar jacobtomlinson avatar fabiorosado avatar anxodio avatar iobreaker avatar cadair avatar solardrew avatar gtseres avatar jerrykan avatar krishna-kumar456 avatar suprithcs avatar gergelypolonkai avatar jos3p avatar athanikos avatar yash-garg avatar varadgunjal avatar tonyskapunk avatar tarunrkaushik avatar suparnasnair avatar 7wikd avatar jsnow42 avatar andrescidoncha avatar anujgtm1 avatar drmorr0 avatar go8ose avatar limberger avatar jseiser avatar kollyuchka avatar paw39 avatar petri avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.