@Varun-Ganesh-D Do not know jack about Heroku but presuming you have access to a shell account:
- Prep everything on your DO droplet, i.e. install nodejs, nginx, mongo, etc. Use the SAME versions as the Heroku stuff.
- Shut down all the moving parts, e.g. nginx, nodebb, mongodb/redis on the Heroku instance.
- Rsync your DO droplet w/the appropriate dirs on your Heroku instance, e.g. nodebb home, mongo/redis data dirs and /etc/whatever.conf.
- Start up mongo/redis. Watch logs for any errors.
- Start up nodebb. Watch logs for any errors.
- Confirm you are able to access nodebb on e.g. port 4567.
- Restart proxy.
Like most tech stuff, there's more than one way to do it. I presented you with one. Other's mileage may vary.
Note: I have omitted propagating updated DNS pointers but you should also ensure forward and reverse dns records are in order. Once done, you will also need to generate new TLS certificates for the DO droplet. Presuming you have access to auth DNS records:
- Set TTL on existing Heroku stuff to something like 1hr a day or two prior to migrating.
- After you've shut all the Heroku stuff down - update those DNS enteries with the new data.
- Let that roll for a day or two to confirm all is well.
- If all is not well, point auth DNS back to the Heroku stuff and bring it back online.
- Diagnose/troubleshoot any DO issues.
- Wash, rinse, repeat the above.
- Once confirm all is indeed groovy, change those DNS TTL's to something more appropriate, e.g. 24-48hrs, so the rest of the world's resolvers are not hammering your auth DNS boxes.
Good luck and have fun! o/