# 00. Introduction

We've gone through setting up shSMS on Heroku and mLab, which are great solutions for getting up and running for free, but now it's time to kick it up a notch or two. For me, the fact that Salesforce owns Heroku is a deal breaker for a long term solution. Hands down. Side note: I work for a company that uses Salesforce to track customers/potential customers/anyone and everyone who visits our site, and I can tell you from first hand experience sitting in on calls where the mantra is along the lines of, "It's not how much money you make, it's how much data you collect" or "Should we delete their data or just *flag* is as deleted?" 😐. Yeah, and I'm confident that my company is not unique when it comes to these kind of conversations. So for that reason alone, I choose to host my SMS data on my own server behind a firewall (I'm currently using the same set up as explained in Extreme Privacy Third Edition, fyi) and with some basic tunneling/reverse proxy/who knows.

Oh did I mention we are going to be using only the terminal?? No? Well buckle up because it's about to get 1337 in here. Sorry, that was lame, but still, terminal time!

**Note**: The following guide is written based on the assumption you have already tried shSMS with Heroku/mLab and now want to take your data off ~~Heroku~~ Salesforce/mLab and host it entirely on your own! It's not *vital* that you do it in that order, but the documents in following guide will only cover the backend/server part. You'll need to go through this and then go back to finish using the Heroku/mLab guide to build the APK and put it on the device. I'll try to link relevant sections from that guide when needed.

If you haven't done the Heroku/mLab steps and you have no interest in trying that method out you can follow this path:

* Steps 01 - 07 for Raspberry Pi.
* Step 04 (Twilio) in the Heroku folder.
* Step 08.1 for Raspberry Pi until the .env change for frontend
* Step 06 for Heroku, but put the URL you get from the Pi instructions in the .env instead of the Heroku URL
* Steps 07 - 09 in the Heroku folder and jump back and forth as needed

All steps from the Heroku method are to be done on your main computer, not the Raspberry Pi. The Pi implementation is meant as a replacement for Heroku/mLab and thus only covers server-related setup.
