How to use LetsEncrypt SSL certs with Heroku.


Update May 2017:

Heroku now offers free, automatic SSL certs from LetsEncrypt that are easier to manage than these are. Go Here for more information. This guide can still help if you want to run the cert process yourself.


To begin, go get CertBot from https://certbot.eff.org/

Then continue by typing the following:

sudo certbot certonly --manual
Follow the instructions on the screen. There is a step that talks about "type in the following and verify on your website" which doesn't really work if you are running this in manualmode (or more specifically using Heroku, which makes it interesting to try and deploy single file updates easily.) so you can skip this and just hit enter. Once that is done, go download your newly created certs. They should be located in /etc/letsencrypt/archive/*your_domain_name*/. Check the folder dates on that folder to make sure you have the newest ones. I actually had 3 of them as this was my 3rd time generating certs for this domain. That folder should include a few files:
cert1.pem
chain1.pem
fullchain1.pem
privkey1.pem

Simply log into Heroku and go to settings and click on add SSL. When you get to the screen asking for the public cert, provide fullchain1.pem and click continue. It will then ask you for the private key, which is (you guessed it) privkey1.pem. Then click continue again.

Once that is done, confirm your DNS settings and finish it up. Your cert should be all good to go.


SabNZBDPlus

  • Install prereq's:
    sudo apt install python-gdbm python-cheetah python-openssl par2 unzip -y  
    sudo apt install python-dev  
    
  • Add Repo's, update and upgrade:
    echo "deb http://ppa.launchpad.net/jcfp/ppa/ubuntu precise main" | sudo tee -a /etc/apt/sources.list.d/sabnzbdplus.list  
    sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net:11371 --recv-keys 0x98703123E0F52B2BE16D586EF13930B14BB9F05F  
    sudo apt update  
    sudo apt upgrade -y  
    
  • Install SabNzbdPlus and Python PIP and Sabyenc:
    sudo apt-get install sabnzbdplus python-pip -y  
    sudo pip install sabyenc  
    
  • Edit config to update IP and Port:
    sudo emacs /etc/default/sabnzbdplus  
    
  • Change the username to your user (I run mine as root):
    USER=root  
    
  • Restart the Service:
    sudo service sabnzbdplus restart  
    
  • Add to autostart:
    sudo update-rc.d sabnzbdplus defaults  
    

MultiCore PAR2:
  • Install Dependencies:
    sudo apt update  
    sudo apt install devscripts build-essential git debhelper dh-autoreconf libwww-perl libtbb-dev -y  
    
  • Build Package:
    cd ~  
    mkdir par2tbb  
    cd par2tbb  
    git clone https://github.com/jcfp/debpkg-par2tbb.git  
    cd debpkg-par2tbb  
    uscan --force-download  
    dpkg-buildpackage -S -us -uc -d  
    dpkg-source -x ../par2cmdline-tbb_*.dsc  
    cd par2cmd*  
    ./configure --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/arm-linux-gnu --libexecdir=${prefix}/lib/arm-linux-gnu
    sudo make  
    make install  
    
  • Confirm Installation:
    par2 -v  
    
    You should see a line:
    Concurrent processing utilises Intel Thread Building Blocks 4.3 Update 1,  
    
  • Once Successful, you can remove the directory:
    cd ~  
    sudo rm -rf par2tbb/