For configuration you simply need to create a single YAML file named
configuration.yaml. When you run opsdroid it will look for the file in the following places in order:
The opsdroid project itself is very simple and requires modules to give it functionality. In your configuration file you must specify the connector, skill and database* modules you wish to use and any options they may require.
Connectors are modules for connecting opsdroid to your specific chat service. Skills are modules which define what actions opsdroid should perform based on different chat messages. Database modules connect opsdroid to your chosen database and allows skills to store information between messages.
Connector modules which are installed and connect opsdroid to a specific chat service.
Config options of the connectors themselves differ between connectors, see the connector documentation for details.
connectors: - name: slack token: "mysecretslacktoken" # conceptual connector - name: twitter oauth_key: "myoauthkey" secret_key: "myoauthsecret"
See module options for installing custom connectors.
Database modules which connect opsdroid to a persistent data storage service.
Skills can store data in opsdroid's "memory", this is a dictionary which can be persisted in an external database.
Config options of the databases themselves differ between databases, see the database documentation for details.
databases: - name: mongo host: "mymongohost.mycompany.com" port: "27017" database: "opsdroid"
See module options for installing custom databases.
Configure logging in opsdroid.
path will configure where opsdroid writes the log file to. This location must be writeable by the user running opsdroid. Setting this to
false will disable log file output.
All python logging levels are available in opsdroid.
level can be set to
You may not want opsdroid to log to the console, for example if you are using the shell connector. However if running in a container you may want exactly that. Setting
false will enable or disable console logging.
logging: path: output.log level: info console: true connectors: - name: shell skills: - name: hello - name: seen
Set the path for opsdroid to use when installing skills. Defaults to the current working directory.
module-path: "/etc/opsdroid/modules" connectors: - name: shell skills: - name: hello - name: seen
Skill modules which add functionality to opsdroid.
Config options of the skills themselves differ between skills, see the skill documentation for details.
skills: - name: hello - name: seen
See module options for installing custom skills.
Configure the REST API in opsdroid.
By default opsdroid will start a web server on port
8080 accessible only to localhost. For more information see the REST API docs.
web: host: '127.0.0.1' # set to '0.0.0.0' to allow all traffic port: 8080
All modules are installed from git repositories. By default if no additional options are specified opsdroid will look for the repository at
However if you wish to install a module from a different location you can specify the some more options.
A git url to install the module from.
connectors: - name: slack token: "mysecretslacktoken" - name: mynewconnector repo: https://github.com/username/myconnector.git
A local path to install the module from.
skills: - name: myawesomeskill path: /home/me/src/opsdroid-skills/myawesomeskill
Or you can specify a single file.
skills: - name: myawesomeskill path: /home/me/src/opsdroid-skills/myawesomeskill/myskill.py
Set this to do a fresh git clone of the module whenever you start opsdroid.
databases: - name: mongodb repo: https://github.com/username/mymongofork.git no-cache: true