You: Want to make a bot for Slack and would like to host it somewhere outside your computer. Perhaps you gave our Getting Started guide a go and now you want to upload your existing bot and run it remotely to better share it with others. If only there was some easy-peasy hosting for Slack 🤖 !
Me: Knows a great option that's super straightforward and should get you up and running ridiculously fast.
So! Let's talk about a service called Beep Boop and how it can help you achieve exactly that.
In this tutorial, we'll walk through the steps to create a Beep Boop account, clone a bot from your GitHub account, deploy it, and connect it to Slack using Beep Boop's conversational interface.
As usual, if you've read D.E. Goodman-Wilson's Easy-Peasy Bot tutorial, some of what follows might look familiar — but there are some small considerations you'll want to pay attention to so that everything goes smoothly.
Running your bot directly from your computer is cool and all but is not always the most convenient option. Having the reliability of a hosting platform means less downtime and ease of mind.
Plus, Beep Boop works by integrating with GitHub, where your code can be stored and others can contribute. This means that any changes made to the master branch of your repository will automatically be deployed to your server: fewer steps = more time for real tinkering.
First thing first, let's go to Beep Boop HQ and sign up. You'll see a big green Make a Bot button on the landing page. Clicky-clicky.
To sign up with Beep Boop we'll need to use either a Twitter, Facebook or GitHub account. I'd recommend doing it with GitHub — we're gonna need a GitHub repository to work with Beep Boop anyway, so if you don't have an account there you may as well start by opening one.
After inputting your GitHub credentials, you'll be asked to give permission to Beep Boop to access your GitHub Public Data so you can login with this account from now on.
Once you provide some basic profile details (like your name and email address) — boom! Your account will be created and you're ready to...
...this time for real. I swear. Let's click through here and then go on to Getting Started.
You'll need to Grant Public Access or Private Access to Github again so Beep Boop can access your repository and push the files to its servers.
We're going to work with a Public Repository since we're assuming you're working on a free Github account, so let's Grant Public Access and Authorize Application. Bots are tied to your repos and are built on pushes to the master branch.
To interact with @beepboop, Beep Boop's helpful setup bot, you'll need to join the BeepBoopHQ Slack Team, and this is the second step. You'll receive an invitation in the email associated with your Beep Boop account just like any other Slack team invitation. Accept that and create an account with the BeepBoopHQ's Slack team.
Here's where Beep Boop shines — through its conversational interface. As soon as you join the Beep Boop HQ team, you'll get a direct message from @beepboop.
If you respond "yes" to @beepboop, it will walk you through the on-boarding process of creating a bot. If you say no, you'll have the opportunity to clone a bot in already existing repo.
Let's say "no" and create a bot from an existing repo instead, like the one we've used for the Easy Peasy Bots: Getting Started guide.
Remember, the repo must be under the GitHub account you Granted Access to and on the master branch.
After @beepboop is done creating your bot project, jump to the GitHub repo and change the Bot's name under the
bot.yml file to whatever you prefer so you can do an initial commit. Now the magic happens — this commit will be immediately deployed to Beep Boop ✨
Pretty straightforward, huh? It seems like a lot of steps but Beep Boop saves you tons of time. The best is yet to come.
It's time to create your bot on the Slack side and connect it to Beep Boop. We could go to https://beepboophq.com, find your newly created bot project, and click on Launch Bot. However, this is targeted to developers that are building private bots for their own Slack team. Instead, we'll create a Slack App so that you can share your bot with other Slack teams
In the same Bot Project page, instead of clicking on Launch Bot, let's scroll down to Enable Add To Slack and enable this option first. Beep Boop will generate an App Name, Redirect URI, and redirect instructions
In a different browser tab/window, head to Slack's New Application page and copy the app details that Beep Boop previously generated, pasting them into the Slack Application's configuration page.
After creating the application, scroll down on the next screen to add a bot user to your app.
Finally, back up to the top and copy the Client ID and Client Secret from Slack to the corresponding fields in your Beep Boop configuration page, and then save your project.
Now we can launch our bot. Click on that Launch Bot button that we avoided before and you'll be presented with your own Slack Button.
Click on the Add to Slack button, select your Slack team, authorize the app, and brace yourself for you bot to come alive! 🤖 🚀
You'll notice that @beepboop will notify you on the Beep Boop HQ team that the bot has been successfully launched.
You should now find your bot active on the team's sidebar. Drop by and say "Hi" to it. Well done! 👋
You've done beautifully. You got your first bot online in a remote server with Beep Boop's help and connected it to your Slack team.
Perhaps try more complex conversations or requests to external services that other teams may find useful.
Remember that every push to your master branch will be immediately deployed to the teams where your bot is installed. This is really useful but you also may want to make sure your code is working before making any definite changes here.
Beep Boop is one of the easiest ways to host your Slack bots but there are many others that may suit different needs or that you simply may feel more comfortable with.
In an upcoming article we'll be looking into Digital Ocean, a powerful alternative to set up your own cloud server real fast that offers much more versatility when hosting and running your bot and other integrations.