I am currently having this Slackbot running on ngrok. It is functioning perfectly now and I would like to deploy it so that it is always available, because for now it only works when I turn my computer on and that is not the actual idea behind my project.
I saw this post with short solution, however I cannot grasp even a tiny bit understanding from it, since I’m a beginner.
Therefore if you know how to solve this, can you please give me a bit more detailed explaination and instruction? I really appreaciate your help!
You could just keep your PC on forever and just let ngrok do its thing. That sounds highly inconvenient, though, doesn’t it?
That’s why there are several services online that let you “rent” computers that do exactly that: stay online forever. Well, not exactly forever, but the general responsibility of keeping these computers up and running as long as possible shifts from you to them. That’s the general idea of cloud computing, really; you’re paying other people to keep their computers on for you. You’ve probably heard of this several times in services like AWS, Google Cloud, and so on.
When we talk of deploying a bot (or any project, really) we’re talking of shifting the code from your personal machine to this rented machine. Aside from being up and online at all times, it can dedicate resources (processing power, RAM, storage space and so on) JUST for your project, because that’s the sole purpose of that rented machine.
The link you saw was for deploying your bot on Heroku, which is, again, a service that lets you rent computers to keep your project running.
It’s worth noting that you don’t literally get a new monitor and keyboard and all that when you rent a machine; in most cases you don’t even get a whole processor to yourself. If you’re curious, look into virtualization, hypervisors and virtual machines. Trust me, they’re not nearly as scary as they sound.
Hi Acey for your very detailed and helpful comment. I am aware of the terminology and currently having a VM running in Ubunutu 18.04, with 12 CPU cores, 64GB RAM and 1TB of HDD (which is enough to host a Rasa bot). However, I just don’t know what to do with it…
What you want to do is to log in to your machine now. How you login to this machine depends on the service provider of your Virtual Machine, but at the end of the day you should have a Terminal that you can run commands inside of.
Copy your project as it is into this VM that you have. You can do this by either pushing your code to a remote git repository then pulling it down while in the machine, or copying the files directly through your SSH client.
Run the app within your VM the same way you would run it on your local machine.
Oh that is interesting! Thank you for a simple solution. However, normally I need to open 2 cmd, one to run “rasa run” for the Core and “rasa run actions” for my Custom Actions. I would like to ask if I should do the same with the VM?
The straightforward answer to that would be yes, but because you have Ubuntu, you can run them both simultaneously by adding an & between your commands.