In this tutorial, you’ll learn how to deploy your Converge project to Nest.

<aside> 💡

This guide is intentionally simple - if you are using a more advanced deployment system (e.g. Docker), then send a message in the #converge channel for more help

</aside>

Step 1: Sign up to Nest

First, sign up to Nest - there’s already a great guide for this over at the Nest wiki.

Step 2: Clone and set up your repo

SSH into Nest (see the guide above), and run the following command:

git clone <https://github.com/><yourgithubusername>/<yourreponame>

Then, let’s go into the repo folder:

cd <yourreponame>

The next step is to do things like installing dependencies and adding any required configuration files, like .env. For example, if you are using Bun:

bun install

<aside> 💡

If you aren’t using separate config files for things like Slack API keys, you should. Otherwise someone else can see your secret API keys when they go onto your repo

</aside>

At this point, it’s a good idea to run your start command (e.g. npm run start) to test that the bot is working. If it works, congrats (but you’re not done yet). If it doesn’t, ensure you’re using the correct commands, and if you’re still facing issues, ask in the #converge channel.

Step 3: Create a systemd service

systemd is what we’ll be using to ensure your bot doesn’t go offline when Nest restarts, you log out of the terminal, etc.

It has a lot of functionality which I’d recommend exploring, but this guide will just go into the basics.

First, let’s go into systemd's services folder.

cd ~/.config/systemd/user

<aside> 💡

What’s the ~/ thing?

It means that you’re in your “home directory” - basically the folder that’s for your Nest user.

</aside>

We now need to create a new service file. This will contain instructions on how systemd should start your bot.