--- title: "Bots Development Environment Setup" slug: "bots-development-environment-setup" tags: ["Deprecated"] updated: 2025-06-03T11:37:50Z published: 2025-06-03T11:37:50Z canonical: "developer.rocket.chat/bots-development-environment-setup" deprecated: true stale: true --- > ## Documentation Index > Fetch the complete documentation index at: https://developer.rocket.chat/llms.txt > Use this file to discover all available pages before exploring further. # Bots Development Environment Setup ![](https://cdn.us.document360.io/27ca1fd4-36d7-4cde-b4eb-97fc1652954c/Images/Documentation/Deprecated.svg) > [!WARNING] > Bots integration has been deprecated. We recommend building with [Apps-Engine](/v1/docs/rocketchat-apps-engine) instead. ## Prerequisites Developing bots on RocketChat requires you to get and customize our boilerplate code. To do that, you need to have the following on your machine. - [Git](http://git-scm.com/book/en/v2/Getting-Started-Installing-Git) - [Node.js](https://nodejs.org) ## Bot configuration Regardless of bot type, the Rocket.Chat SDK requires you to create a configuration with some variables for your environment. This configuration can be stored in a `.env` file, for local development, while in production, they would need to be set on server startup. ### Bot environmental variables The following is a list of all the environmental variables you can use in your project. > [!WARNING] > Variables marked with an asterisk (*) are mandatory. | Environment variable | Description | | --- | --- | | `ROCKETCHAT_URL` * | URL of the Rocket.Chat instance to connect to. Can be specified as `host:port`, `http://host:port` or `https://host:port`. | | `ROCKETCHAT_USE_SSL` | Force bot to connect with SSL. If unset, it will try and detect from URL protocol. | | `ROCKETCHAT_AUTH` | Authorization method for a bot. Default: `password`. Set to `ldap` to enable LDAP login for bot users. | | `ROCKETCHAT_USER` * | The bot's username (account name users will summon the bot with). Must be registered on your Rocket.Chat server and granted `bot` role. | | `ROCKETCHAT_PASSWORD` * | The bot user's password. | | `ROCKETCHAT_ROOM` | Stream callbacks receive messages from the listed channel name/s. Default: `GENERAL`. Accepts a comma-separated list. Allows the bot to listen and respond to messages *from all newly created private groups* where the bot's user has been added as a member. Should be empty if `LISTEN_ON_ALL_PUBLIC=true` | | Responding to channels and DMs | | `RESPOND_TO_LIVECHAT` | Stream callbacks receive messages from Livechat (true/false). Default: `false`. | | `RESPOND_TO_DM` | Stream callbacks receive DMs with bot (true/false). Default: `false`. | | `RESPOND_TO_EDITED` | Stream callbacks receive edited messages (true/false). Default: `false`. | | SDK development | | `ROOM_CACHE_SIZE` | Size of cache (LRU) for room (ID or name) lookups. | | `ROOM_CACHE_MAX_AGE` | Max age of cache for room lookups. | | `DM_ROOM_CACHE_SIZE` | Size of cache for Direct Message room lookups. | | `DM_ROOM_CACHE_MAX_AGE` | Max age of cache for DM lookups. | | `INTEGRATION_ID` | ID applied to message object to integration source. Default: `js.SDK` | | `ADMIN_USERNAME` | Admin user name for API calls used in SDK tests. | | `ADMIN_PASS` | Admin user password for API calls used in SDK tests. | | Hubot specific | | `HUBOT_NAME` | Name of the bot. Hubot listeners can respond to this. | | `HUBOT_ALIAS` | Another name to respond to. If unset, the adapter sets the `ROCKETCHAT_USER` as an alias, to ensure bots respond when addressed using their username. | | `EXTERNAL_SCRIPTS` | Hubot scripts to require as NPM modules. Used only in some Docker instances. | | `HUBOT_LOG_LEVEL` | `debug`, `info`, `warning` or `error`. Default: `info`. | ### Common set of variables The common set for the majority of bots is to listen and respond to direct messages and all new public channels and private groups: - `RESPOND_TO_DM=true` - `ROCKETCHAT_ROOM=''` > Note that you must add the bot's user as a member of a channel before the bot can respond.